1.软件与软件危机:
什么是软件?
软件是计算机系统中与硬件相互依存的另一部分,它是包括程序、数据及其相关文档构成的完整集合。其中:
程序:是按照事先设计的功能和性能要求执行的指令序列
数据:是使程序能够正常操纵信息的数据结构
文档:是与程序开发、维护和使用有关的图文材料
软件的特点:
软件是一种逻辑实体,而不是具体的物理实体,因而它具有抽象性;
软件的生产与硬件不同,在它的开发中没有明显的制造过程。对软件的质量控制,必须着重在软件开发方面下功夫;
与硬件不同,软件在运行和使用期间,没有机械磨损、老化问题。
硬件磨损:可以用备用零件替换;
软件出故障:无法用备用零件替换来解决,是因为设计开发过程中存在错误;
软件维护比硬件维护更复杂,它与硬件的维修有本质差别
虽然软件不存在磨损与老化,但它存在退化问题。软件退化缘于修改。
软件发展的三个时期:
软件危机:
在程序系统阶段,软件技术的发展不能满足需要,“软件危机”就这样出现了。
软件危机:在计算机软件的开发和维护过程中所遇到的一系列严重问题。
几乎所有软件都不同程度地存在这些问题。
大体上,这些问题分为两方面:
1.如何开发软件,以满足对软件日益增长的需求;
2.如何维护数量不断膨胀的已有软件。
软件危机的主要表现:
对软件开发成本和进度的估计常常很不准确;
用户对“已完成的”软件系统不满意的现象经常发生;
软件产品的质量往往靠不住;
软件常常是不可维护的;
软件通常没有适当的文档资料;
软件成本在计算机系统总成本中所占的比例逐年上升;
软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。
产生软件危机的原因:
一方面是由于软件本身的特点:
软件的逻辑性
程序的复杂性、规模庞大
另一方面是由于软件开发与维护的方法不正确:
忽视软件定义时期的工作, 特别是忽视了软件需求分析的重要性 (在软件开发的不同阶段进行修改付出的代价是很不相同的)
认为软件开发就是写程序并设法使之运行
轻视软件维护
消除软件危机的途径:
首先应该对计算机软件有一个正确的认识:它是包括程序、数据及其相关文档的完整集合。
必须充分认识到软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。
必须充分吸取和借鉴人类长期以来从事各种工程项目所积累的行之有效的原理、概念、技术和方法,特别要吸取几十年来人类从事计算机硬件研究和开发的经验教训。
应该推广使用在实践中总结出来的开发软件的成功的技术和方法,并且研究探索更有效的技术和方法,尽快消除在计算机系统早期发展阶段形成的一些错误观念和做法。
应该开发和使用更好的软件工具。
还没有评论,来说两句吧...