自考软件工程笔记总结(共20页).doc
《自考软件工程笔记总结(共20页).doc》由会员分享,可在线阅读,更多相关《自考软件工程笔记总结(共20页).doc(20页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上第一章 绪论1.1 软件工程的产生1.1.1 软件的特点软件的定义:计算机程序及其说明程序的各种文档软件的特性:(1) 软件是一种逻辑产品,它与物质产品有很大的区别(2) 软件产品的生产主要是研制,软件产品的成本主要体现在软件的开发和研制上,软件开发研制完成后,通过复制就产生了大量软件产品(3) 软件产品不会用坏,不存在磨损、消耗问题(4) 软件产品的生产主要是脑力劳动,还未完全摆脱手工开发方式,大部分产品是“定做”的(5) 软件费用不断增加,软件成本相当昂贵1.1.2 软件生产的发展1) 程序设计时代(1946年1956年)这个阶段的生产方式是个体手工劳动,使用的工
2、具是机器语言、汇编语言。开发方法是追求编程技巧,追求程序运行效率程序难读、难懂、难修改硬件特征是价格贵、存储容量小、运行可靠性差软件特征是只有程序、程序设计概念,不重视程序设计方法2) 程序系统时代(1956年1968年)这个阶段的生产方式是作坊式的小集团合作生产,生产工具是高级语言开发方式仍旧靠个人技巧,但开始提出结构化方法硬件特征是速度、容量、工作可靠性有明显提高,价格降低,销售有爆炸性增长软件特征是程序员数量猛增,大量其他行业人员进入这个行业,因为缺乏训练,因而开发人员素质差这时已意识到软件开发的重要性,但开发技术没有新的突破,大量软件开发的需求已提出,但开发人员的素质和落后的开发技术不
3、适应规模大、结构复杂的软件开发,产生了尖锐的矛盾,导致了软件危机的产生3) 软件工程时代(1968年至现在)这阶段的生产方式是工程化的生产,使用数据库、开发工具、开发环境、网络、分布式、面向对象技术来开发软件硬件特征是向超高速、大容量、微型化以及网络化方向发展软件特征是开发技术有很大进步,但是未能获得突破性进展,软件价格不断上升,没有完全摆脱软件危机1.1.3 软件危机1. 软件危机的产生软件发展到第二阶段末期,软件开发技术的进步跟不上硬件发展的速度2. 软件危机的表现(1) 经费预算经常突破,完成时间一再拖延(2) 开发的软件不能满足用户要求(3) 开发的软件可维护性差(4) 开发的软件可靠
4、性差3. 软件危机的原因(1) 软件的规模越来越大,结构越来越复杂(2) 软件开发管理困难而复杂(3) 软件开发费用不断增加(4) 软件开发技术落后(5) 生产方式落后(6) 开发工具落后1.1.4 软件工程1968年北大西洋公约组织的工作会议上首先提出“软件工程”的概念,要用工程化的思想来开发软件1. 软件工程定义用科学知识和技术原理来定义、开发、维护软件的一门科学2. 软件工程的性质软件工程是一门综合性的交叉学科,涉及计算机科学、工程科学、管理科学、数学等领域计算机科学中的研究成果均可用于软件工程,但计算机科学着重于原理和理论,而软件工程着重于如何建造一个软件系统软件工程要用工程科学中的观
5、点来进行费用估算、制定进度、制定计划和方案软件工程要用管理科学的方法和原理进行软件的生产和管理软禁工程要用数学的方法建立软件开发中各个种模型和各种算法3. 软件工程目标目的是成功的建造一个大型软件系统所谓成功,是要达到付出较低的开发成本达到要求的软件功能取得较好的软件性能开发的软件易于移植需要较低的维护费用能按时完成开发任务,及时交付使用开发的软件可靠性高4. 软件工程内容主要是软件开发技术和软件管理两个方面软件开发技术中主要研究软件开发方法、软件开发过程、软件开发工具和环境软件开发管理中主要研究软件管理学、软件经济学、软件心理学5. 软件工程面临的问题a) 软件费用b) 软件可靠性c) 软件
6、维护d) 软件生产率e) 软件重用1.2软件工程过程和软件生存周期1.2.1 软件工程过程 目的是为各种人员提供一个公共的框架,以便用相同的语言进行交流(1) 获取过程(2) 供应过程(3) 开发过程(4) 操作过程(5) 维护过程(6) 管理过程(7) 支持过程1.2.2 软件生存周期 指一个软件从提出开发要求开始直到该软件报废为止的整个过程(1) 可行性分析和项目开发计划必须要回答的问题是“要解决的问题是什么”,有可行的解决办法吗,如果有需要多少费用多少资源时间明确项目性质明确项目目标明确项目规模确定该问题有没有可行的解决办法指定项目开发计划(2) 需求分析确定软件系统必须做什么确定软件系
7、统必须具备哪些功能(3) 概要设计把确定的各项功能需求转换成需要的体系结构设计软件的结构,明确该结构的模块组成(4) 详细设计为每个模块完成的功能进行具体描述,把功能描述转变为精确地、结构化的过程描述(5) 编码把每个模块的控制结构转换成计算机可接受的程序代码,即写成以某种特定程序设计语言表示的“原程序清单”(6) 测试保证软件质量的重要手段(7) 维护1.3 软件生存周期模型、方法和工具1.3.1 软件生存周期模型描述软件开发过程中各种活动如何执行的模型1. 瀑布模型将软件生存周期各个活动规定为依线性顺序连接的若干阶段的模型包括所有的软件生存周期环节,规定了由前至后、相互衔接的固定次序缺点:
8、理想的线性开发模式,缺乏灵活性开发过程中用户看不到软件是什么样子,造成开发方向错误2. 增量模型一种非整体开发的模型,软件在该模型中是“逐渐”开发出来的,开发一部分展示一部分,可以及早发现问题。或者开发一个“原型”软件,完成部分主要功能再逐步完善具有较大的灵活性,适合于软件需求不明确、设计方案有一定风险的软件项目缺点:对于复杂的大型软件,开发一个原型往往达不到要求3. 螺旋模型将瀑布模型与增量模型结合起来,加入了两种模型均忽略了的风险分析开发过程分为几个螺旋周期,每个螺旋周期大致和瀑布模型相符合每个周期内分四个工作不:制定计划、风险分析、开发实施、用户评估适合于大型软件的开发缺点:需要有相当丰
9、富的风险评估经验和专门知识,使得应用受到一定限制4. 喷泉模型一种以用户需求为动力,以对象作为驱动的模型,适合于面向对象的开发方法克服了瀑布模型不支持软件重用和多想开发活动集成的局限性是开发过程具有迭代性和无间隙性5. 基于知识的模型又称只能模型,它把瀑布模型和专家系统结合在一起还处于研究实验阶段,还未达到实用阶段6. 变换模型适合于形式化开发的模型1.3.2 软件开发方法使用早已定义好的技术集和符号表示习惯来组织软件生产的过程1. 结构化方法由结构化分析,结构化设计、结构化程序设计构成,是一种面向数据流的开发方法。简单实用,应用较广,技术成熟2. Jackson方法面向数据结构的开发方法3.
10、 维也纳开发方法(VDM)一种形式化的开发方法,软件需求用严格的形式语言描述,然后把描述模型逐步变换成目标系统4. 面向对象的开发方法90年代主流基本出发点是尽可能按照人类认识世界的方法和思维方式来分析和解决问题包括面向对象分析、面向对象设计、面向对象实现1997年推出统一建模语言UML,是面向对象的标准建模语言1.3.3 软件开发工具1 软件工具的重要性为了支持软件人员开发和维护活动而使用的软件项目估算工具、需求分析工具、编码工具、测试工具、维护工具等2 工具箱将各种软件工具简单组合起来就构成工具箱工具箱的工具界面不同意,工具内部无联系,工具切换由人工操作3 软件开发环境工具系统的整体化及集
11、成化,使之形成完整的软件开发环境使软件工具支持整个生存周期4 计算机辅助软件工程新的软件工具目的是实现软件生存周期各个环节的自动化,主要用于软件的分析和设计,使用这些工具开发人员可以以对话的方式建立各种软件系统计算机辅助软件工程可以简单的定义为软件开发的自动化,CASE结构化方法可以用于瀑布模型、增量模型、螺旋模型进行开发Jackson方法可以用于瀑布模型、增量模型维也纳方法只能用于变换模型进行开发第二章 软件可行性研究与项目开发计划2.1可行性研究目的是用最小的代价在尽可能短的时间内去确定该项目是否能够开发,是否值得开发在较高层次上以较抽象的方式进行需求分析和设计过程2.1.1 可行性研究的
12、任务进行概要的分析研究,初步确定项目的规模和目标,确定项目的约束和限制,列举出来。然后进行简要的需求分析,抽象出项目的逻辑结构,建立逻辑模型,从逻辑模型出发经过压缩的设计,探索出若干种可供选择的解决办法,对每种解决方法都要研究它的可行性可以从以下三个方面分析研究每种解决方法的可行性1. 技术可行性、技术可行性一般要考虑的情况包括(1) 开发的风险(2) 资源的有效性(3) 技术(4) 开发人员在评估技术可行性时,一旦估计错误,将会出现灾难性后果2. 经济可行性进行开发成本的估算以及了解取得效益的评估,确定要开发的项目是否值得投资开发3. 社会可行性要开发的项目时候存在任何侵犯、妨碍等责任问题,
13、要开发项目的运行方式在用户组织内是否行得通,现有管理制度、人员素质、操作方式是否可行2.1.2 可行性研究的具体步骤1.确定项目规模和目标2.研究正在运行的系统3.建立新系统的高层逻辑模型使用建立逻辑模型的工具数据流图和数据字典描述数据在系统中的流动和处理情况。不是需求分析阶段,不是完整详细的描述,只是概括的描述高层的数据处理和流动4.导出和评价各种方案5.推荐可行的方案6.编写可行性研究报告2.1.3 可行性研究报告的主要内容1引言2可行性研究前提3对象有系统的分析4所建议系统的技术可行性分析5所建议系统的经济可行性分析6社会因素可行性分析7其他可供选择方案8结论意见2.2系统流程图1系统流
14、程图的作用用图形符号来表示系统中的各个元素。表达了系统中各个元素之间的心理流动的情况2系统流程图的符号3系统流程图的例子2.3成本效益分析目的是从经济角度评价开发一个新的软件项目是否可行估算将要开发的系统的开发成本,与可能取得的效益进行比较和权衡效益分有形效益和无形效益有形效益的分析1 货币的时间价值2 投资回收期3 纯收入2.4项目开发计划1项目概述2实施计划3人员组织及分工4交付期限第三章 软件需求分析3.1 需求分析的任务 3.1.1 需求分析的概念开发人员要准确的理解用户的要求,进行细致的调查分析,将用户非形式的需求陈述转化为完整的需求定义,再由需求定义装换到相应的形式功能规约(需求规
15、格说明)的过程需求分析的难点:(1) 问题的复杂性(2) 交流障碍(3) 不完备性和不一致性(4) 需求易变性软件需求分析与说明的方法适用的基本原则:(1) 必须能够表达和理解问题的数据域和功能域(2) 可以把一个复杂问题按功能进行分解并可逐层细化(3) 建模结构化分析方法和面向对象分析方法都遵循以上原则 3.1.2 需求分析的基本任务要准确的定义新系统的目标,为了满足用户的需要,回答系统必须“做什么”的问题。可行性研究和软件计划阶段对这个问题的回答是概括的、粗略的本阶段主要进行以下几个方面的工作:1. 问题识别双方确定对问题的综合需求,这些需求包括:(1) 功能需求:所开发的系统必须具备什么
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 自考 软件工程 笔记 总结 20
限制150内