软件工程与实践-八软件项目管理-知识梳理
《软件工程与实践》 |(八)软件项目管理 知识梳理
系列索引:
目录
本章重难点:
● 理解软件项目管理的特点、过程和内容
● 熟悉软件项目过程管理各阶段的任务和技术方法
● 掌握软件项目管理的常用工具、文档及应用
8.1 软件项目管理概述
8.1.1 软件项目管理概念及特点
软件项目管理是指对软件项目的 整个生存周期过程 的管理,按照项目任务要求,合理的利用资源,为 保证软件产品质量 所做的工作。
主要职能 :
软件项目管理的 主要特点 :
(1)目标产品抽象难度量。(2)项目独特定制化生产。
(3)智力密集技术复杂。 (4)人为因素影响大。
8.1.2 软件项目管理过程及内容
项目管理过程 : 项目启动、项目计划、组织实施、项目监控和项目验收 五个阶段。
在项目具体实施过程中,计划、执行和控制通常需要往复循环(称为核心循环)
软件项目管理的内容
项目管理的九大知识领域的内容,分布在项目的五大过程中
核心的四大知识领域是 范围、时间、成本与质量管理 。
8.2 软件项目启动与组织管理
8.2.1 软件项目启动过程及任务
软件项目的 启动过程 是一个 新项目决策立项与开始准备实施的过程。
8.2.2 软件项目组织管理
软件项目管理 先于任何技术活动之前开始,并且 贯穿于软件的整个生命周期 。
效的软件项目组织管理集中在4个P上,即人员(Person)、产品(Product)、过程(Procedure)和项目(Project)。
8.3 软件项目进度管理
8.3.1 软件项目进度估算
- 软件规模与工作量估算
常用的 软件规模度量单位 有 千行代码
KLOC(Kilo-Lines Of Code)
、功能点
FP(Function Points)
和对象点
OP(Object Points
)
常用的 工作量度量单位 有 人年、人月和人日等
1) 软件规模估算
( 1
)千代码行(
KLOC
)估算法。
(
2
)功能点(
FP
)估算法。
2) 工作量估算 。 常用的两个估算模型是: CoCoMo
模型和
Putnam
模型 。
8.3.2 软件项目进度安排
过程调整是项目计划中首要任务
任务分解落实
软件设计上的分层结构,通常成为 任务分解结构
WBS 的依据.
安排计划的编排与优化
- 甘特图
甘特图(Gantt Chart)又称横道图,如图所示,是活动进度与日历表的对照图。
- 网络图
网络图是用网络分析的方法编制的进度计划图。主要可以描述每个活动及其之间的逻辑关系。
计划评审技术
PERT 和 关键路径法
CPM 都采用网络图表示项目的活动。
网络图常用术语:
8.4 软件项目的过程管理
项目实施中的 关键 是对软件项目的 过程管理 ,
8.4.1 软件项目的需求管理
软件项目的需求开发过程,需要经历 需求获取、需求分析、需求规格编写、需求验证 四个往复确认的阶段。
8.4.2 软件项目质量管理
质量管理主要内容包括三个过程: 质量计划制定、质量保证和质量控制 。
在全面软件质量管理模型中,质量管理有三大类: 技术评审、过程检查、软件测试
8.4.3 软件项目配置管理
软件配置管理
(SCM )是对产品进行 标志、存储和控制 ,以维护其完整性、可追溯性及正确性而为软件开发提供的一套管理办法和活动原则。
软件配置管理要素如下:
(1) 软件配置项
(2) 基线 功能基线 分配基线 产品基线
(3) 配置管理机构 配置管理委员会(SCCB)
8.4.4 软件项目的风险管理
软件项目的风险管理是按照风险计划对项目进行 全过程 的管理。
风险分析的目的 是建立应对处理及监控风险的策略。一个有效的策略必须考虑三个问题: 风险避免、风险监控、风险管理及意外事件计划 (预案)
同每个 风险相关的三元组 ( 风险描述、发生概率、风险影响 )是建立风险应对处理及避免或消除步骤的重要基础。
对风险采取主动的方法,则避免风险永远是最好的策略
8.5 软件项目监控与验收
软件项目监控是对项目实施情况进行跟踪、度量、检查评审并与目标对比和调控的过程。
8.5.1 软件项目监控过程
在项目执行过程通常通过设置 偏差的警戒线和底线 的方法来控制项目,警戒线和底线以 时间和阶段成果 为 标志。
8.5.2 软件项目监控内容及方法
项目跟踪 是项目控制的前提和条件, 项目监制 是项目跟踪的目的和服务对象。
项目质量监控的方法 包括: 质量度量、控制图法、趋势分析法 等。 质量度量 主要有两类: 预测型和验收型 。
8.5.3 软件项目评审
项目评审包括: 评审准备、评审过程和评审报告 三个过程
项目评审分为5种:商务评审、技术评审、管理评审、质量评审和产品评审等
技术评审对象 主要是 规范和设计 ,而管理评审关注的是 项目计划和报告
8.5.4 软件项目收尾与验收
项目验收的组织构成包括:项目接收方、项目开发团队和项目监理人员。