教学题目:21软件度量22软件项目的估算教学目的:了解内容摘要:

0 4900 6400 5000 22 200 110000 外设控制 2020 2100 2500 2150 28 140 60200 设计分析 6600 8500 9800 8400 18 300 151200 总计 33500 659600 软 件 工 程 估算的组织实施 为了使估算更准确,可以组织几个专家采用无记名的方式分别填写表 27,然后组织者计算出这几个表格的平均值;这一过程可反复几次,直到获得一个得到多数专家共识的软件规模。 另外,还可以将每个子项目再按生存周期划分,估算其各阶段的工作量,再累加求出每个子项目的工作量和整个项目的工作量。 可将用几种方法估算的结果进行比较来验证估算的准确性。 软 件 工 程 软件项目的经验估算模型 1. IBM模型 ——1977年 , IBM公司对 60个软件项目的 数据利用最小二乘法拟合 , 得到的经验估算公式: E = ( 211) D= = E0. 3956 ( 212) S = ( 213) DOC = 49 ( 214) 其中: E为工作量 ( PM) ; L为源代码行数 ( KLOC ) ; D为项目持续的时间 , 以月为单位; S为人员需要量 ( 人 ) ; DOC为文档数量 ( 页 )。 软 件 工 程 1. IBM模型 IBM模型是根据已估算出的源代码行数来估算其他资源的需要量的,因此该模型是面向 LOC的静态单变量估算模型。 还有一些面向 FP的静态单变量估算模型。 由于这些模型的准确度不高,在实际应用中必须对公式中的参数进行调整,以适应目前情况。 软 件 工 程 2. Putnam模型 1978年, Putnam提出了大型软件项目的动态多变量估算模型。 该模型以工作量在 30人年以上的大型软件项目的实测数据为依据,推导出了工作量分布曲线,如图 221所示。 图中的工作量分布曲线的形状与著名的 RayleighNorden曲线相似。 图 221 软件项目的工作量分布曲线 系统定义 功能设计 规格说明 设计编码 测试和确认 维护 管理 系统定义 、 需求分析 开 发 运行维护 0 开发占总工作量的 40% 维护占总工作量的 60% 总工作量 td 时间 t(年) 工作量 ( 人年 ) 软 件 工 程 2. Putnam模型 由上图可得出 Putnam估算模型如下: L = Ck E1/3 td 4/3 ( 215) 其中: L为源代码行数 ( 以 LOC计 ) ; E为开发与维护的工作量 ( 以人年计 ) ; td为开发时间 ( 以年计 ) ; C k为技术状态常数 , 与开发环境有关 , 如下: 2020 较差 , 没有方法学的支持 , 缺乏文档 和评审 , 采用批处理方式; C k = 8000 一般 , 有方法学的支持 , 有适当的文档 和评审 , 采用交互处理方式; 11000 较好 , 有集成化的 CASE工具和环境。 软 件 工 程 2. Putnam模型 由式 ( 215) 可以得出估算工作量的式子: E = L3 / (Ck3 td4) (216) 工作量 估算出来之后 , 就可以估算软件项目的 成本。 式中的 td是对应于软件交付时的时间,它正好是工作量曲线的峰值,说明此时的工作量最大、参加项目的人最多。 图 222给出了软件开发项目每年所需的人年数与开发时间的关系。 软 件 工 程 RN分布 线性分布 0 1 2 3 4 t( 年 ) td 人年数\年 图 222 概率密度 软 件 工 程 2. Putnam模型 如图 222所示,软件开发项目每年所需的人年数与开发时间的关系满足 RayleighNorden分布,即软件项目的工作量分布曲线 不是线性的 ,因此,参加软件项目的人员就不能一成不变。 如果按线性方案平均分配人员,则开发的初期一部分人力是多余的,而到了峰值段人力明显不足,到了开发的后期再临时增加人力已为时过晚,即造成了浪费,又拖延了进度。 软 件 工 程 2. Putnam模型 从公式( 216)即 E = L3 / (Ck3 td4)还可以看出,开发软件项目的工作量和交货时间 td的 4次方成反比,如果条件允许,适当地推迟交货时间(即使 td增大),可大幅度降低开发工作量。 例如:如果以 ( 216)中的 td,即推迟 10%的时间交货,可使开发工作量 E减少到原来的 68%。 反之,如果以 td,即提前 10%的时间交货,会使 E比原来增加 52%。 因此, 工作量与时间的折衷 就显得十分重要。 图 223给出了各类人员随开发工作的进展在软件工程各阶段参与情况的典型曲线。 软 件 工 程 图 223 人力资源的分配 初级技术人员 高级技术人员 管理人员 验收测试 组装测试 单元测试 编码 详细设计 概要设计 需求分析 系统定义 人数 软 件 工 程 Putnam模型的优缺点 优点:揭示了软件项目的源程序代码长度、 软件开发时间和工作量三者之间的关 系,在理论上有重要意义。 缺点:准确程度不高。 没有反映软件产品、项目、参加人员、 软硬件资源等属性。 软 件 工 程 3. CoCoMo模型 1981年, Boehm提出了 CoCoMo模型( Constructive Cost Model,即构造性成本模型)。 该模型是以静态单变量模型为基础构造出来的。 CoCoMo模型按其详细程度分三个层次: 基本 CoCoMo模型; 中间 CoCoMo模型; 详细 CoCoMo模型。 软 件 工 程 1)基本 CoCoMo模型 其工作量和开发时间的估算公式如下: E = a Lb ( 217) D = c Ed ( 218) 其中: L —— 软件代码行的估算值 ( 以 KLOC计 ) ; E —— 工作量 ( 以 PM计 ) ; D——开发时间 ( 以月计 ) ; a、 b、 c、 d——经验常数。 应根据待开发软件所属的 类型按照表 28来选取。 软 件 工 程 表 28 a、 b、 c、 d参数值的选取 基本 CoComo模型主要用于系统开发的初期估算整 个系统开发和维护的工作量及软件开发所需时间。 软件类型 a b c d 适应领域 组织型 一般应用程序 半独立型 实用程序、 编译程序等 嵌入型 实时控制程序、 操作系统 软 件 工 程 【 例 】 用基本 CoCoMo模型计算开发 CAD软件所需的工作量、开发时间以及需要参加项目的平均人数。 解:在 【 例 】 中已估算出 CAD软件的代码行数为 , CAD软件为半独立型 、 中等规模的软件 , 由表 28可查出 a = , b = , c = , d =。 CAD项目的开发工作量为 : E = a Lb = = 153 PM 开发时间为: D = c Ed = = ( 月 ) CAD项目平均需要的人力为: N = E / D = 153 / ≈ 11人 软 件 工 程 2)中间 CoCoMo模型 中间 CoCoMo模型在估算工作量时 , 在基本 CoCoMo模型的基础上再乘以由 15个因素组成的工作量调节因子EAF, 于是有: E = a Lb EAF = a Lb ∏ F i ( 219) 其中: L —— 软件的代码行数 ( 以 KLOC计 ) ; E —— 工作量 ( 以 PM计 ) ; a、 b —— 经验常数 , 其取值如表 29所示; i=1 15 软 件 工 程 表 29 a、 b参数的取值 软件类型 a b 组织型 半独立型 嵌入型 2)中间 CoCoMo模型 软 件 工 程 2)中间 CoCoMo模型 工作量调节因子 EAF与软件的产品的取值属性、计算机属性、人员属性、项目属性等因素有关。 这 15个因素 Fi( i=1~15)的值可按等级取值,即可分为很低、低、正常、高、很高、极高,共 6级。 正常情况下 Fi=1。 Boehm推荐的 Fi值的范围是 ~, F i的值可根据实际情况按表 210来选取。 工作量 E求出之后,就可以用公式( 218)即 D = c Ed计算出开发时间 D。 表 210 工作量调节因子 F i的取值 Fi 属性含义 很低 低 正常 高 很高 极高 产品 属性 F1 软件可靠性( RELY) F2 数据库规模( DATA) F3 软件复杂性( CPLX) 计算机 属性 F4 执行时间约束 ( TIME) F5 内存约束( STOR) F6 开发环境变更率( VIRT) F7 开发环境响应速度( TURN) 人员 属性 F8 分析员的能力 ( ACAP) F9 程序员的能力( PCAP) F10 应用领域经验( AEXP) F11 开发环境使用经验( VEXP) F12 程序设计语言经验( LEXP) 项目 属性 F13 开发方法的能力 ( MODP) F14 软件工具的使用( TOOL) F15 开发进度约束( SCED) 软 件 工 程 3)详细 CoCoMo模型简介 详细 CoCoMo模型的基本工作量 ( 指 EAF=1时的工作量 ) 公式 、 开发时间公式与中间 CoCoMo模型相同。 所不同的是详细 CoCoMo模型在计算 EAF时针对每个影响因素 , 分层次 ( 系统层 、 子系统层 、 模块层 ) 并按软件生存周期分阶段给出工作量因素的分级表。 详细 CoCoMo模型可以更准确地估算软件项目的工作量。 软 件 工 程 表 211 子系统层软件可靠性工作量因素分级表。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。