软件项目管理过程中的一个关键活动是软件项目估算。项目估算就是对项目所需要的人力、物力、时间、成本及风险等因素进行评估。由于软件产品的特殊性,在做软件项目估算时往往存在某些不确定性,使得软件项目管理人员无法正常进行管理而导致产品迟迟不能完成。软件估算是所有项目计划活动的基石,没有计划就开始着手开发,会使项目陷入盲目性。现在已经有了许多用于软件项目管理的估算技术。
请围绕“软件项目估算的过程与方法”论题,依次从以下三个方面进行论述。
详细论述软件项目估算的基本步骤以及目前常用的估算方法及其主要内容。 |
参考答案:
解析:详细论述软件估算的基本步骤,概要说明目前比较常用的几种估算方法。 现在已经有了许多用于软件开发的估算技术。虽然各有其优缺点,但以下几方面是共同的:事先建立软件的工作范围;以软件度量(以往的度量)为基础作为估算;把项目分解为可单独进行估算的小块。 1.确定软件的范围。对软件的功能和性能进行评价,从管理角度和技术角度出发,确定明确的、可理解的项目范围。关于软件范围的叙述都应明确给出定量的数据、指明约束条件或限制,此外还要叙述某些质量因素。 软件范围包括功能、性能、限制、接口和可靠性。在估算开始之前,应对软件的功能进行评价,并对其进行适当的细化以便提供更详细的细节。由于成本和进度的估算都与功能有关,因此常常采用某种程度的功能分解。性能的考虑包括处理和响应时间的需求。约束条件则标识外部硬件、可用存储或其他现有系统对软件的限制。功能、性能和约束必须在一起进行评价。当性能限制不同时,为实现同样的功能,开发工作量可能相差一个数量级。如果功能保持相同而性能可变,则开发软件所需要的工作量和成本将有显著的差异。 软件与其他系统元素是相互作用的。需要考虑每个接口的性质和复杂性,以确定对开发资源、成本和进度的影响。 软件范围最不明确的方面就是可靠性的论述。可以按照软件的一般性质规定一些具体的要求以保证它的可靠性。 2. 对完成该软件项目所需的资源进行估算。 (1)人力资源。估算时必须考虑人员的技术水平、专业、人数及在开发过程各阶段中对各种人员的需要。一个软件项目所需要的人数只能在对开发的工作量做出估算之后才能决定。 (2)硬件资源。硬件是作为软件开发项目的一种工具而投入的。估算时,需考虑如下三种硬件资源。 ·宿主机:软件开发时使用的计算机及外围设备。 ·目标机:运行以开发成功软件的计算机及外围设备。 ·其他硬件设备:专用软件开发时需要的特殊硬件资源。 (3)软件资源。软件在开发期间使用许多软件工具来帮助软件的开发。主要的软件工具包括业务系统计划工具集、项目管理工具集、分析与设计工具、编程工具、组装与测试工具、原型化与模拟工具、维护工具等。 (4)软件复用性及软件部件库。为了促进软件的复用,以提供软件的生产率和软件产品的质量,可建立可复用的软件部件库。 3.估算软件成本和工作量。 为了得到可靠的成本和工作量估算,有多种选择。 (1)把估算推迟到项目的后期进行。在项目完成后就能得到100%精确的估算结果。 (2)使用相对简单的分解技术以生成项目的成本和工作量估算结果。 (3)为软件成本和工作量估算开发或配备一个经验模型。 (4)获取一个或更多的自动工具。 其中后三种选择对软件项目估算都是有效的。理想的情况是,前后串接着使用上述技术,相互进行交叉检查。分解技术是对软件项目估算采取各个突破的方法,把一个大的软件项目分解为_些主要的功能和相关的软件工程任务,以逐步求精的方式,就可得到成本和工作量的估算。 常用的估算技术如下。 (1)LOC(代码行)和FP(功能点)估算。 (2)工作量估算。是估算任何工程开发项目成本最普遍使用的技术。每一项目任务的解决都需要花费若干人日、人月或人年。每一个工作量单位都对应于一定的货币成本,从而可以由此做出成本估算。 工作量估算首先从软件项目范围抽出软件功能。接着给出为实现每一个软件功能所必须执行的一系列软件工程任务。