软件估算的基础(2) ◆复杂性 相同KLOC的两个程序花费的时间将会不同。因而不 能简单地应用KLoC或SLoC,而要根据复杂性进行修 正,但是复杂性的度量通常是主观而定的。 上海交通大学计算机系 16
上海交通大学计算机系 16 软件估算的基础(2) 复杂性 ◼ 相同KLOC的两个程序花费的时间将会不同。因而不 能简单地应用KLOC或SLOC,而要根据复杂性进行修 正,但是复杂性的度量通常是主观而定的
基于承诺的估计 ◆一些组织直接从需求出发安排进度而不进行中间 的工作量估算。他们要求每个开发者作出进度承 诺而非进度估算。 ◆有利于开发者对进度的关注,开发者在接受承诺 后士气高昂,自愿加班加点 ◆问题在于开发者的估算比现实要乐观,大约低 20至30个百分点( Van genuchten,1991) ◆承诺应该现实可行,以使你的团队会不断成功而 不是不断失败。 上海交通大学计算机系 17
上海交通大学计算机系 17 基于承诺的估计 一些组织直接从需求出发安排进度而不进行中间 的工作量估算。他们要求每个开发者作出进度承 诺而非进度估算。 有利于开发者对进度的关注,开发者在接受承诺 后士气高昂,自愿加班加点 问题在于开发者的估算比现实要乐观,大约低 20至30个百分点(Van Genuchten, 1991) 承诺应该现实可行,以使你的团队会不断成功而 不是不断失败
软件工作量估计技术 算术模型 专家判断 ◆对比法 ◆ Parkinson:能够使用的参与该项目的人力 ◆嬴利价格:嬴得合同的价格 自顶向下:首先定义整个项目的工作量,然后分 解到各个部分 ◆自下而上:各个部分的工作量先估算出来,然后 进行合成 上海交通大学计算机系 18
上海交通大学计算机系 18 软件工作量估计技术 算术模型 专家判断 对比法 Parkinson:能够使用的参与该项目的人力 赢利价格:赢得合同的价格 自顶向下:首先定义整个项目的工作量,然后分 解到各个部分 自下而上:各个部分的工作量先估算出来,然后 进行合成
自底向上方法 ◆该方法首先将项目分成部件任务,然后估算每个 任务所需的工作量。 ◆在大型的项目中,分解任务的过程是一个叠代的 过程,直到最下面的任务不可分解,产生WBS ◆该方法适合于项目规划的后期。如果应用在前期 那么必须对最终的系统作出一些假设,例如对软 件模块的数量和大小进行假设。 ◆如果项目是全新的或者没有历史数据,建议用该 方法 上海交通大学计算机系 19
上海交通大学计算机系 19 自底向上方法 该方法首先将项目分成部件任务,然后估算每个 任务所需的工作量。 在大型的项目中,分解任务的过程是一个叠代的 过程,直到最下面的任务不可分解,产生WBS。 该方法适合于项目规划的后期。如果应用在前期, 那么必须对最终的系统作出一些假设,例如对软 件模块的数量和大小进行假设。 如果项目是全新的或者没有历史数据,建议用该 方法
练习 ◆工资系统已经被安装在 Brightmouth学院,目 前有一个新的需求,需要在系统中添加一个子系 统,该系统分析每节课时老师的成本。每个老师 的工资可以从系统中获得,每个老师花在每个课 程上的时间也可以从系统中获得。为了实现该系 统,需要哪些任务,哪些任务的工作量比较难计 算 上海交通大学计算机系 20
上海交通大学计算机系 20 练习 工资系统已经被安装在Brightmouth学院,目 前有一个新的需求,需要在系统中添加一个子系 统,该系统分析每节课时老师的成本。每个老师 的工资可以从系统中获得,每个老师花在每个课 程上的时间也可以从系统中获得。为了实现该系 统,需要哪些任务,哪些任务的工作量比较难计 算