软件工程项目管理(doc43页).doc
- 格式:docx
- 大小:108.87 KB
- 文档页数:48
软件工程项目管理
6.6.5 CMM 模型.
6.7.1 概述第六章项目管_理
曰管理概述 6.1 6.1.1 项目管理的特点
6.1.2 项目管理的过程
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.7 软件配置管理 39 36
40 2
6.7.2 配置管理的过程 41
6.8 常用软件项目管理工具 43 3
第六章项目管理
本章要点
软件项目管理概念 项目管理组织及过程 软件质量及保证
CMM模型
本章学习目标
了解软件项目管理的任务与目标、软件的作用范围 理解可行性研究、成本估算技术与成本估算模型、 软件项目的组织与计划、软件质量保证。
理解软件能力成熟度模型 (CM)的基本概念、软件 过程的成熟度等级、关键过程区域、软件企业如何 实施CMM 掌握软件管理技术的基本方法。4
6.1 项目管理概述
组织、领导和控制。软件项目管理是项目管理方法的一个应 用领域,项目管理就是为了满足甚至超越项目涉及人员对项 目的需求和期望而将理论知识、技能、工具和技巧应用到项
目的活动中去。要想满足或超过项目涉及人员的需求和期
衡:
范围、时间、成本和质量 有不同需求和期望的项目涉及人员 明确表示出来的要求(需求)和未明确表达的要求(期
望)
项目管理关注计划和资源分配以保证在预算内按时完成 质量合格的系统。项目管理也面临技术开发同样的问题: 杂和变化。复杂的产品需要很多有着不同背景和能力的开发
者参与开发。市场竞争和需要使开发过程需要变化, 带来了
经常性的资源重新分配,并使得对项目状况的跟踪也变得困
模型、交流、基本原理和配置。软件项目管理同样体现出管理的四个基本职能, 即计划、
望, 我们是需要在下面这些相互间有冲突的要求中寻求平
难。管理者和开发者使用同样的方法处理和多变问题: 通用 5
项目管理已经成为一种广泛应用于各行各业的技术管
理过程。 在软件行业, 对项目实施有效的管理是软件成败的 关键。项目管理已经得到越来越多的企业和政府部门的重 视,学习和借鉴国际上先进的项目管理经验是非常明智和有 益的。软件企业的项目规范是许多公司通过几十年的摸索和 实践逐步发展形成的。
随着我国正式加入世界贸易组织 (WTO ,我国与国际上 的交流与合作更加频繁, 越来越多的国内软件将承接外包软 件作为业务发展的一个方向。 外包软件指的是发达国家的企 业将软件开发项目转移到他国。 利用他国廉价的劳动力成本 来降低软件开发的成本。 国外企业选择外包软件的合作伙伴 时,最看重的是项目管理的项目经理的综合素质要求较高,
好的项目经理应该在软件开发技术, 软件开发技术, 软件工 程理论与实践, 项目管理, 人际沟通等方面均要有较深的造 诣。
6.1.1 项目管理的特点
软件项目管理除涉及计算机软硬件领域技术外,还涉及 到系统工程学、心理学、社会学、经济学、乃至法律等方面
的问题。 需要用到多方面的综合知识, 特别是要涉及到社会
关领域的研究成果和实践已经比较丰富, 但在具体的软件项的因素、 精神的因素、 人的因素比技术问题复杂得多。 在相 6
目实践中, 必须结合该项目的工作条件、 人员和社会环境等 多种因素来开展和实施。 软件工程发展的实践证明, 软件项 目成败的关键往往在于项目管理能力水平的高低, 管理得好 就能带来效率, 赢得时间, 最终将在技术前进的道路上取得 领先地位。
软件项目的特点:
软件产品与其他任何产业产品相比有它自己的特点,它 是无形的,没有物理属性,它是一个物理系统的逻辑影射, 因此难以理解难于驾驶。但它确实是把思想、概念、算法、 流程、组织、效率、优化等融合在一起了。文档编制的工作 量在整个项目过程研制过程中站有很大的比重, 但往往人们 并不重视, 因而直接影响了软件的质量。 软件开发工作技术 性很强,要求参加工作的人员具有一定的技术水平和实际工 作的经验。 另外,
人员的流动对项目的影响很大, 离去的人 员不但带走了重要信息,还带走了工作经验。
软件项目管理的困难
1. 智力密集,可见性差:软件工程充满了大量高强度的
脑力劳动。软件开发的成果是不可见的逻辑实体,软 件产品的质量的尺度加以衡量,对于不深入掌握软件 知识或缺乏软件经验的人员,是不可能领导做好软件 管理工作的。 7
2. 单位生产:在内容、形式各异的基础上研制或生产,
与其它领域中大规模现代化生产有着很大的差别,也 自然会给管理工作造成许多实际困难。
3. 劳动密集,自动化程度低:软件项目经历的各个阶段
都渗透了大量的手工劳动,这些劳动十分细致、复杂
的提高自然受到了很大影响。
4. 使用方法繁琐,维护困难:软件工作渗透人的因素:
不仅要求软件人员具有一定的技术水平和工作经验, 而且还要求他们具备良好的心理素质。软件人员的情 绪和他们的工作环境对他们工作有好大的影响。
在总结和分析足够数量失误的软件项目之后, 看出其原
因大都与管理工作有关问题渗透及到软件项目研制中的计 划制定, 进度估计资源使用, 人员配备, 组织机构和管理方 法等管理的许多侧面。
软件项目管理的主要职能包括: 制定计划:规定待完成的任务、要求、资源和进度等 建立组织: 为实施计划, 保证任务的完成, 需要建立分
工明确的责任制度。
配备人员:任何各种层次的技术人员和管理人员。
指导:鼓励和动员软件人员完成所分配的工作。 和容易出差。尽管近年来已经有了软件工具和 CASE
的研究,但远未达到 自动化的程度。软件产品 8
检验:对照计划和标准,监督和检查实施的情况。
6.1.2 项目管理的过程
为使软件项目开发获得最终成功, 必须对软件项目的工
作范围,可能遇到的风险,需要的资源(人,软 / 硬件), 要实现的任务,过程中的里程碑,花费的工作量(成本), 以及进度的安排作到心中有数。 软件项目管理应该提供这些 信息, 这种管理开始于技术工作开始之前, 在软件从概念到 实现的过程中持续进行,最后终止于软件项目工程结束。
通常,软件项目管理包括以下过程:
1 软件项目启动 通常,项目管理人员和用户是在系统工程启动阶段确定
项目的目标和范围。 当明确了软件项目的目标和范围后, 考虑可能的解决方案, 标明技术和管理上的要求, 确定合理, 精确成本估算,实际可行的任务分解以及可管的进度安排。
2 度量
度量的工作是为了有效地定量地进行管理。 度量的目的
过去未度量的事项进行度量时, 需要解决是哪些适合于过程 和产品 , 如何使用收集到的数据,用于比较个人、过程或产 品的度量是否合理。
3 估算是为了把握软件工程实际情况和它所生产的产品质量。 在对 9
划。在做计划时,必须就需要的人力、项目持续时间、成本
人员可使用各种估算技术, 并可用一种估算技术作为另一种 估算技术的交叉检查。
4 风险分析
风险分析对软件项目管理是决定性的, 风险分析实际上
括风险识别、 风险估计、 风险管理方案、 风险解决和风险监 督,它能让人们去主动“攻击”风险。
5 进程安排
软件项目的进程安排与任何一个项目的进程安排没有
实质上的不同。 首先识别一组项目任务, 再建立任务之间的 相互关联,
然后估算各个任务的工作量, 分配人力和其它资 源,制定进度时序。
6 追踪和控制 项目管理人员追踪在制度安排的每个任务, 如果任务实
际完成日期滞后于进度安排, 则管理人员可以使用一种自动
的项目进度安排工具来确定在项目的中间里程碑上进度误
种方式可以较好地控制软件的开发。在软件项目管理过程中 个关键的活动是制定项目计
作出估算。这种估算大多是参考以前的花费作出的 。管理
就是贯穿在软件工程过程中的一系列风险管理步骤, 其中包
期所造成的影响。 此外, 还可以对资源重新定向, 对任务重
新安排或者可以修改交付日期以调整已经暴露的问题。 用这 10
6.2 项目计划
计划是管理工作的重要职能, 在软件项目管理中, 软件
项目从制定项目计划开始。 项目计划中需要确定以下几项内 容:
目标: 定义了待完成的目标, 迫切需要的资源, 约束和
优先级。
范围: 定义待开发系统的边界, 什么包括在系统里, 什
么不包括在系统里。
产品技术说明:说明软硬件信息以及有关功能、性能、
安全性等方面的约束。
时间:进度表。
地点:工作空间分配。
人员:参与人员以及项目组织。
在这里,我们强调, 项目计划所需确定的内容最终必须
划文档都是必需的。因为:
1、撰写项目计划的过程也是一个澄清模糊认识,整理
思路的过程,只有用文字记录下来的东西,才是明确的。
2、文档能够作为同其他人的沟通渠道。项目计划可以
帮助客户了解我们的开发活动, 帮助项目组成员了解项目的 约束和策略,帮助项目经理跟踪项目的进展。 以文档的形式保留下来, 无论软件项目的规模多少, 项目计