软件工程:实践者的研究方法第5章软件项目计划

软件工程:实践者的研究方法第5章软件项目计划,第1张

软件工程:实践者的研究方法第5章软件项目计划,第2张

第5章 软件项目计划

  软件项目管理过程从一组被称为项目计划的活动开始。这些活动中的第一个是估算。无论何时进行估算,我们都是在预测未来,并会接受某种程度的不确定性。引用Frederish Brooks[BRO75]的话来说:

  我们的估算技术发展缓慢。更为严重的是,它们隐含了一个很不正确的假设,即“一切都会好的”……;因为我们对自己的估算没有把握,软件管理者常常缺少让人们得到一个好产品的信心。

  虽然估算是一门科学,但它更是一门艺术,可这个重要的活动不能以随意的方式来进行。对时间及工作量进行评估的有用技术确实存在。而且因为估算是所有其他项目计划活动的基础,而项目计划又提供了通往成功的软件工程的行车图,因此,没有它我们就会搭错车。

5.1对估算的观

  一位总经理曾经被问到:在选择一个项目管理者时,什么特质是最重要的。他的回答是:“具有在错误真正发生之前就能知道它的能力”。我们还可以加上:“在未来还是一团迷雾的时候就有勇气进行估算”。

  估算一个软件开发工作的资源、成本及进度需要经验、需要了解以前的有用信息、以及当仅存在定性的数据时进行定量测量的勇气。估算具有与生俱来的风险(风险分析技术在第6章讨论),而正是这种风险导致了不确定性。

  项目复杂性对计划中固有的不确定性产生重大影响。不过,复杂性是一个受到对以前工作的熟悉程度影响的相对的测量。实时应用对于一个以前仅仅开发过批处理应用的软件项目组而言,可能被认为是“非常复杂的”。同样的实时应用对于一个经常开发高速处理控制的软件项目组而言,则可能被认为是“小菜一碟”。目前已经有一些定量的软件复杂性测量(第18章和23章)。这类测量主要用于设计级及代码级,因此难以在软件计划中(它在设计及编码之前)使用。不过,关于复杂性的其他一些更为主观的评估(如,第4章描述的功能点复杂度调整因子)可以在早期的计划过程中建立。

  项目规模是另一个影响估算准确性的因素。随着规模的增长,软件中各个元素之间的相互依赖性也迅速增加(项目规模的增长会对项目的成本及进度产生几何级数级的影响[MAH96]。估算中采用的重要方法——问题分解,也因为分解出来的元素仍然很大而变得更为困难。改写Murphy定律:“所有可能出错的地方都会出错”——如果有更多的部分可能失败,那就会有更多的部分失败。

  结构不确定性的程度也会对估算的风险产生影响。在这里,结构是指:需求能被确定的程度,功能能被分解的容易程度,以及必须要加工的信息的层次性。

  历史信息的可用程度也决定了估算的风险。Santayana曾经说过:“不记得过去的人必将重蹈覆辙”。通过回顾过去,我们能够效法好的地方,且避免再出现同样的问题。当存在大量可用的关于过去项目的软件度量时(第4章),估算就会有更大的保证;能够建立进度计划,以避免以前遇到过的困难;总体风险也会降低。

  风险是由为资源、成本及进度建立的定量估算中存在的不确定性来测量的。如果对项目范围理解很差或项目需求不断变化,不确定性及风险就会很高。软件计划者应该要求功能、性能及接口定义(包含在系统说明中)的完备性。计划者,尤其是用户,应该认识到软件需求的变化意味着成本及进度的不稳定。

  作为对估算的最后一个观察,我们引用亚里斯多德(公元前330年)的话:

  记住:应该满足于事物的本性所能容许的精确度,当只能近似于真理时,不要去寻求绝对的准确……

  项目管理者不应该被估算所困扰。现代软件工程方法(如,演化软件过程模型)支持开发的迭代视图。在这类方法中,当用户改变需求时,有可能会重新审查估算(在知道更多信息后)并修改之。①

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 软件工程:实践者的研究方法第5章软件项目计划

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情