1.1软件危机
软件危机是指在计算机软件的开发和维护的过程中所遇到的一系列严重问题。
概括的说,软件危机包含两方面的问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。
具体的说,软件危机主要有以下一些典型表现:
(1)、对软件开发成本和进度的估计常常很不准确。
(2)、用户对“已完成的”软件系统不满意的现象经常发生。
(3)、软件产品的质量往往靠不住。
(4)、软件常常是不可维护的。
(5)、软件通常没有适当的文档资料。
(6)、软件成本在计算机系统总成本中所占的比例逐年上升。
(7)、软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。
1.2软件工程的介绍
软件工程是知道计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。
软件工程的本质特性:
1.软件工程关注于大型程序的构造。
2.软件工程的中心课题是控制复杂性。
3.软件经常变化。
4.开发软件的效率非常重要。
5.和谐地合作是开发软件的关键。
6.软件必须有效地支持它的用户。
7.在软件工程领域中通常由具有一种文化背景的人替具有另一种文化背景的人创造产品。
软件工程的基本原理:
1.用分阶段的生命周期计划严格管理
2.坚持进行阶段评审
3.实行严格 的产品控制
4.采用现代程序设计技术
5.结果应能清楚的审查
6.开发小组的人员应该少而精
软件工程方法学:
通常把在软件生命周期全过程中使用的一整套技术方法的集合称为方法学,也称为泛型 ,在软件工程领域中这两个术语的含义基本相同。
软件工程方法学包含3个要素:方法、工具和过程。
目前使用得最广泛的软件工程方法学,。分别是传统方法学和面向对象方法学。
1.传统方法学
传统方法学也称为生命周期方法学或结构化泛型。这种方法学把软件生命周期的全过程依次划分为若干个阶段,然后顺序地完成每个阶段的任务。每一个阶段的开始和结束都有严格的标准。
采用生命周期方法学可以大大提高软件开发的成功率,软件开发的生产率也能明显提高。目前,传统方法学仍然是人们在开发软件时使用得十分广泛的软件工程方法学。
2.面向对象方法学
与传统方法学相反,面向对象方法把数据和行为看成是等同重要的,它是一种以数据为主线,把数据和对数据的操作紧密地结合起来的方法。
概括的说,面向对象方法学具有下述4个要点:
(1)把对象作为融合了数据及在数据上的操作行为的统一的软件构件。
(2)把所有对象都划分成类。
(3)按照父类与子类的关系,把若干个相关类组成一个层次结构的系统。
(4)对象彼此间仅能通过发送消息互相联系。
1.3软件的生命周期
概括的说,软件的生命周期由软件的定义、软件的开发和运行维护,3个时期组成,每个时期又进一步划分为若干个阶段。
软件生命周期每个阶段的基本任务:
1.问题定义
2.可行性研究
3. 需求分析
4. 总体设计
5. 详细设计
6. 编码和单元测试
7. 综合测试
8. 软件维护