background image

软件项目管理的根本目的是为了让软件项目尤其是大型项目的整个

软件生命周期

(从

分析、设计、编码到测试、维护全过程)都能在管理者的控制之下,以预定成本按期,按质的
完成软件交付用户使用。而研究软件项目管理为了从已有的成功或失败的案例中总结出能够
指导今后开发的通用原则,方法,同时避免前人的失误。

 软件项目管理的提出是在 20 世纪 70 年代中期的美国,当时美国国防部专门研究了

软件开发不能按时提交,预算超支和质量达不到用户要求的原因,结果发现

70%的项目是

因为管理不善引起的,而非技术原因。于是软件开发者开始逐渐重视起软件开发中的各项管
理。到了

20 世纪 90 年代中期,软件研发项目管理不善的问题仍然存在。据美国软件工程实

施现状的调查,软件研发的情况仍然很难预测,大约只有

10%的项目能够在预定的费用和

进度下交付。

                                  

1995 年,据统计,美国共取消了 810 亿美元的商业软件项目,其中 31%的项目未做

完就被取消,

53%的软件项目进度通常要延长 50%的时间,只有 9%的软件项目能够及时

交付并且费用也控制在预算之内。

                                       

  软件项目管理和其他的项目管理相比有相当的特殊性。首先,软件是纯知识产品,其

开发进度和质量很难估计和度量,生产效率也难以预测和保证。其次,软件系统的复杂性也
导致了开发过程中各种风险的难以预见和控制。

Windows 这样的操作系统有 1500 万行以

上的代码,同时有数千个程序员在进行开发,项目经理都有上百个。这样庞大的系统如果没
有很好的管理,其软件质量是难以想象的。

                                                                  

                软件项目管理的内容主要包括如下几个方面:人员的组织与管理,

软件度量

软件项目计划

风险管理

软件质量保证

软件过程

能力评估,

软件配置管理

等。

             

                                                                     这几个方面都是贯穿、交织于整个软件开
发过程中的,其中人员的组织与管理把注意力集中在项目组人员的构成、优化;软件度量把
关注用量化的方法评测软件开发中的费用、生产率、进度和产品质量等要素是否符合期望值,
包括过程度量和产品度量两个方面;软件项目计划主要包括工作量、成本、开发时间的估计,
并根据估计值制定和调整项目组的工作;风险管理预测未来可能出现的各种危害到软件产
品质量的潜在因素并由此采取措施进行预防;质量保证是保证产品和服务充分满足消费者
要求的质量而进行的有计划,有组织的活动;软件过程能力评估是对软件开发能力的高低
进行衡量;软件

配置管理

针对开发过程中人员、工具的配置、使用提出管理策略。因为大家对

人力资源管理和软件过程能力比较有兴趣,下面就详细的对这两方面展开讨论。

 

软件项目管理

软件项目的计划

    软件项目计划是一个软件项目进入系统实施的启动阶段,主要进行的工作包括:确定详细
的项目实施范围、定义递交的工作成果、评估实施过程中主要的风险、制定项目实施的时间计

 

划、成本和预算计划、人力资源计划等。
软件项目管理过程从项目计划活动开始,而第一项计划活动就是估算:需要多长时间、需要
多少工作量、以及需要多少人员。此外,我们还必须估算所需要的资源(硬件及软件)和可

 

能涉及到的风险。
为了估算软件项目的工作量和完成期限,首先需要预测软件规模。度量软件规模的常用方法

——

有直接的方法

LOC

——

(代码行),间接的方法

FP(功能点)。这两种方法各有优缺

 

点,应该根据软件项目的特点选择适用的软件规模度量方法。
根据项目的规模可以估算出完成项目所需的工作量,我们可以使用一种或多种技术进行估
算,这些技术主要分为两大类:分解和经验建模。分解技术需要划分出主要的软件功能,接
着估算实现每一个功能所需的程序规模或人月数。经验技术的使用是根据经验导出的公式来