background image

 

预测工作量和时间。可以使用自动工具来实现某一特定的经验模型。
精确的项目估算一般至少会用到上述技术中的两种。通过比较和协调使用不同技术导出的估
算值,我们可能得到更精确的估算。软件项目估算永远不会是一门精确的科学,但将良好的

 

历史数据与系统化的技术结合起来能够提高估算的精确度。
当对软件项目给予较高期望时,一般都会进行风险分析。在标识、分析和管理风险上花费的
时间和人力可以从多个方面得到回报:更加平稳的项目进展过程;更高的跟踪和控制项目

 

的能力;由于在问题发生之前已经做了周密计划而产生的信心。
对于一个项目管理者,他的目标是定义所有的项目任务,识别出关键任务,跟踪关键任务
的进展情况,以保证能够及时发现拖延进度的情况。为此,项目管理者必须制定一个足够详

 

细的进度表,以便监督项目进度并控制整个项目。
常用的制定进度计划的工具主要有

Gantt 图和工程网络两种。Gantt 图具有悠久历史、直观

简明、容易学习、容易绘制等优点,但是,它不能明显地表示各项任务彼此间的依赖关系,
也不能明显地表示关键路径和关键任务,进度计划中的关键部分不明确。因此,在管理大型
软件项目时,仅用

Gantt 图是不够的,不仅难于做出既节省资源又保证进度的计划,而且

 

还容易发生差错。
工程网络不仅能描绘任务分解情况及每项作业的开始时间和结束时间,而且还能清楚地表
示各个作业彼此间的依赖关系。从工程网络图中容易识别出关键路径和关键任务。因此,工
程网络图是制定进度计划的强有力的工具。通常,联合使用

Gantt 图和工程网络这两种工

 

具来制定和管理进度计划,使它们互相补充、取长补短。
进度安排是软件项目计划的首要任务,而项目计划则是软件项目管理的首要组成部分。与估

 

算方法和风险分析相结合,进度安排将为项目管理者建立起一张计划图。

 

软件项目管理

软件项目的控制

     对于软件开发项目而言,控制是十分重要的管理活动。下面介绍软件工程控制活动中的
质量保证和配置管理。其实上面所提到的风险分析也可以算是软件工程控制活动的一类。而

 

进度跟踪则起到连接软件项目计划和控制的作用。
软件质量保证(

SQA,Software Quality Insurance)是在软件过程中的每一步都进行

的 保护性活动 。

SQA 主要有基于非执行的测试(也称为评审)、基于执行的测试(即通常

 

所说的测试)和程序正确性证明。
软件评审是最为重要的

SQA 活动之一。它的作用是,在发现及改正错误的成本相对较小时

就及时发现并排除错误。审查和走查是进行正式技术评审的两类具体方法。审查过程不仅步
数比走审多,而且每个步骤都是正规的。由于在开发大型软件过程中所犯的错误绝大数是规
格说明错误或设计错误,而正式的技术评审发现这两类错误的有效性高达

75%,因此是非

 

常有效的软件质量保证方法。
软件配置管理(

SCM,Software configuration management)是应用于整个软件过

 

程中的保护性活动,它是在软件整个生命周期内管理变化的一组活动。
软件配置由一组相互关联的对象组成,这些对象也称为软件配置项,它们是作为某些软件
工程活动的结果而产生的。除了文档、程序和数据这些软件配置项之外,用于开发软件的开

 

发环境也可置于配置控制之下。
一旦一个配置对象已被开发出来并且通过了评审,它就变成了基线。对基线对象的修改导致

 

建立该对象的版本。版本控制是用于管理这些对象而使用的一组规程和工具。
变更控制是一种规程活动,它能够在对配置对象进行修改时保证质量和一致性。配置审计是
一项软件质量保证活动,它有助于确保在进行修改时仍然保持质量。状态报告向需要知道关

 

于变化的信息的人,提供有关每项变化的信息。