软件维护与软件管理

软件项目管理

软件工程 第五部分 第13章,主讲人:李欣

Created: 2024-03-05 Tue 16:43

0.1. 互动课堂

Click to host the seminar.

0.2. 签到

https://dash.memopixel.com/tool/attendance/

0.3. 本次课的目标

  • 第五部分:软件维护与软件管理
    • 第13章:软件项目管理
      • 软件项目管理概述
      • 项目估算
      • 风险管理
      • 进度管理
      • 需求管理
      • 配置管理
      • 质量管理

1. 软件项目管理概述

1.1. 软件项目管理的目标

项目管理人员争取的目标应包括的几个方面
  • 达到项目预期的软件产品功能和性能要求
  • 时限要求
  • 项目开销限制在预算之内

1.2. 软件项目管理涉及的几个方面

人员(People)
  • 利益相关方、团队负责人、团队集体
产品(Product)
  • 产品的工作环境
  • 产品的功能和性能
  • 产品工作处理的是什么数据,经它处理后得到什么数据
过程(Process)
  • (参照第12章内容)
项目(Project)
  • 计划及计划管理项目策划及计划指定项目估算
    风险分析及风险管理进度管理计划跟踪域监督
  • 资源管理人员管理成本管理
  • 成果要求管理需求管理配置管理质量管理

2. 项目估算

2.1. 项目策划与项目估算

  • 规模(size) :例如以1000代码行为单位,记为 KLOC ;或以功能点为单位,记为 FP
  • 工作量(effort) :例如以一个人工作一个月为单位,记为 人月
  • 成本(cost) :例如某项目投入的总人工费用为 12万元

一个软件组织在完成多个项目以后积累了一些数据, 进行 成本分析 后便可得到自己的 生产率 数值和 人工价格

  • 生产率平均每个人月完成的源程序行数 ,可记为 KLOC/人月FP/人月
  • 人工价每人月的价值

工作量 \(=\) 规模 \(/\) 生产率
成本 \(=\) 工作量 \(\times\) 人工价格

2.2. 软件规模估算的功能点方法

  • 功能度
  • 功能复杂性
  • 未调节功能点
  • 调节因子
  • 交付功能点
  • 交付功能点与软件规模
  • 功能点方法的优点
  • 功能点方法的不足之处
  • 功能点方法计算实例

2.3. 软件开发成本估算

  • 专家判定,Delphi方法
  • COCOMO模型
  • COCOMO II模型

3. 风险管理

3.1. 什么是软件风险

软件工程过程 中可能出现的那些 影响软件目标实现 或是可能 造成重大损失的事件 称为 软件风险

依据危害性分类
  • 成本风险
  • 绩效风险
  • 进度风险
依据风险涉及的范围分类
  • 项目风险
  • 技术风险
  • 商业风险
其他分类
  • 已知风险
  • 可预知风险
  • 不可预知风险

3.2. 风险管理的任务

风险管理包括的两个重要的目标
  • 识别风险 :找出可能的风险,对其进行分析、评估,并进一步对这些风险排序,以突出最为险恶的风险。
  • 采取措施 :把风险造成的影响降低到最小。
降低风险危害的策略
  • 回避风险
  • 转移风险
  • 承受风险

为达到风险管理的目标,必须使风险管理活动围绕着 风险评估风险控制 开展。

3.3. 风险评估

  • 风险识别
  • 风险分析
  • 风险排序
%%{init: { 'theme': 'forest', 'fontFamily': 'Times New Roman, KaiTi' }}%%
  flowchart LR
      A(("风险识别")) --> B(("风险分析"))
      B --> C(("风险排序"))

risk-evaluation.svg

Figure 1: 风险评估的3方面内容

3.4. 风险控制

  • 风险管理策划
  • 风险化解
  • 风险监控

3.5. 做好风险管理的建议

  1. 要承认风险是客观存在的,不可能完全避免。
  2. 对风险的认识最好组织开放式的讨论,这样做本身就能够提高认识,降低风险的影响。
  3. 奖励那些防止风险发生的人,不要只是惩罚和处分造成风险的人。
  4. 不要仅仅关注易于处理的风险。
  5. 不要试图同时管理过多的风险。
  6. 要记录风险的情况。
  7. 把风险管理纳入项目管理。
  8. 初期阶段不必过分强调量化管理。
  9. 不应追求实施风险管理的成本效益比。
  10. 风险计划本身又可能带来新的风险,也可能会提高产品的成本。
  11. 回避风险应看成是最后的手段,采取时必须十分谨慎。
  12. 在组织级上采用风险数据库,以便于项目之间借鉴风险数据。

4. 进度管理

4.1. 进度控制问题

  • 项目分解
  • 确定各部分之间的相互关系
  • 时间分配
  • 确认投入的工作量
  • 确定人员的责任
  • 规定工作成果
  • 规定里程碑

4.2. 甘特图

甘特图(Gantt chart) 是表示 工作进度计划 以及 工作实际进度 情况最为简明的图示方法。 这种直观的图示方法很实用,也是应用最为广泛的方法。

4.3. 时标网状图

为克服甘特图的缺点,将甘特图做了一些修改,形成了 时标网状图(time scalar network) 。 可显示出各子任务间的依赖关系。

4.4. PERT图

计划评审技术(Program Evaluation and Review Technique, PERT) 也称为 网络图方法 , 或简称 PERT图方法 ,它的另一名称是 关键路径法(Critical Path Method, CPM)

5. 需求管理

参考教材

  • 13.5 pp.335-345

6. 配置管理

软件配置管理的主要任务
  • 制定 软件配置管理计划
    • 配置标识规则;
    • 如何建立配置数据库,并将配置项置于配置管理之下;
    • 配置管理人员的职责及配置管理活动;
    • 所采用的配置管理工具、技术和方法。
  • 实施 变更管理 ,防止项目进行中因变更导致的混乱
  • 实施 版本管理发布管理

7. 质量管理

质量管理的四个重要环节
  • 质量策划(Quality Planning, QP)
  • 质量控制(Quality Control, QC)
  • 质量保证(Quality Assurance, QA)
  • 质量改进(Quality Improvement, QI)