讲座6软件项月工作量估算 上海交通大学计算机系
上海交通大学计算机系 1 讲座6 软件项目工作量估算
软件工作量估算 寶些估算做得很愕细,而寶些抑只是凭直觉的 精测。大多飘项目超过佑算进度的25%到100%, 但也有少数一些组织的造度估算精确到了%以 角,能控制在5%以向的还没有听说。 Jones 1994 上海交通大学计算机系 2
上海交通大学计算机系 2 软件工作量估算 有些估算做得很仔细,而有些却只是凭直觉的 猜测。大多数项目超过估算进度的25%到100%, 但也有少数一些组织的进度估算精确到了10%以 内,能控制在5%以内的还没有听说。 ——Jones,1994
软件工作量估算 “大箩数S人士,元论是香为管理者,似来都无权 搜制他们自己的进废计剡。进废计剡通常由市场 部或高属管理部门直接下达,就像急石似天而降 (也有人称之为鸟喜) “就此间题,我曾局S领城中许多人士造行过流。 大家一致认为当前S领臧面临的最大难题,既采 是学握快速更新的故术,也不是锞求新型的管理 哲学,而是被迫接受恨本元法达到的缝凌计划。” Robert, 4. Gado) 上海交通大学计算机系 3
上海交通大学计算机系 3 软件工作量估算 “大多数IS人士,无论是否为管理者,从来都无权 控制他们自己的进度计划。进度计划通常由市场 部或高层管理部门直接下达,就像飞石从天而降 (也有人称之为鸟粪)” “就此问题,我曾与IS领域中许多人士进行过交流。 大家一致认为当前IS领域面临的最大难题,既不 是掌握快速更新的技术,也不是探求新型的管理 哲学,而是被迫接受根本无法达到的进度计划。” (Robert.L.Glass)
太好了,那我 们开工吧! 个月的时间 造这样一栋房 子?没问题 你当初计划10万元造的房屋可能最终的实际造价为 50万元。 上海交通大学计算机系 4
上海交通大学计算机系 4 一个月的时间 造这样一栋房 子?没问题 太好了,那我 们开工吧! 你当初计划10万元造的房屋可能最终的实际造价为 50万元
从造房子中学到的 ◆除非你确切知道“它”是什么?否则无法说明它 的确切花费。 盖房子时可以盖梦想中的房子(不考虑花费 也可以按估算盖,但是功能必须具有一定的灵活 性 上海交通大学计算机系 5
上海交通大学计算机系 5 从造房子中学到的 除非你确切知道“它”是什么?否则无法说明它 的确切花费。 盖房子时,可以盖梦想中的房子(不考虑花费), 也可以按估算盖,但是功能必须具有一定的灵活 性
不确定性问题 客户会要求X功能吗? 客户要的是X功能的便宜版本还是昂贵版本呢?同一功能的不同版 本的实施难度至少有10%左右的差别。 ◆如果实施了X功能的便宜版本,客户会不会以后又想要昂贵的版本。 X功能如何设计?同一功能的不同设计,在复杂度方面会有10%左 右的差别。 ◆X功能的质量级别是什么?依据实施过程的不同,首次提交的X功能 的缺陷数量会有10%的差异。 调试和纠正X功能实施过程中的错误要花多少时间?研究发现调试 和纠正同样的错误,不同程序员所徳时间会有10%左右的差异。 把X功能和其它功能结合起来要花多少时间 上海交通大学计算机系 6
上海交通大学计算机系 6 不确定性问题 客户会要求X功能吗? 客户要的是X功能的便宜版本还是昂贵版本呢?同一功能的不同版 本的实施难度至少有10%左右的差别。 如果实施了X功能的便宜版本,客户会不会以后又想要昂贵的版本。 X功能如何设计?同一功能的不同设计,在复杂度方面会有10%左 右的差别。 X功能的质量级别是什么?依据实施过程的不同,首次提交的X功能 的缺陷数量会有10%的差异。 调试和纠正X功能实施过程中的错误要花多少时间?研究发现调试 和纠正同样的错误,不同程序员所花时间会有10%左右的差异。 把X功能和其它功能结合起来要花多少时间? ……
软件工作量估算的渐进性 工作量和规模 工作量和规模 阶段 乐观 悲观 乐观 悲 初始产品定义 0.254 4.04 0.60 1.604 批准的产品定义 0.50 2.04 0804 1.25 需求说明书 0.674 0854 1.154 产品设计说明书 080 1.25 1.104 详细设计说明书 0.904 1.104 0.954 1.054 A Cost Models for Future Life Cycle Process: COCOMO 2.0, 1995- 上海交通大学计算机系 7
上海交通大学计算机系 7 软件工作量估算的渐进性
估算的准确性和精确性 ◆准确( accuracy)是结果与目标之间有多近 用3代表圆周率比用4更准确 ◆精确( precIsion)是结果有多少有意义的位数, 314比3代表圆周率更精确 个结果可以不准确而精确,不精确而准确 ◆软件估算中错误的精确是准确的敌人,40~70 个人月的工作量估算可能是最准确又最精确的估 算,而精确到55个人月看起来更精确,但不准 确。 上海交通大学计算机系
上海交通大学计算机系 8 估算的准确性和精确性 准确(accuracy)是结果与目标之间有多近, 用3代表圆周率比用4更准确 精确(precision)是结果有多少有意义的位数, 3.14比3代表圆周率更精确 一个结果可以不准确而精确,不精确而准确, 软件估算中错误的精确是准确的敌人,40~70 个人月的工作量估算可能是最准确又最精确的估 算,而精确到55个人月看起来更精确,但不准 确
软件工作量估算困难的原因 ◆估算困难是由于软件的本质带来的,特别是其复杂性和 不可见性。 ◆软件开发是人力密集型工作的,因而不能以机械的观点 来看待 ◆传统的工程项目经常会议相近的项目做参考,不同的只 是客户和地点,而绝大部分软件项目是独一无二的 新技术的不断出现和应用。 ◆缺少项目经验数据,许多组织无法提供原有项目数据, 而即使提供了这些项目数据,也未必非常有用。 上海交通大学计算机系 9
上海交通大学计算机系 9 软件工作量估算困难的原因 估算困难是由于软件的本质带来的,特别是其复杂性和 不可见性。 软件开发是人力密集型工作的,因而不能以机械的观点 来看待 传统的工程项目经常会议相近的项目做参考,不同的只 是客户和地点,而绝大部分软件项目是独一无二的。 新技术的不断出现和应用。 缺少项目经验数据,许多组织无法提供原有项目数据, 而即使提供了这些项目数据,也未必非常有用
例子 Table 5.1 effort in brackets) Table F4 Productivity rates D Project Work-months SLOC wm(%) wm (% wm SLOC (SLOC/month) 39(23)5.3(32)74(44)16760502 50 27(12)13.4(59)6.5(26)2268363 226 370 35(1126.8(83)1.9() 32213334c 13334 24(62)0.7(18 3 1524 1.8(10)7.7(44)7.8(45) 1733315e 192 190(28)297(44190(28)67.738988f 67.7 38988 2.1(21)74(74) 10.138614g 38614 7)12.7(66)5.3(27)19312762 66l 85(14)22.7(38)28.2(47)59526500 59.5 Overall 249.3 153868 67 Table F5 Estimated effort 6050617=9801676.90 ◆结论:很难用这些数据去估算项目 上海交通大学计算机系 10
上海交通大学计算机系 10 例子 结论:很难用这些数据去估算项目