第一章 概论
1、软件的发展
第一阶段 :从第一台计算机上的第一个程序的出现到实用的高级程序设计语言出现以前。计算机存储量小,运算速度慢,编写程序的语言只有低级语言。
第二阶段 :从实用的高级程序设计语言出现以后到软件工程出现以前。出现了大容量的存储器,高级程序设计语言,外围设备得到迅速发展,出现了大量的数据处理问题 计算量不大但输入输出量大。
第三阶段 :从软件工程出现以后至今。计算机硬件向巨型机和微型机两个方向发展,出现了计算机网络。
2、软件的分类
系统软件,支撑软件,应用软件
3、软件语言
1)需求定义语言:用于书写软件需求定义的语言。
2)功能性语言:用于书写软件功能规约的语言。
3)设计性语言:用于书写软件设计规约的语言。如: PDL。
4)实现性语言(程序设计语言):用于书写计算机程序的语言。
5)文档语言:用于书写软件文档的语言。
4、软件危机的表现
软件开发成本过高,软件质量得不到保证,软件开发效率低。
难以控制开发进度,工作量估计困难。
软件不能满足社会发展的需求,成为社会,经济发展的制约因素。
程序规模,工作量与成本的关系。
5、软件工程的四条基本原则
1)选取适宜的开发模型
2)采取合适的设计方法
3)提供高质量的工程支撑
4)重视软件工程的管理
6、软件生存周期的六个阶段及任务
1)计算机系统工程:确定待开发软件的总体要求和范围,该软件与其他计算机系统元素之间的关系,进行成本估计,作出进度安排,并进行可行性分析,并在若干可行方案中作出选择。
2)需求分析:解决待开发软件做什么的问题。
3)设计:解决待开发软件怎么做的问题。
4)编码:用某种语言将设计的结果转换为可执行的程序代码。
5)测试:发现并纠正软件中的错误和缺陷。
6)运行和维护:发现软件中掩藏的错误或需要增加新的功能或使软件适应外界环境变化等情况出现时,对软件进行的修改。
7、能力成熟度模型CMM的等级
1)初始级:软件过程的特点是无秩序的,甚至是混乱的。
2)可重复级:建立了基本的项目管理过程来跟踪成本,进度和功能特性。
3)已定义级:已将管理和工程活动两方面的软件过程文档化,标准化,并综合成该组织的标准软件过程。
4)已管理级:收集对软件过程和产品质量的详细度量值,对软件过程和产品都有定量的理解和控制。
5)优化级:过程的量化反馈和先进的新思想,新技术促使过程不断改进。
8、软件过程模型及特点
1)瀑布模型:它给出了软件生存周期活动的固定顺序,上一阶段的活动完成后向下一阶段活动过渡,最终得到所开发的软件产品。适合功能性能明确完整无重大变化的软件系统的开发。
2)演化模型:从构造初始的原型出发,逐步将其演化成最终的软件产品的过程。
增量模型:将软件的开发过程分成若干日程时间交错的线性序列,每个线性序列产生软件的一个可发布的“增量”版本,后一个版本是对前一个版本的修改和补充,重复补充增量发布的过程,直至产生最终的完善产品。
原型模型:从软件工程师与客户交流开始,快速制定原型开发的计划,确定原型的目标和范围,采用快速设计的方式对其建模,并构建原型。 原型是预期系统的一个可执行版本,反映了系统的性质的一个选定的子集。
螺旋模型:它是将原型实现的迭代特征与瀑布模型中控制的和系统化的方面结合起来,不仅体现了这两种模型的优点,而且还增加了风险分析。
3)喷泉模型:是一种支持面向对象开发的过程模型,包括分析设计编码测试集成演化。“喷泉”体现了迭代和无间隙。
9、CASE工具的分类
1)支持软件开发过程的工具:需求分析工具,设计工具,编码工具,排错工具,测试工具等。
2)支持软件维护过程的工具:版本控制工具,文档分析工具,开发信息库工具,逆工程工具,再工程工具等。
3)支持软件管理过程和支持过程的工具:项目管理工具,配置管理工具,软件评价工具等。
10、环境集成机制有哪些?
数据集成,界面集成,控制集成和其他方面的集成。