目录
1.1软件危机
1.软件的定义:软件是计算机系统中与硬件相互依存的一部分,他是包括程序(Program)、数据(Data)及其相关文档(Document)的完整集合。即软件=程序+数据+文档(算法+数据结构);
(1)程序是按照事先设计的功能和性能要求执行的指令序列;
(2)数据是使程序能正常操纵信息的数据结构;
(3)文档是与程序开发、维护和使用有关的图文材料。
2.计算机软件发展的四个阶段
1.1.1软件危机的介绍
1.软件危机(软件萧条、软件困扰)
软件危机(软件萧条、软件困扰)是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。实际上,几乎所有的软件都不同程度地存在这些问题。
2.软件危机包含下述两方面地问题
(1)如何开发软件,满足对软件日益增长的需求;
(2)如何维护数量不断膨胀的已有软件。
3.软件危机的典型表现
(1)对软件开发成本和进度的估计常常很不准确;
(2)用户对“已完成的”软件系统不满意的现象经常发生;
(3)软件产品的质量往往靠不住;
(4)软件常常是不可维护的;
(5)软件通常没有适当的文档资料;
(6)软件成本在计算机系统总成本中所占的比例逐年上升;
(7)软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。
1.1.2产生软件危机的原因(2个)
1.与软件本身的特点有关:软件是逻辑部件;软件不会被“用坏”,如果发现错误,很有可能是开发时期引入;软件规模庞大,而且程序复杂性将随着程序规模的增加而呈指数上升。
2.与软件开发与维护的方法不正确有关
(1)忽视软件需求分析的重要性。对用户要求没有完整准确的认识就匆忙着手编写程序。越早开始写程序,完成它所需要用的时间往往越长。
(2)认为软件开发就是写程序并设法使之运行。程序只是完整的软件产品的一个组成部分。一个软件产品必须由一个完整的配置组成,软件配置主要包括程序、文档和数据等成分。在软件开发的不同阶段进行修改需要付出的代价是很不相同的。
(3)轻视软件维护。维护是极端艰巨复杂的工作,需要花费很大代价。软件维护的费用占软件总费用的55%~70%。软件工程学的一个重要目标就是提高软件的可维护性ÿ