Skip to content

软件项目管理

软件项目管理是运用管理知识、技能、工具和技术于项目活动,以满足项目要求。


一、软件估算

1.1 代码行估算法 (LOC)

定义:基于代码行数的估算方法

公式

工作量 = 代码行数 / 生产率(行/人月)

缺点

  • 早期难以准确预测代码行数
  • 不同语言、风格导致差异大
  • 不能反映软件复杂度

1.2 功能点分析法 (FPA)

定义:从用户角度度量软件功能规模

特点

  • 不依赖编程语言
  • 基于用户可见功能

功能类型

类型缩写说明
内部逻辑文件ILF系统内部维护的数据组
外部接口文件EIF其他系统维护,本系统引用的数据组
外部输入EI从外部接收数据,维护ILF
外部输出EO向外部发送处理后的数据
外部查询EQ检索ILF/EIF向用户提供信息

计算步骤

  1. 识别功能类型
  2. 确定复杂度(低、中、高)
  3. 计算未调整功能点 (UFP)
  4. 评估14个一般系统特性
  5. 计算技术复杂度因子 (TCF)
    • TCF = 0.65 + (0.01 × DI)
    • DI = 14个特性评分之和
  6. 计算调整后功能点 (AFP)
    • AFP = UFP × TCF

1.3 COCOMO模型

定义:构造性成本模型,算法型成本估算

COCOMO II 三个子模型

子模型适用阶段规模度量
应用组装模型原型开发对象点
早期设计模型早期设计功能点
后架构模型实际开发代码行(SLOC)

后架构模型公式

PM = A × (KSLOC)^E × ∏(EM_i)

其中:
- PM:工作量(人月)
- A:常数
- KSLOC:千行源代码
- E:指数(由5个尺度因子决定)
- EM_i:17个成本驱动因子

5个尺度因子 (Scale Factors)

因子缩写说明
先例性PREC组织对该类项目的熟悉程度
开发灵活性FLEX开发过程的灵活程度
架构/风险化解RESL风险分析和架构定义程度
团队凝聚力TEAM团队协作程度
过程成熟度PMAT组织的CMMI级别

17个成本驱动因子类别

类别因子示例
产品属性可靠性要求(RELY)、数据库规模(DATA)、产品复杂性(CPLX)
平台属性执行时间约束(TIME)、主存约束(STOR)
人员属性分析员能力(ACAP)、程序员能力(PCAP)
项目属性工具使用(TOOL)、进度约束(SCED)

二、项目进度计划

2.1 工作分解结构 (WBS)

定义:将项目可交付成果分解成更小、更易管理的组成部分

作用

  • 进度计划基础
  • 资源分配依据
  • 成本估算基础

2.2 甘特图 (Gantt Chart)

定义:用条形图显示项目活动的时间安排

特点

  • 简单直观
  • 易于理解和制作
  • 便于跟踪进度

缺点

  • 难以表示复杂依赖关系
  • 不能直观显示关键路径

2.3 PERT图

定义:基于事件的网络图,使用概率时间估算

三点估算法

期望时间 = (最乐观时间 + 4×最可能时间 + 最悲观时间) / 6

适用场景:活动持续时间不确定的研发项目

2.4 关键路径法 (CPM)

定义:确定项目最短完成时间和关键活动的网络分析技术

核心概念

概念缩写定义
最早开始时间ES活动能开始的最早时间
最早完成时间EF活动能完成的最早时间
最迟开始时间LS不影响工期的最晚开始时间
最迟完成时间LF不影响工期的最晚完成时间
总浮动时间TF不影响总工期可延迟的时间
自由浮动时间FF不影响后续活动可延迟的时间

计算公式

EF = ES + 持续时间
LS = LF - 持续时间
TF = LS - ES = LF - EF
FF = Min(后续活动ES) - 本活动EF

计算步骤

正向推导(计算ES、EF):

  1. 起始活动 ES = 0
  2. EF = ES + 持续时间
  3. 后续活动 ES = Max(所有前置活动的EF)

反向推导(计算LS、LF):

  1. 结束活动 LF = 项目工期(或其EF)
  2. LS = LF - 持续时间
  3. 前置活动 LF = Min(所有后续活动的LS)

关键路径

  • 总浮动时间 = 0 的活动
  • 连接所有关键活动的路径
  • 决定项目最短工期

计算示例

活动网络图:
A(3) → B(4) → D(2)
  ↓           ↑
C(5) ─────────┘

活动 | 持续时间 | 前置
-----|----------|------
A    | 3        | -
B    | 4        | A
C    | 5        | A
D    | 2        | B,C

正向计算:
A: ES=0, EF=3
B: ES=3, EF=7
C: ES=3, EF=8
D: ES=Max(7,8)=8, EF=10

反向计算:
D: LF=10, LS=8
B: LF=8, LS=4
C: LF=8, LS=3
A: LF=Min(4,3)=3, LS=0

浮动时间:
A: TF=0-0=0 (关键)
B: TF=4-3=1
C: TF=3-3=0 (关键)
D: TF=8-8=0 (关键)

关键路径:A → C → D
项目工期:10

三、风险管理

3.1 风险管理过程

风险识别 → 风险分析 → 风险应对 → 风险监控

3.2 风险识别

方法

  • 头脑风暴
  • 德尔菲技术
  • 检查表法
  • SWOT分析
  • 经验教训总结

3.3 风险分析

定性分析

  • 风险矩阵法
  • 评估概率和影响
  • 优先级排序

定量分析

  • 蒙特卡洛模拟
  • 决策树分析
  • 敏感性分析

3.4 风险应对策略

消极风险(威胁)应对

策略说明示例
规避改变计划消除风险取消高风险功能
转移将风险转移给第三方购买保险、外包
减轻降低概率或影响增加测试、培训
接受不采取措施设立应急储备

积极风险(机遇)应对

策略说明
开拓确保机遇实现
分享与第三方分享
增强提高概率或影响
接受不采取特别措施

四、配置管理

4.1 基本概念

定义:识别、组织、控制和跟踪软件配置项修改的技术和规程

目的:保持软件产品的完整性、一致性和可追溯性

4.2 核心概念

概念定义
配置项 (CI)需要单独识别和控制的工作产品
基线 (Baseline)特定时间点上经过评审批准的配置项版本
版本控制管理配置项的不同版本
变更控制控制对基线的修改

4.3 常见配置项

  • 需求规格说明书
  • 设计文档
  • 源代码
  • 测试计划和用例
  • 可执行代码
  • 用户手册

4.4 常见基线

基线建立时机
需求基线需求评审通过后
设计基线设计评审通过后
代码基线代码评审通过后
测试基线测试完成后
产品基线产品发布时

4.5 变更控制流程

提交变更请求 → 评估影响 → 审批 → 实施变更 → 验证 → 更新配置记录

4.6 配置审计

目的

  • 验证配置管理活动的符合性
  • 确保配置项的完整性和一致性
  • 确保变更得到正确记录和批准

五、考试要点

高频考点

  1. 关键路径计算(ES、EF、LS、LF、浮动时间)
  2. 功能点分析法基本概念
  3. COCOMO II模型结构
  4. 风险应对策略
  5. 配置管理核心概念

典型例题

题1:某活动ES=5,持续时间=3,则EF=? 答案:EF = 5 + 3 = 8

题2:某活动LF=10,LS=7,EF=8,ES=5,则TF=? 答案:TF = LS - ES = 7 - 5 = 2(或 LF - EF = 10 - 8 = 2)

题3:将风险转移给保险公司,这属于什么风险应对策略? 答案:转移

题4:需求规格说明书属于什么? 答案:配置项

关键路径计算步骤

1. 画出活动网络图
2. 正向计算ES和EF(从前往后)
3. 确定项目工期(最后一个活动的EF)
4. 反向计算LS和LF(从后往前)
5. 计算TF = LS - ES
6. TF = 0 的活动为关键活动
7. 连接关键活动得到关键路径

记忆口诀

关键路径

正向求早反向迟
早完等于早开加时
迟开等于迟完减时
浮动为零是关键

风险应对

消极风险规避转移减轻接受
积极机遇开拓分享增强接受

上次更新:

如有转载或 CV 的请标注本站原文地址