讲座软件项目工作量估算ppt课件.ppt

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

过低估计的问题

上海交通大学计算机系
13
工作量估算对职员的影响
如果职员能够完成目标,那么他们将受到鼓舞 如果他们发现目标根本不能完成,那么他们的激
情将受到极大损害 因而,估计不是一种简单的预测行为,而是一种 管理目标
上海交通大学计算机系
14
软件估算的基础(1)
历史数据的需要
上海交通大学计算机系
3
太好了,那我 们开工吧!
一个月的时间 造这样一栋房 子?没问题
你当初计划10万元造的房屋可能最终的实际造价为 50万元。
上海交通大学计算机系
4
从造房子中学到的
除非你确切知道“它”是什么?否则无法说明它
的确切花费。 盖房子时,可以盖梦想中的房子(不考虑花费), 也可以源自估算盖,但是功能必须具有一定的灵活 性
参数可以计算出新系统的工作量 形式: effort=(系统规模)*(生产率)

例如系统规模可以用KLOC来计算,生产率以40天/KLOC 预测软件开发工作量的模型有两个部分,第一部分为估算软件 大小,第二部分为估算工作效率
上海交通大学计算机系
22
练习
学生要求每学期写一篇有关IT的报告,如果你想
上海交通大学计算机系
11
何时需要度量//
策略计划:选择合适的项目 可行性分析 系统描述:实现各个需求的工作量需要被衡量 评估供应商的建议 项目计划:

项目进行过程中,估算越来越准确 在项目开始阶段考虑的是用户需求,不考虑实现,但 是为了估算,有时需要考虑一些实现方法
上海交通大学计算机系
上海交通大学计算机系


6
软件工作量估算的渐进性
上海交通大学计算机系
7
估算的准确性和精确性
准确(accuracy)是结果与目标之间有多近,用
3代表圆周率比用4更准确 精确(precision)是结果有多少有意义的位数, 3.14比3代表圆周率更精确 一个结果可以不准确而精确,不精确而准确, 软件估算中错误的精确是准确的敌人,40~70个 人月的工作量估算可能是最准确又最精确的估算, 而精确到55个人月看起来更精确,但不准确。
该方法被作为英国政府项目实施中采用的标准 基本原理:对于一个处理事务
计算方法:wi×输入数据元素+we×实体+wo×
输出数据元素 系数总和为2.5,标准设置为0.58, 1.66,0.26
上海交通大学计算机系
34
MarkII功能点
系数调整,考虑因素:



与其它应用的接口 特殊的安全特征 与第三方的直接交互 用户训练特征 文档需求
上海交通大学计算机系
29
练习


外部输入:无 外部输出:报告,1 内部逻辑文件:财务输入文件,1 外部接口文件:工资文件,人员文件,课程文件,财 务输入文件,4 外部查询:无 外部输入:无;外部输出:1×7=7;内部逻辑文件: 1×10=10;外部接口文件:4×7=28;外部查询: 无;共:45
建立一个估算学生完成这样一份报告的模型,你 用什么来衡量报告的大小,什么因素会影响学生 完成报告的难度?

字数 材料能否获取 对主题的熟悉程度 宽度/深度 技术难度 23
上海交通大学计算机系
专家判断
具有应用领域或者开发环境知识的人员对任务的
评估 该方法特别是在对原由系统进行替换时有用,评 估者对影响的代码的比例进行分析,从而得到工 作量评估。
上海交通大学计算机系
20
练习

答案

获取用户需求 分析系统中已有数据 设计报表和编写用户建议 编写测试计划 编写技术描述 设计软件 写软件 测试软件 写说明书 执行接受测试

设计,写,测试软件将最难估算工作量
上海交通大学计算机系
21
自顶向下方法
自顶向下的方法和参数化模型 一般采用对比方法确定总的工作量 对比是建立在一系列参数的基础上的,通过这些
上海交通大学计算机系
32
功能点方法:转换为代码行
通过定义各个功能点对应各种语言的代码行数,
则功能点可以转化为代码行 一些数据:



Cobol: 91 C: 128 Quick Basic: 64 Object Oriented Languages: 30
上海交通大学计算机系
33
MarkII功能点
上海交通大学计算机系
考虑加权:

30
功能点方法:复杂性判定
如何判定功能的复杂性? 国际功能点用户小组(IFPUG)

内部逻辑文件、外部接口文件

外部输入文件
上海交通大学计算机系
31
功能点方法:复杂性判定

外部输出文件
如何确定记录个数和数据个数

如某系统内部逻辑文件:订单文件,包含订单信息 (包括订单号,供应商名称,订单日期)和订单项 (包括商品号,价格和数目),则记录个数为2,数 据个数为6,在表中可以确定该功能点复杂性为低。


外部输入:应用数据 外部输出:提供给用户的面向应用的信息 内部逻辑文件:逻辑主文件 外部接口文件:与其它系统交换信息 外部查询:在线的输入以获得立即的结果
上海交通大学计算机系
27
功能点方法
加权因子的确定
上海交通大学计算机系
28
练习
在学院工资系统项目中需要开发一个程序,该程
而即使提供了这些项目数据,也未必非常有用。
上海交通大学计算机系
9
例子
结论:很难用这些数据去估算项目
上海交通大学计算机系
10
工作量估算的其它困难
某些人试图建立一个过去项目的全软件业的数据
库,但是许多词汇意义的不明确使得这种努力没 有效果,例如“测试”阶段究竟包括哪些活动就 不明确。 估计的主观性:人们容易低估小项目的工作量, 而过分夸大大项目的工作量 估计的政治因素:不同的人有不同的目标,如项 目经理会高估项目工作量,许多机构采用独立的 估算小组,但是将项目经理和项目成员吸收进估 算小组,能够增强他们的责任感。
上海交通大学计算机系
25
练习
假定将要构造的系统有7个输入,15个输出,过
去有一个项目有8个输入,17个输出,这两个项 目的欧几里的距离是多少? 答案:2.24
上海交通大学计算机系
26
Albrecht功能点分析
该方法是由Allan Albrecht在IBM工作时发明的
自顶向下方法。 功能点法(Function Points)的基本点是计算 机信息系统包括五个主要部件或者外部用户类型, 它们是:
上海交通大学计算机系
19
练习
工资系统已经被安装在Brightmouth学院,目
前有一个新的需求,需要在系统中添加一个子系 统,该系统分析每节课时老师的成本。每个老师 的工资可以从系统中获得,每个老师花在每个课 程上的时间也可以从系统中获得。为了实现该系 统,需要哪些任务,哪些任务的工作量比较难计 算。
上海交通大学计算机系
17
软件工作量估计技术
算术模型 专家判断 对比法 Parkinson:能够使用的参与该项目的人力 赢利价格:赢得合同的价格 自顶向下:首先定义整个项目的工作量,然后分
解到各个部分 自下而上:各个部分的工作量先估算出来,然后 进行合成
上海交通大学计算机系
序将从会计系统中提取每年的工资额,并从两个 文件中分别提取课程情况和每个老师教的每一门 课的时间,该程序将计算每一门课的老师的成本 并将结果存成一个文件,该文件可以输出给会计 系统,同时该程序也将产生一个报表,以显示对 于每一门课,每个老师教学的时间和这些工时的 成本。 假定报表是具有高度复杂性的,其它具有一般复 杂性
18
自底向上方法
该方法首先将项目分成部件任务,然后估算每个
任务所需的工作量。 在大型的项目中,分解任务的过程是一个叠代的 过程,直到最下面的任务不可分解,产生WBS。 该方法适合于项目规划的后期。如果应用在前期, 那么必须对最终的系统作出一些假设,例如对软 件模块的数量和大小进行假设。 如果项目是全新的或者没有历史数据,建议用该 方法
讲座6 软件项目工作量估算
上海交通大学计算机系
1
软件工作量估算
有些估算做得很仔细,而有些却只是凭直觉的 猜测。大多数项目超过估算进度的25%到100%, 但也有少数一些组织的进度估算精确到了10%以 内,能控制在5%以内的还没有听说。 ——Jones,1994
上海交通大学计算机系
2
软件工作量估算
上海交通大学计算机系
35
功能点的其它扩展
功能点方法起源于业务信息系统应用,因而强调
了数据方面的因素而没有考虑功能和行为(控制) 方面的因素。 特征点(Feature Points):除了考虑普通功能点 的内容外,还考虑了算法的特征(矩阵转换,字 符串解析,处理中断等都是算法的例子) Boeing提出了一个三维功能点方法(3D)其中三 维为数据维,功能维(输入转化为输出的步骤) 和控制维(状态之间的转换数)。
上海交通大学计算机系
5
不确定性问题
客户会要求X功能吗? 客户要的是X功能的便宜版本还是昂贵版本呢?同一功能的不同版
本的实施难度至少有10%左右的差别。 如果实施了X功能的便宜版本,客户会不会以后又想要昂贵的版本。 X功能如何设计?同一功能的不同设计,在复杂度方面会有10%左 右的差别。 X功能的质量级别是什么?依据实施过程的不同,首次提交的X功能 的缺陷数量会有10%的差异。 调试和纠正X功能实施过程中的错误要花多少时间?研究发现调试 和纠正同样的错误,不同程序员所花时间会有10%左右的差异。 把X功能和其它功能结合起来要花多少时间? ……
上海交通大学计算机系
8
软件工作量估算困难的原因
估算困难是由于软件的本质带来的,特别是其复杂性和
不可见性。
软件开发是人力密集型工作的,因而不能以机械的观点
来看待
传统的工程项目经常会议相近的项目做参考,不同的只
是客户和地点,而绝大部分软件项目是独一无二的。
新技术的不断出现和应用。 缺少项目经验数据,许多组织无法提供原有项目数据,
上海交通大学计算机系
24
类比估计
类比方法又被称为基于案例的推理(Case-based
reasoning) 评估者寻找已经完成的项目,这些项目与需要开 发的新项目在许多特征上必须是类似的。 如何选择与待预测的项目相近的项目?


欧几里的距离(Euclidean Distance)公式 distance=((目标系统参数1-原系统参数1)2+(目 标系统参数2-原系统参数2)2+……)的平方根
“大多数IS人士,无论是否为管理者,从来都无权 控制他们自己的进度计划。进度计划通常由市场 部或高层管理部门直接下达,就像飞石从天而降 (也有人称之为鸟粪)” “就此问题,我曾与IS领域中许多人士进行过交流。 大家一致认为当前IS领域面临的最大难题,既不 是掌握快速更新的技术,也不是探求新型的管理 哲学,而是被迫接受根本无法达到的进度计划。” (Robert.L.Glass)
上海交通大学计算机系
15
软件估算的基础(2)
复杂性

相同KLOC的两个程序花费的时间将会不同。因而不能 简单地应用KLOC或SLOC,而要根据复杂性进行修正, 但是复杂性的度量通常是主观而定的。
上海交通大学计算机系
16
基于承诺的估计
一些组织直接从需求出发安排进度而不进行中间
的工作量估算。他们要求每个开发者作出进度承 诺而非进度估算。 有利于开发者对进度的关注,开发者在接受承诺 后士气高昂,自愿加班加点 问题在于开发者的估算比现实要乐观,大约低20 至30个百分点(Van Genuchten, 1991) 承诺应该现实可行,以使你的团队会不断成功而 不是不断失败。
12
过高估计和过低估计的问题
过高估计的问题

Parkinson法则:给的时间越多,工作花费的时间也越多 Brook法则:当人数增加后,项目所需的工作量 将不成比例的 增加。当团队规模变大后,由于管理,协调和通信的增加,将 造成工作量的增加。因而“投入更多的人将使延期的工作更加 延期” 质量降低 Weinberg的可靠性零法则“如果系统不必可靠,那么它可以满 足任何目标”。

在参考历史数据时需要考虑不同的环境,如编程语言, 软件工具,标准和人员的经验。 直接计算真正的成本或时间是不可能的。编写程序的 时间不同的人将有显著的区别。 通常将工作量表达为工作量,如源代码的数量 (source line of code,SLOC),或者千行代码量 (KLOC)
工作度量


相关文档
最新文档