软件危机(含通俗理解帮助记忆)

软件危机:计算机软件的开发和维护过程中遇到的一系列严重问题。(正常、不正常运行软件都具有这种问题)

软件危机的典型表现:

  • 对软件开发成本和进度的估计常常很不准确
  • 用户对完成的软件系统不满意的现象经常发生
  • 软件产品的质量往往靠不住
  • 软件常常是不可维护的
  • 软件通常没有适当的文档资料
  • 软件成本在计算机系统总成本中所占的比例逐年上升
  • 软件开发生产率提高的速度跟不上计算机应用的发展趋势

我对于上述的理解:
由于软件开发对文档及相关管理的疏忽与轻视(缺少文档),也没有进行详细的需求分析与调研,因此往往很难估算出软件开发的成本和进度(成本难以预估)。而且由于没有详细文档,后期维护成本越来越高(维护困难,质量自然也不好),一旦某个部分出现了问题、或者是开发人员的调动,往往会让后期的维护出现巨大的困难,更遑论增加一些用户提出的新功能了(不能满足用户需求,用户不满)。而且代码没有经过合理组织,耦合性强,代码难以复用,不利于提高开发效率(新的软件的开发速度就很慢了)。

产生软件危机的原因

  • 软件本身造成的(大型软件的开发往往是一个团队经过比较长的时间开发出来的,每个人写的代码风格和模块都不通,若没有非常科学的管理,则代码就很容易写的非常混乱)
  • 软件开发与维护的方法不正确(有经验的程序员都知道文档比代码重要,如果一个系统轻视了文档,那么日后会很难更新和维护)

主要表现:

  • 忽视软件需求分析(开发程序之前先明确要做什么功能,并记录成文档,日后没有特殊情况不得修改;软件开发并不是说会做什么功能就做,不会做就不做,所有功能都应该是事先规定好的)
  • 认为软件开发就是写程序并使之运行(没有文档辅助代码将会写的非常难堪入目)
  • 轻视软件维护(同上,代码写的很难看的话,日后维护起来就会无从下手)
  • 在软件开发的不同阶段进行修改需要付出的代价很不相同(对上边的一个总结)

在这里插入图片描述

解决软件危机的途径

  • 推广使用在实践中总结出来的开发软件的成功技术和方法,并研究探索更有效的技术和方法(不断总结经验吸取教训)
  • 开发和使用更好的软件工具(用那种好用的编译器,既省事,又使得代码结构层次分明,比如 “记事本 vs IDEA”)
  • 良好的组织管理措施

因此,为了解决软件危机产生的各种问题,就诞生了一门大家耳熟能详的学科:软件工程

后来软件工程与方法学相互交融,产生了两个相互纠葛而又各有所侧重的学科:

  • 软件工程学:主要应用工程的方法和技术研究软件开发和维护的方法、工具和管理的一门交叉学科
  • 程序设计方法学:主要应用数学的方法研究程序的性质以及程序设计的理论和方法的学科

本文概念参考自一个不知出处的PPT在这里插入图片描述

posted @ 2019-02-23 21:51  _吟游诗人  阅读(486)  评论(0编辑  收藏  举报