软件工程教材资料整理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件工程复习资料
第一章
1、软件的概念:软件是计算机中与硬件相互依存的另一部分,它是包括程序、数据及其
相关文档的完整集合。
2、软件具有下列特点:
1.软件是一种逻辑产品,它具有抽象性和无形性。 2.软件的生产与硬件不同。
3.软件在运行和使用中,不会磨损和老化,但它存在退化问题。
4.软件的开发和运行对计算机系统有一定的依赖性。
5.软件开发至今仍未完全摆脱手工开发方式,大多数软件是“定做”的。
6.软件开发成本高、风险高。
7.相对于计算机硬件技术的发展,计算机软件技术的发展十分缓慢。
3、计算机软件技术的发展经历了三个阶段:
程序设计时期(20世纪40年代中期至60年代中期),软件质量取决于个人编程水平。
程序系统时期(20世纪60年代中期至70年代中期),软件质量取决于开发小组的技术水平
软件工程时期(20世纪70年代以后)。软件质量取决于软件工程管理水平。
软件技术的发展主线是由个体简单的开发方式向着复杂、大规模、标准化、工程化的方向发展,在最高阶段,把软件开发界定为两方面的内容:软件开发和软件维护。
4、软件开发引发的问题: 1.社会对软件需求的不断发展
2.软件开发理念和手段与客观实际存在的差异
①对软件本身的认识存在差异②对软件的服务对象认识不足
③对软件开发缺乏科学管理④软件开发手段落后
5、软件危机1)发生时间:软件发展第二阶段(程序系统阶段)的末期
(2)软件危机是指在计算机软件开发和维护过程中遇到的一系列严重问题。
(3)软件危机的主要表现有以下几方面:
1.软件开发经费超支、进度拖延
2.软件不能符合用户的要求
3.软件难以维护
4.软件可靠性差 5.软件开发生产率低
4)主要原因:
1 社会对软件的需求急剧增加
2 软件本身的特点:软件本身存在着复杂性
3软件开发理念和手段与客观实际存在的差异
①对软件本身的认识存在差异②对软件的服务对象认识不足
③对软件开发缺乏科学管理④软件开发手段落后
寻找解决软件危机途径的过程就是软件工程形成的过程
6、软件工程
核心:以工程化的原理和方法对软件进行规划、定义、开发和维护;
宗旨:以较少的投入,最快的时间生产出高质量的软件。
定义:“软件工程是软件开发、运行、维护和引退的系统方法”。
软件工程的主要思想是强调软件开发过程中应用工程化原则的重要性。
软件工程的三要素是方法、工具和过程。
软件工程的基本目标:实现软件的优质高产,即在给定成本、进度的前提下,达到要求的软件功能,取得较好的软件性能,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性,并满足用户需求的软件产品。
软件工程的内容:软件开发技术和软件工程管理。
7、软件生命周期:
一个软件从定义到开发、使用和维护,直到最终被废弃,要经历一个漫长的时期,这个时期称软件生命周期(或软件生存周期)。
生命周期的划分原则:
各阶段的任务应尽可能相对独立;同一阶段各项任务的性质尽可能相同软件生命周期通常划分为3个时期、6个阶段。即:软件定义、软件开发、软件维护问题的定义和可行性研究;需求分析;软件设计;程序编码;软件测试;运行与维护
8、软件开发模型
软件开发模型是在软件生命周期基础上构造出的由软件开发全过程中的活动和任务组成的结构框架。它反映了软件开发中各种活动的组织衔接方式。它是软件项目开发工作的基础。常见的软件开发模型:
1.瀑布模型2.渐增式模型 3.快速原型模型4.软件重用模型5.喷泉模型 6.螺旋模型瀑布模型是一种理想化的、文档驱动的模型,通过文档连接软件开发过程的各个阶段(阶段间具有顺序性和依赖性),但它缺乏灵活性,特别是无法解决软件需求不明确或不准确的问题。
螺旋模型将瀑布模型与增量模型结合起来,加入了两种模型均忽略了的风险分析。按照“制定计划,风险分析,实施工程,客户评价”四个步骤循环实施。在实施过程中加入了风险分析,提高了风险识别和规避的能力。
9、软件开发应遵守的方法和原则:(软件工程的原则)
抽象、局部化与信息隐蔽、模块化、一致性、完整性和可验证性。
10.软件开发方法:结构化方法 Jackson方法面向对象(Object Oriented)方法
结构化方法可使用瀑布模型、增量模型和螺旋模型进行开发;
Jackson方法可使用瀑布模型、增量模型进行开发;
面向对象的开发方法一般是采用喷泉模型,也可用瀑布模型、增量模型进行开发。
第二章软件的定义及可行性研究(软件定义时期)
1、主要任务:就是在对用户要求充分了解的前提下,分析未来新系统(即目标系统)的
主要目标,分析开发系统的可行性。
2、可行性研究的任务(或目标系统的可行性研究有那几个方面?)
对已提出的任何一种解决方案,都从经济、技术、运行和法律诸方面来研究其可行性,做出明确的结论供用户参考。
可行性研究的目的是明确“问题是否能够解决”和“是否值得解决”
可行性研究的实质:在高层次上做一次大大简化了的需求分析和设计
3、名词解释:系统成本 = 开发成本+运行操作费用 + 维护费用
纯收入 = 累计经济效益(折合成现在值)-投资额
3、系统流程图的符号及应用 P20
4、投资回收期是累计的经济效益等于最初投资所需要的时间,也就是达到估计开发总成本加上运行维护费用所需要的时间。
5、简述可行性研究的步骤。
(1)审核系统的规模和目标。(2)研究现行系统。(3)导出新系统的高层逻辑模型。(4)重新定义问题。(5)提出和评价供选择的方案。(6)推荐可行的方案。
(7)草拟项目开发计划(8)书写文档,提交审查
6、经济可行性分析
从经济上衡量一个项目是否有开发价值,主要研究两个方面的内容:一是新系统成本的估计;