1. 软件项目管理

沟通路径

  • n个人员的开发小组(无主程序员):n × (n - 1) 条沟通路径
  • 主程序员的开发小组n - 1 条沟通路径

软件项目估算

COCOMO 估算模型

COCOMO(Constructive Cost Model)是一种软件成本估算模型。

COCOMO II 估算模型

COCOMO II 是COCOMO的升级版,适用于更广泛的软件开发环境。


2. 进度管理

甘特图(Gantt图)

甘特图是一种条形图,用于显示项目进度安排:

  • 横轴:时间
  • 纵轴:任务
  • 条形:任务的起止时间

特点:直观显示任务的时间安排和并行关系,但不易显示任务间的依赖关系。

PERT图

PERT(Program Evaluation and Review Technique)图是一种网络图,用于项目计划和进度控制:

  • 节点:表示活动/事件
  • 有向边:表示活动之间的依赖关系
  • 边权:表示活动持续时间

考点:关键路径、关键路径长度、某个顶点(活动)是否在关键路径上。

关键路径

  • 关键路径:从项目开始到结束的最长路径
  • 关键路径长度:关键路径上所有活动持续时间之和
  • 关键活动:关键路径上的活动,延迟会导致整个项目延期

3. 风险管理

风险管理过程

阶段 说明
风险识别 识别项目中可能存在的风险
风险预测(风险评估) 评估风险发生的概率和影响
风险控制 制定应对策略,降低风险影响

风险分类

  • 项目风险:预算、进度、人员等方面的风险
  • 技术风险:设计、实现、接口等方面的风险
  • 商业风险:市场、策略等方面的风险

4. 软件配置管理

主要内容

软件配置管理其主要内容包括:

  • 软件配置标识
  • 变更管理
  • 版本控制
  • 系统建立
  • 配置审核
  • 配置状态报告

主要目标

  • 变更标识
  • 变更控制
  • 版本控制
  • 确保变更正确的实现
  • 变更报告

配置管理内容

  • 版本管理
  • 配置支持
  • 变更支持
  • 过程支持
  • 团队支持
  • 变化报告
  • 审计支持

5. 软件质量

ISO/IEC 9126 软件质量模型

ISO/IEC 9126 定义了软件质量的六个特性:

特性 说明
功能性 软件满足规定和隐含需求的能力
可靠性 软件在规定条件下维持性能水平的能力
易用性 软件被理解、学习、使用的难易程度
效率 软件在规定条件下提供适当性能的能力
可维护性 软件被修改的难易程度
可移植性 软件从一个环境迁移到另一个环境的能力

Mc Call 软件质量模型

Mc Call 软件质量模型从三个维度评价软件质量:

  • 产品运行:正确性、可靠性、效率、完整性、实用性
  • 产品修订:可维护性、灵活性、可测试性
  • 产品转移:可移植性、可重用性、互操作性

软件评审

软件评审是对软件工作产品进行系统检查,以发现缺陷和改进机会。


6. 软件可靠性、可用性、可维护性

可靠性

软件在规定条件下、规定时间内无故障运行的概率。

可用性

软件在需要时能够正常使用的概率。

可维护性

软件能够被修改的难易程度。


7. 软件容错技术

软件容错技术通过冗余设计和错误恢复机制来提高系统的可靠性:

  • 故障避免:预防故障发生
  • 故障检测:及时发现故障
  • 故障恢复:从故障中恢复
  • 故障屏蔽:隐藏故障影响

8. 软件工具

软件开发过程中使用的工具:

  • 需求工具:需求管理、建模工具
  • 设计工具:UML建模、原型工具
  • 编码工具:IDE、代码编辑器
  • 测试工具:自动化测试、性能测试工具
  • 维护工具:版本控制、缺陷跟踪工具