资源描述:
《软件开发的管理和控制》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、软件开发的管理和控制 软件开发是一项很复杂的工作,对于软件开发的管理和控制,现在有一门专门的学科:软件工程。在这方面有许多国家标准和国际标准。许多公司也有相应的文档模版,及相关规定。现在不谈技术角度来规范软件开发的管理和控制,从管理和实践的角度来探讨软件开发的管理和控制应遵循的的一些原则。 对于软件开发项目中,经常出现两种极端情况,一种是创造了新的生产率和质量的纪录;一种则完全是一场灾难,不是被取消就是拖延很长时间。前者如在很短的时间内,为了赶进度,在几乎不可能的时间内开发出一套软件产品,创造了软件开发的记录,满足了上级所要求的上机日期,由于开发时间
2、太短,过于仓促,上机时,问题百出,试运行时间长达几个月或一年半载的,而且程序一改再改,维护工作量大。后者,如某套系统未弄清楚需求,或因设计问题,开发失败。通过提炼这些成功和失败的例子,软件项目成功或失败的根本原因可能会更清晰一些。 在讨论这些原因之前,我们先来说明一下什么情况可以称为失败的软件项目。 1.由于费用超支或计划执行超时而终止。 2.完成计划的时间或费用超过了原计划的50%。 3.由于质量或性能上的原因引起和客户的纠纷。 下面我们将按其影响大小的顺序排列说明5种错误的实践方式。 错误1:没有软件项目开发的历史数据 缺乏软件开发的历
3、史数据是大多数软件项目失败的关键所在,这样的结论也许使很多人感到吃惊,但事实就是如此。没有一个可*的软件开发的历史数据会使项目经理,程序员,客户对于软件开发的过程缺少清醒的认识。假设现在你正在管理一个软件项目,而这个项目还没有一个公司在36个月内完成。作为一个负责的经理,你作了一个比较细致和保守的估计,然后告诉你的客户和你的手下说你认为这个项目需要36-38个月完成。然而常常有这样的情况发生:你的客户和程序员要求把时间压缩到18个月。客户一方面希望软件尽早投入使用而产生经济效益,一方面也想压缩项目时间作为一个讨价还价的筹码;而程序员一方面可能过于自信,一
4、方面尽早结束项目也能使他们多赚点钱。而此时你的手头上也没有一个可*的软件开发的历史数据,在他们的压力下你同意了18个月的计划,于是一场灾难开始了。 在项目的开始阶段你发现计划被拖延了,于是开始向程序员们施加压力,要求他们加快进度,程序员为了追求进度而不得不把其它指标放在一边,这些问题不断的积累下来而项目经理却蒙在鼓里。到了项目中后期这些质量问题会不断暴露出来,而且互相关联并且难以解决,甚至有些是系统设计的问题,这时才发现好多模块要推倒重来,18个月完成计划变成了天方夜谭。虽然上面只是一个虚拟的例子,但在实际中这种情况比比皆是。问题的关键就在于软件开发的
5、历史数据是反映软件开发队伍的能力的标尺,没有了这个标尺,就无法对软件的开发过程有一个清醒的认识。 错误2:不重视使用软件费用估值工具软件和计划工具软件 软件开发方法述评 60年代中期开始爆发了众所周知的软件危机。为了克服这一危机,在1968、1969年连续召开的两次著名的NATO会议上提出了软件工程这一术语,并在以后不断发展、完善。与此同时,软件研究人员也在不断探索新的软件开发方法。至今已形成八类软件开发方法。 一、Parnas方法 最早的软件开发方法是由D.Parnas在1972年提出的。由于当时软件在可维护性和可*性方面存在着严重问题,因此
6、Parnas提出的方法是针对这两个问题的。首先,Parnas提出了信息隐蔽原则:在概要设计时列出将来可能发生变化的因素,并在模块划分时将这些因素放到个别模块的内部。这样,在将来由于这些因素变化而需修改软件时,只需修改这些个别的模块,其它模块不受影响。信息隐蔽技术不仅提高了软件的可维护性,而且也避免了错误的蔓延,改善了软件的可*性。现在信息隐蔽原则已成为软件工程学中的一条重要原则。 Parnas提出的第二条原则是在软件设计时应对可能发生的种种意外故障采取措施。软件是很脆弱的,很可能因为一个微小的错误而引发严重的事故,所以必须加强防范。如在分配使用设备前,
7、应该取设备状态字,检查设备是否正常。此外,模块之间也要加强检查,防止错误蔓延。 Parnas对软件开发提出了深刻的见解。遗憾的是,他没有给出明确的工作流程。所以这一方法不能独立使用,只能作为其它方法的补充。 二、SASA方法 1978年,E.Yourdon和L.L.Constantine提出了结构化方法,即SASD方法,也可称为面向功能的软件开发方法或面向数据流的软件开发方法。1979年TomDeMarco对此方法作了进一步的完善。 Yourdon方法是80年代使用最广泛的软件开发方法。它首先用结构化分析(SA)对软件进行需求分析,然后用结构化
8、设计(SD)方法进行总体设计,最后是结构化编程(SP)。这一方法不仅开发步骤明确