软件工程 · 第 6 章

第 6 章 项目管理与标准化

甘特图与关键路径(含算例);COCOMO 与风险管理;配置管理三件事(版本/基线/变更);文档三分类与 GB/T 8567、ISO 9126。

6.1 进度管理:甘特图与关键路径

"哪个任务卡脖子、整个项目最早什么时候完"——关键路径的作用。

  • 甘特图(Gantt)——横轴时间、纵轴任务,用条形表示各任务的起止与进度。 直观展示"谁在什么时候干什么",但不易表达任务间的依赖关系。
  • 关键路径——项目网络图中耗时最长的那条路径;它的长度决定项目最短工期。 关键路径上的任务延迟一天,整个项目就晚一天。
简单例子(任务与工期):
  A(3天) → B(2天) → D(4天)      路径时长 = 3+2+4 = 9 天
  A(3天) → C(1天) → D(4天)      路径时长 = 3+1+4 = 8 天

  关键路径 = A→B→D(9 天),项目最短工期 9 天。
  C 有 1 天的机动时间(浮动时间);B 延迟一天项目即延迟。
课堂练习(2 题)
  1. 关键路径的定义是什么?它决定什么? 答:网络图中耗时最长的路径;它决定项目的最短总工期。
  2. 甘特图适合展示什么?不适合什么? 答:适合展示各任务的时间安排和进度;不适合表达任务间的依赖与关键路径。

6.2 成本估算与风险管理

名字与用途对上号即可。

  • COCOMO 模型——按代码规模(如 KLOC 千行代码)估算工作量和成本的经典模型(了解)。
  • 成本估算难点:软件是逻辑产品,没有"料"可数,只能靠历史数据类比、经验模型。
  • 风险——项目可能出岔子的事(需求变更、人员流失、技术不成熟)。 风险管理的步骤:识别 → 评估 → 应对计划(规避/转移/减轻/接受)→ 监控。
  • 进度安排基本原则:任务分解、预留缓冲、里程碑检查。
课堂练习(2 题)
  1. COCOMO 模型主要依据什么估算成本? 答:代码规模(千行代码 KLOC)等项目特征。
  2. 风险管理的第一步是什么? 答:风险识别(找出可能出问题的地方)。

6.3 配置管理:团队协作的基石

"版本乱、改重了、找不回昨天能跑的代码"——配置管理治这些病。

  • 配置项——纳入管理的所有产出物:源代码、文档、数据、脚本等。
  • 基线(Baseline)——通过评审后"冻结"的配置项版本;基线变更是受控的(要走变更流程)。
  • 版本控制——记录每次修改,能追溯、能回退(SVN、Git 是工具)。
  • 变更控制——所有变更必须经过申请→评估→批准→实施→验证的流程,防止随意改动。
一句话
  • 配置管理管三件事:管版本(记录)、管基线(冻结)、管变更(审批)。
课堂练习(2 题)
  1. 什么是基线?基线上的变更能随便改吗? 答:基线是通过评审后确定下来的配置项版本;其变更必须走正式的变更控制流程,不能随意修改。
  2. Git 属于配置管理里的哪一类工具? 答:版本控制工具。

6.4 软件文档与标准

"哪种文档给谁看"的配对题 + 国家标准名称。

文档类别给谁看例子
开发文档开发人员需求规格说明书、设计说明书、测试报告
管理文档管理人员项目计划、开发进度月报、开发总结
用户文档使用者/运维用户手册、操作指南、安装说明
  • 我国软件文档的国家标准是 GB/T 8567(《计算机软件文档编制规范》),规定了各文档的编制要求。
  • 软件质量特性(ISO 9126 口径,了解):功能性、可靠性、易用性、效率、可维护性、可移植性。
课堂练习(2 题)
  1. 用户手册属于哪一类软件文档? 答:用户文档。
  2. 软件质量特性包含哪六个方面(ISO 9126)? 答:功能性、可靠性、易用性、效率、可维护性、可移植性。

6.5 本章小结与全册自查

软件工程收尾:把最常考的十件事过一遍。

  • 三要素:方法、工具、过程;
  • 需求分析管"做什么"(产 SRS),设计管"怎么做";
  • 带风险分析的模型是螺旋;拥抱变化的是敏捷;
  • DFD 四要素:外部实体、加工、数据存储、数据流;子图与父图平衡;
  • 耦合七级(非数标控外公内)越低越好;内聚七级(功顺通、过时逻偶)越高越好;
  • 测试目的是发现错误,不能证明无错;用例 = 输入 + 预期输出;
  • 黑盒:等价类、边界值(0、1、100、101 记法);白盒:路径覆盖最强;
  • 测试顺序:单元 → 集成 → 确认 → 系统;
  • 维护四类中完善性维护占比最大;
  • McCabe:V(G) = E − N + 2 = 判定数 + 1。
综合自查(5 题)
  1. 需求规格说明书属于哪类文档?在哪个阶段产出? 答:开发文档;需求分析阶段。
  2. 一个流程图有 5 个判定点,圈复杂度是多少?至少需要几个测试用例覆盖独立路径? 答:V(G) = 5 + 1 = 6;至少 6 个。
  3. 传整张表只用一部分的耦合、传开关参数的耦合分别叫什么? 答:前者是标记(特征)耦合;后者是控制耦合。
  4. 输入年龄范围 18~60,边界值测试取哪些值? 答:17、18、19、59、60、61。
  5. 用户在使用现场发现程序算错金额后提交修改,这属于哪类维护?如果是要求新增统计报表呢? 答:前者是改正性维护;后者是完善性维护。