软件工程项目管理

  • 格式:docx
  • 大小:121.40 KB
  • 文档页数:48

软件工程项目管理

第六章 项 目 管 理 .............................. 3

6.1 项目管理概述 ............................. 4

6.1.1 项目管理的特点

........................ 5

6.1.2 项目管理的过程 ....................... 8

6.2 项目计划 ................................. 10

6.3 进度安排 ................................. 12

6.4 项目估算 .................................. 14

6.4.1 软件规模估算

........................ 16

6.4.2 软件开发成本估算 .................... 19

6.5 项目组织 ................................ 23

6.5.2 人员配备 ............................ 24

6.6 软件质量 ............................... 25

6.6.1软件质量及质量保证 .................... 25

6.6.2质量保证的要紧内容

.................... 26

6.6.3质量保证体系 .......................... 27

6.6.4软件工程标准化 ........................ 28

6.6.5 CMM模型 .............................. 36

6.7 软件配置管理 ............................ 39

6.7.1 概述

................................ 39 6.7.2 配置管理的过程

...................... 40

6.8 常用软件项目管理工具 .................... 43

第六章 项 目 管 理

本章要点

 软件项目管理概念

 项目管理组织及过程

 软件质量及保证

 CMM模型

本章学习目标

 熟悉软件项目管理的任务与目标、软件的作用范围

 懂得可行性研究、成本估算技术与成本估算模型、软件项目的组织与计划、软件质量保证。

 懂得软件能力成熟度模型(CMM)的基本概念、软件过程的成熟度等级、关键过程区域、软件企业如何实施CMM。

 掌握软件管理技术的基本方法。

6.1 项目管理概述

软件项目管理同样表达出管理的四个基本职能,即计划、组织、领导与操纵。软件项目管理是项目管理方法的一个应用领域,项目管理就是为了满足甚至超越项目涉及人员对项目的需求与期望而将理论知识、技能、工具与技巧应用到项目的活动中去。要想满足或者超过项目涉及人员的需求与期望,我们是需要在下面这些相互间有冲突的要求中寻求平衡:

范围、时间、成本与质量

有不一致需求与期望的项目涉及人员

明确表示出来的要求(需求)与未明确表达的要求(期望)

项目管理关注计划与资源分配以保证在预算内按时完成质量合格的系统。项目管理也面临技术开发同样的问题:复杂与变化。复杂的产品需要很多有着不一致背景与能力的开发者参与开发。市场竞争与需要使开发过程需要变化,带来了经常性的资源重新分配,并使得对项目状况的跟踪也变得困难。管理者与开发者使用同样的方法处理与多变问题:通用模型、交流、基本原理与配置。 项目管理已经成为一种广泛应用于各行各业的技术管理过程。在软件行业,对项目实施有效的管理是软件成败的关键。项目管理已经得到越来越多的企业与政府部门的重视,学习与借鉴国际上先进的项目管理经验是非常明智与有益的。软件企业的项目规范是许多公司通过几十年的摸索与实践逐步进展形成的。

随着我国正式加入世界贸易组织(WTO),我国与国际上的交流与合作更加频繁,越来越多的国内软件将承接外包软件作为业务进展的一个方向。外包软件指的是发达国家的企业将软件开发项目转移到他国。利用他国廉价的劳动力成本来降低软件开发的成本。国外企业选择外包软件的合作伙伴时,最看重的是项目管理的项目经理的综合素养要求较高,好的项目经理应该在软件开发技术,软件开发技术,软件工程理论与实践,项目管理,人际沟通等方面均要有较深的造诣。

6.1.1 项目管理的特点

软件项目管理除涉及计算机软硬件领域技术外,还涉及到系统工程学、心理学、社会学、经济学、乃至法律等方面的问题。需要用到多方面的综合知识,特别是要涉及到社会的因素、精神的因素、人的因素比技术问题复杂得多。在有关领域的研究成果与实践已经比较丰富,但在具体的软件项目实践中,务必结合该项目的工作条件、人员与社会环境等多种因素来开展与实施。软件工程进展的实践证明,软件项目成败的关键往往在于项目管理能力水平的高低,管理得好就能带来效率,赢得时间,最终将在技术前进的道路上取得领先地位。

软件项目的特点:

软件产品与其他任何产业产品相比有它自己的特点,它是无形的,没有物理属性,它是一个物理系统的逻辑影射,因此难以懂得难于驾驶。但它确实是把思想、概念、算法、流程、组织、效率、优化等融合在一起了。文档编制的工作量在整个项目过程研制过程中站有很大的比重,但往往人们并不重视,因而直接影响了软件的质量。软件开发工作技术性很强,要求参加工作的人员具有一定的技术水平与实际工作的经验。另外,人员的流淌对项目的影响很大,离去的人员不但带走了重要信息,还带走了工作经验。

软件项目管理的困难

1. 智力密集,可见性差:软件工程充满了大量高强度的脑力劳动。软件开发的成果是不可见的逻辑实体,软件产品的质量的尺度加以衡量,关于不深入掌握软件知识或者缺乏软件经验的人员,是不可能领导做好软件管理工作的。 2. 单位生产:在内容、形式各异的基础上研制或者生产,与其它领域中大规模现代化生产有着很大的差别,也自然会给管理工作造成许多实际困难。

3. 劳动密集,自动化程度低:软件项目经历的各个阶段都渗透了大量的手工劳动,这些劳动十分细致、复杂与容易出差。尽管近年来已经有了软件工具与CASE的研究,但远未达到 自动化的程度。软件产品的提高自然受到了很大影响。

4. 使用方法繁琐,保护困难:软件工作渗透人的因素:不仅要求软件人员具有一定的技术水平与工作经验,而且还要求他们具备良好的心理素养。软件人员的情绪与他们的工作环境对他们工作有好大的影响。

在总结与分析足够数量失误的软件项目之后,看出其原因大都与管理工作有关问题渗透及到软件项目研制中的计划制定,进度估计资源使用,人员配备,组织机构与管理方法等管理的许多侧面。

软件项目管理的要紧职能包含:

制定计划:规定待完成的任务、要求、资源与进度等

建立组织:为实施计划,保证任务的完成,需要建立分工明确的责任制度。

配备人员:任何各类层次的技术人员与管理人员。

指导:鼓励与动员软件人员完成所分配的工作。 检验:参照计划与标准,监督与检查实施的情况。

6.1.2 项目管理的过程

为使软件项目开发获得最终成功,务必对软件项目的工作范围,可能遇到的风险,需要的资源(人,软/硬件),要实现的任务,过程中的里程碑,花费的工作量(成本),与进度的安排作到心中有数。软件项目管理应该提供这些信息,这种管理开始于技术工作开始之前,在软件从概念到实现的过程中持续进行,最后终止于软件项目工程结束。

通常,软件项目管理包含下列过程:

1 软件项目启动

通常,项目管理人员与用户是在系统工程启动阶段确定项目的目标与范围。当明确了软件项目的目标与范围后,就考虑可能的解决方案,标明技术与管理上的要求,确定合理,精确成本估算,实际可行的任务分解与可管的进度安排。

2 度量

度量的工作是为了有效地定量地进行管理。度量的目的是为了把握软件工程实际情况与它所生产的产品质量。在对过去未度量的事项进行度量时,需要解决是什么适合于过程与产品,如何使用收集到的数据,用于比较个人、过程或者产品的度量是否合理。

3估算 在软件项目管理过程中一个关键的活动是制定项目计划。在做计划时,务必就需要的人力、项目持续时间、成本作出估算。这种估算大多是参考往常的花费作出的 。管理人员可使用各类估算技术,并可用一种估算技术作为另一种估算技术的交叉检查。

4风险分析

风险分析对软件项目管理是决定性的,风险分析实际上就是贯穿在软件工程过程中的一系列风险管理步骤,其中包含风险识别、风险估计、风险管理方案、风险解决与风险监督,它能让人们去主动“攻击”风险。

5进程安排

软件项目的进程安排与任何一个项目的进程安排没有实质上的不一致。首先识别一组项目任务,再建立任务之间的相互关联,然后估算各个任务的工作量,分配人力与其它资源,制定进度时序。

6追踪与操纵

项目管理人员追踪在制度安排的每个任务,假如任务实际完成日期滞后于进度安排,则管理人员能够使用一种自动的项目进度安排工具来确定在项目的中间里程碑上进度误期所造成的影响。此外,还能够对资源重新定向,对任务重新安排或者者能够修改交付日期以调整已经暴露的问题。用这种方式能够较好地操纵软件的开发。 6.2 项目计划

计划是管理工作的重要职能,在软件项目管理中,软件项目从制定项目计划开始。项目计划中需要确定下列几项内容:

目标:定义了待完成的目标,迫切需要的资源,约束与优先级。

范围:定义待开发系统的边界,什么包含在系统里,什么不包含在系统里。

产品技术说明:说明软硬件信息与有关功能、性能、安全性等方面的约束。

时间:进度表。

资金:预算。

地点:工作空间分配。

人员:参与人员与项目组织。

在这里,我们强调,项目计划所需确定的内容最终务必以文档的形式保留下来,不管软件项目的规模多少,项目计划文档都是必需的。由于:

1、撰写项目计划的过程也是一个澄清模糊认识,整理思路的过程,只有用文字记录下来的东西,才是明确的。

2、文档能够作为同其他人的沟通渠道。项目计划能够帮助客户熟悉我们的开发活动,帮助项目构成员熟悉项目的约束与策略,帮助项目经理跟踪项目的进展。