第1章软件工程1
1软件的基本概念1
2软件工程1
3软件生存周期1
4结构化的软件开发方法1
5面向对象的软件开发方法习题1第1章软件工程1
1软件的特征要理解软件的含义,首先要了解软件的特征
软件是逻辑的而不是物理的产品,因此,软件具有与硬件完全不同的特征
(1)软件的开发不是传统意义上的生产制造
软件开发与硬件制造之间有一些相似之处,但却有着本质的区别
软件产品的生产主要是脑力劳动、手工开发方式,大部分产品是“定做”的
1软件的基本概念第1章软件工程(2)软件不会“磨损”
硬件在其生命初期有较高的故障率(这些故障主要是设计或制造的缺陷),这些缺陷修正之后,故障率在一段时间内会降到一个很低的水平;随着时间的推移,故障率又将提升
硬件故障率的变化曲线如图1
第1章软件工程图1
1硬件故障率的变化曲线第1章软件工程软件并不受引起硬件磨损的环境因素的影响
因此,理论上讲,软件的故障率曲线呈现出如图1
2所示的形式
软件在其生命初期具有较高的故障率,但在这些错误改正之后(我们假设理想情况下改正过程中并不引入其他错误),曲线就会趋于平稳
软件不会被磨损,不过它会退化,这一点可以通过图1
2来解释清楚
在其生命期中,软件会经历修改(维护),随着这些修改有可能会引入新的错误,使得故障率曲线呈现为图1
2所示的锯齿形
第1章软件工程图1
2软件故障率的理想曲线与实际曲线第1章软件工程硬件和软件之间的不同还表现在当一个硬件构件磨损时,可以用另外一个备用零件替换它,但对于软件就没有备用零件可以替换了
每一个软件故障都表明了设计或是将设计转换成机器可执行代码的过程中存在错误
因此,软件维护要比硬件维护复杂得多
第1章软件工程(3)软件的可复用性差,不能通过已有的构件组装而成
我们先来看一下一个基于微处理器的控制硬件是如何设计和建造出来的
设计工程师画一个简单的数字电路图,做一