软件项目管理
面向规模的度量标准
功能点度量
基于经验的度量
COCOMO模型
项目计划
风险管理
-
四P要素:
-
人力资源管理成熟度模型(PCMM):
- PCMM是通过对人力资源管理的如人力资源规划、薪酬管理、绩效管理、组织管理、职业规划、培训管理、知识管理等模块,按初始级、重复级、定义级、定量级和优化级述五个递进层级进行详细描述和分级,建立企业人力资源管理的成熟程度评价模型,以此来对企业目前人力资源管理现状进行评级,寻找不足和差距,以此来明确未来的发展方向。
-
软件产品度量的含义:
- 一种量化衡量方法,使得人们可以理解和把握软件项目的(生产)效率(或者所需要的劳动量)。
- 一种量化衡量方法,使得人们可以理解和把握软件项目的(生产)效率(或者所需要的劳动量)。
-
面向规模的度量标准:
- 每KLOC(千行代码)的错误数,即 总错误数÷总KLOC
- 每KLOC(千行代码)的缺陷数,即 总缺陷数÷总KLOC
- 每KLOC(千行代码)的文档页数,即 总文档页数÷总KLOC
-
基于代码行的度量方法的优缺点:
- 优点:
- LOC、KLOC和相关度量容易计算
- 许多现有的软件估算模型都使用LOC和KLOC作为一项重要输入
- 有大量的关于LOC的文献和数据
- 缺点:
- LOC依赖于使用的语言,这对短小精悍的程序不利
- 不太适用于非过程化语言
- LOC是由在设计完成时候才能计算,估算需要一定程度的细节,而这些细节可能很难获得,例如,项目计划人员难于在分析和设计完成之前估算LOC
- 优点:
-
间接测量——功能点度量:
- 计算功能点:
total_counts:总计数
Fi (i取1到14) :14项复杂性调整值 - 复杂性调整值:
- 系统需要可靠的备份和恢复么?
- 需要进行数据通信么?
- 有分布式处理功能么?
- 性能重要么?
- 将该系统运行在一个现有的操纵系统中么?
- 系统要求在线输入数据么?
- 在线输入数据要求在多个屏幕和操作之间建立输入事务么?
- 主文件是否在线更新?
- 输入、输出、文件或查询是否复杂?
- 内部处理是否复杂?
- 代码是可重用的么?
- 设计中包括数据(流程)转换或安装么?
- 系统要为不同的机构设计不同的安装方法么?
- 应用程序便于变更么?易于用户使用么?
- 功能点计算:
*应用程序便于变更么?易于用户使用么?- 每FP的错误数,即 总的错误数 ÷ 总的FP数
- 每FP的缺陷数,即 总的缺陷数 ÷ 总的FP数
- 每FP的文档页数,即 总的文档页数 ÷ 总的FP数
- 每人月的FP数,即 总的FP数 ÷ 总的人月数
- 计算功能点:
-
算法成本模型——基于经验的度量:
-
COCOMO(构造性成本模型)模型:
- COCOMO(构造性成本模型)是一个经验模型, 通过收集大量的软件项目的数据而获得
- 好处 :
- 它已得到广泛的证明。可用于公共领域并且很多公共和商业工具都支持它。
- 它应用广泛,并得到了不同组织的评价。
- 它有较长的历史,于1981年第一次实例化[Boehm, 1981],为了适用于Ada进行了一次改进[Boehm and Royce, 1989],最新版本COCOMO II发布于2000年[Boehm et al., 2000]。
-
基本COCOMO模型的工作量和进度公式:
-
COCOMO II 模型:
- COCOMO II 模型引入对产品、硬件、人员及项目属性的客观评价
- COCOMO II 模型引入对产品、硬件、人员及项目属性的客观评价
-
项目计划:
-
40—20—10计划:
- 在整个软件开发过程中,编码工作量仅占 20%,编码前工作量占40%,编码后工作量占 40%。
- 40-20-40 规则只应用来做为 一个指南。实际的工作量分配比例必须按照各项目的特点来决定。
-
甘特图(Gantt Chart):
- 在甘特图中,每一任务完成的标准,不是以能否继续下一阶段任务为标准,而是以必须交付应交付的文档与通过评审为标准。因此在甘特图中,文档编制与评审是软件开发进度的里程碑。
- 在甘特图中,每一任务完成的标准,不是以能否继续下一阶段任务为标准,而是以必须交付应交付的文档与通过评审为标准。因此在甘特图中,文档编制与评审是软件开发进度的里程碑。
-
PERT技术和CPM方法:
- PERT技术叫做计划评审技术,CPM方法叫做关键路径法,它们都是安排开发进度,制定软件开发计划的最常用的方法。
它们都采用网络图来描述一个项目的任务网络,也就是从一个项目的开始到结束,把应当完成的任务用图或表的形式表示出来。 - 通常用两张表来定义网络图。
- 一张表给出与一特定软件项目有关的所有任务(也称为任务分解结构WorkBreakdown Structure);
- 另一张表给出应当按照什么样的次序来完成这些任务(有时称为限制表RestrictionList)。PERT技术和CPM方法都为项目计划人员提供了一些定量的工具。
- 确定关键路径,即决定项目开发时间的任务链。在关键路径上的各个任务都是时间余量为零的关键任务,不能有任何时间延误。
- 应用统计模型,对每一个单独的任务确定最可能的开发持续时间的估算值。
- 计算边界时间,以便为具体的任务定义时间窗口。
- PERT技术叫做计划评审技术,CPM方法叫做关键路径法,它们都是安排开发进度,制定软件开发计划的最常用的方法。
-
40—20—10计划:
-
风险管理:
- 风险管理涉及的主要过程包括:风险识别、风险量化、风险应对计划制定和风险监控,如图所示。
- 风险管理涉及的主要过程包括:风险识别、风险量化、风险应对计划制定和风险监控,如图所示。