道客巴巴软件度量

上传人:san****019 文档编号:22695665 上传时间:2021-05-30 格式:PPT 页数:64 大小:535KB
返回 下载 相关 举报
道客巴巴软件度量_第1页
第1页 / 共64页
道客巴巴软件度量_第2页
第2页 / 共64页
道客巴巴软件度量_第3页
第3页 / 共64页
点击查看更多>>
资源描述
毛新军http:/ 计算机科学与技术系602教研室 0731-(45)73649软件项目管理课程 之 Copyright Xinjun Mao 2005 2 1.项目案例2.什么是软件度量?3.为什么需要软件度量?4.软件度量的内容5.软件度量的方法6.在软件开发过程中进行软件度量7.小结 Copyright Xinjun Mao 2005 3 案例角色和人物小王:软件项目负责人老王:公司技术老总 Copyright Xinjun Mao 2005 4 n在项目策划阶段的碰头会上公司技术总监询问小王项目开发估计需要多少时间,需要多少成本?小王回答说“时间估计不会太长,成本也在一个可接受的范围之内”,老王显然对这种回答不满意,他希望能够得到一个较为准确定量性的描述经过一番考虑后,小王确认回答说“时间78个月,成本需4045万”,老王显然对这种回答也不满意,况且用户要求在6个月内完成项目。于是他进一步问道“你是如何得到这组数据”,小王显然没有准备,也没有充分的依据,于是他哑口无言 Copyright Xinjun Mao 2005 5 n在制定软件项目计划时小王不知如何预测项目可能所需的工作量?小王不知如何预测项目可能所需的成本?小王不知所制定的计划是否可行和科学?因此,小王尽管制定了软件开发计划,但对于该计划能否得到有效的实施、实施能否遵循计划执行没有足够的信心 Copyright Xinjun Mao 2005 6 n项目已进展了2个月,各个方面进展尚可,在某周的碰头会上,老王继续向小王发问“目前软件质量如何?”,小王回答道“不错”老王对这种回答不满意,他希望能够得到一个较为准确定量性的描述,但是小王又没有办法给他一个更加确切的答复,实际上连他自己也没有办法说清楚目前软件产品的质量情况,因为他只有直观的、定性了解。 Copyright Xinjun Mao 2005 7 n工程化的软件开发需要定量、科学的描述(实施前、实施过程中、实施完成后)n定量、科学的描述有助于获取软件项目以及所开发的软件的某种可视性,促进软件项目的管理n定量的信息描述必须在软件项目开发过程中采集 Copyright Xinjun Mao 2005 8 n在软件项目实施过程中,需要哪些方面的定量描述以促进软件项目的有效开发和管理?n如何获取这些方面的科学定量描述?n如何在软件项目开发过程中集成度量?n如何将这些定量描述用于指导软件项目的管理? Copyright Xinjun Mao 2005 9 n项目案例n什么是软件度量?n为什么需要软件度量?n软件度量的内容n软件度量的方法n在软件开发过程中进行软件度量n小结 Copyright Xinjun Mao 2005 10 n对事物属性的定性描述个子很高, 软件的成本很高n对事物属性的定量描述高个子有1.9米, 软件成本是 23.5万 Copyright Xinjun Mao 2005 11 n软件度量(Metrics)是指对软件产品、软件开发过程或者资源的简单属性的定量描述。产品:软件开发过程中所生成的各种文档和程序过程:与软件开发有关的各种活动,如软件设计等资源:软件开发过程中所需支持,如人员、费用等n注意点定量描述,而不是定性描述简单属性,无需参照其它属性便可直接获得定量描述 Copyright Xinjun Mao 2005 12 n软件测量(Measure)是对软件产品、软件开发过程和资源复杂属性的定量描述,它是简单属性度量值的函数,软件测量用于事后或实时状态, 如软件可靠性n注意点定量描述,而不是定性描述复杂属性-不可直接获得、需参照其它属性的度量值实时或者事后状态,用于对历史进行评估 Copyright Xinjun Mao 2005 13 n估算(Estimation)对软件产品、软件开发过程和资源复杂属性的定量描述,它是简单属性度量值的函数,软件估算用于事前, 如软件开发成本n注意点定量描述,而不是定性描述复杂属性-不可直接获得、需参照其它属性的度量值事前状态可采用经验公式,也可参考历史资料和数据。估算的 结果一般用于签订合同、立项、制定工作计划等 Copyright Xinjun Mao 2005 14 n项目案例n什么是软件度量?n为什么需要软件度量?n软件度量的内容n软件度量的方法n在软件开发过程中进行软件度量n小结 Copyright Xinjun Mao 2005 15 n任何工程化的工作都需要度量,软件工程也不例外准确了解工程的实施情况n项目实施之前辅助制定软件项目的计划估算成本和工作量,以便制定计划 Copyright Xinjun Mao 2005 16 n项目实施过程中提供软件开发的可视性跟踪和控制软件项目的开发评估软件开发质量,进行质量控制加强风险管理n项目实施之后对项目的实施情况进行评估为后续项目的积累经验数据 Copyright Xinjun Mao 2005 17 n项目案例n什么是软件度量?n为什么需要软件度量?n软件度量的内容n软件度量的方法n在软件开发过程中进行软件度量n小结 Copyright Xinjun Mao 2005 18 n三个方面产品:各种文档和程序过程:各种软件开发活动资源:各种资源如人员、费用等 Copyright Xinjun Mao 2005 19 n二个层次内部属性n软件产品,过程和资源本身所具有属性,如软件产品的复杂度、程序长度等n易于度量外部属性n软件产品,过程和资源与外部环境(用户、管理人员等)间的关系如成本、效益、可靠性、可维护性等n难以度量,但由内部属性所决定 Copyright Xinjun Mao 2005 20 Copyright Xinjun Mao 2005 21 n项目案例n什么是软件度量?n为什么需要软件度量?n软件度量的内容n软件度量的方法n在软件开发过程中进行软件度量n小结 Copyright Xinjun Mao 2005 22 1.面向规模的度量2.面成功能的度量3.项目成本和工作量估算4.软件质量度量 Copyright Xinjun Mao 2005 23 n 用软件代码行数目来表示软件项目规模生产率: PM = L / E, L表示代码总量(单位:KLOC),E表示软件工作量(单位:人月) 每千行代码的平均成本:CKL = S / L,S为软件项目总开销 文档与代码比: Dl = Pd / L,Pd表示文档页数代码出错率: EQRl = Ne / L,Ne表示代码出错的数目 Copyright Xinjun Mao 2005 24 项 目 (KLO C) 人 月 成 本 ($) 文 档 页 数 错 误 人 员 a 12.1 24 168000 365 134 3 b 27.2 62 440000 1224 321 5 c 20.2 43 314000 1050 256 6 Copyright Xinjun Mao 2005 25 n优点简单易行,自然直观n缺点依赖于程序设计语言的表达能力和功能软件开发初期很难估算出最终软件的代码行数对精巧的软件项目不合适只适合于过程式程序设计语言 Copyright Xinjun Mao 2005 26 n用软件的功能表示软件的规模“功能”不能直接度量,需要依靠其他度量结果导出功能点度量涉及多种因素项目开发初期就可估算出 功能点计算目前主要基于经验公式 Copyright Xinjun Mao 2005 27 n功能点计算方法 FP = (0.65 + 0.01Fi)CT CT : 5个信息量的“加权和” Fi: 14个因素的“复杂性调节值” (i =1.14) 0.65, 0.01都是经验常数 Copyright Xinjun Mao 2005 28 n CT的计算方法用户输入数加权因子(简单=3,平均=4,复杂=5)用户输出数加权因子(简单=3,平均=4,复杂=5)用户查询数加权因子(简单=3,平均=4,复杂=5)文件数加权因子(简单=3,平均=4,复杂=5)外部界面数加权因子(简单=3,平均=4,复杂=5)n CT 上述计算值的总和 Copyright Xinjun Mao 2005 29 n Fi的取值(0,1,2,3,4,5):0-没有影响,1-偶有影响,2-轻微影响,3-平均影响,4-较大影响,5-严重影响系统需要可靠的备份和复原码?系统需要数据通信吗?系统有分布处理功能吗?性能是临界状态吗?系统是否在一个实用的操作系统下运行?系统需要联机数据项吗?联机数据项是否在多屏幕或多操作之间进行切换? Copyright Xinjun Mao 2005 30 需要联机更新主文件吗?输入、输出、查询和文件很复杂吗?内部处理复杂吗?代码需要被设计成可重用吗?设计中需要包括转换和安装吗?系统的设计支持不同组织的多次安装吗?应用的设计方便用户修改和使用吗? Copyright Xinjun Mao 2005 31 n优点与程序设计语言无关, 在开发前就可以估算出软件项目的规模(事前)n不足没有直接涉及算法的复杂度,不适合算法比较复杂的软件系统;功能点计算主要靠经验公式,主观因素比较多数据不好采集 Copyright Xinjun Mao 2005 32 程 序 设 计 语 言 LOC/FP(平 均 值 )汇 编 语 言 300COBOL 100FORTRAN 100 PASCAL 90ADA 70OOPL 304GL 20 代 码 生 成 器 15 n代码行度量和功能点度量间的关系 Copyright Xinjun Mao 2005 33 n软件项目成本和工作量估算极为重要计算机系统中软件成本占总成本的比例很大用户和项目管理人员对软件成本和工作量估算都很重视n软件项目成本估算比较困难软件是逻辑产品,软件开发是一个逻辑思维的过程 涉及多方面因素 Copyright Xinjun Mao 2005 34 n软件项目成本和工作量估算常用方法参照和依据已完成项目的历史数据将大项目分解为小项目将项目按照软件生命周期分解根据经验估算公式n上述方法可以同时、单独或者组合使用 Copyright Xinjun Mao 2005 35 n软件项目规模影响软件项目成本和工作量估算出FP或者LOC期望值e = (a + 4m + b)/6依据历史数据估算出工作量和成本n根据PM = FP(LOC)/ E计算出工作量n根据C = S/FP(LOC) 计算出成本 Copyright Xinjun Mao 2005 36 n软件描述(CAD软件) CAD图形软件可接受来自用户的二维和三维几何数据,用户通过界面与CAD软件进行交互,并控制它,该软件具有良好的人机界面设计的特征。所有的几何数据及其支持信息存放在数据库中。开发设计分析模块,以产生所需的输出,这些输出将显示在各种不同的图形化设备上。软件在设计中要考虑与外设进行交互并控制它们,包括鼠标、数字化仪、打印机等等。 Copyright Xinjun Mao 2005 37 n软件子系统划分图形用户界面及其控制机制二维几何分析三维几何分析数据库管理图形显示外设控制(与打印机、数字化仪、扫描仪的接口)设计分析子系统 Copyright Xinjun Mao 2005 38 n估算出各个子系统的代码行,例如三维几何分析功能的代码行估算范围为:乐观值:4 600可能值:6 900悲观值:8 600估算值: e = (a + 4m + b)/6 = 6 800 Copyright Xinjun Mao 2005 39 子 系 统 代 码 行 图 形 用 户 界 面 及 其 控 制 机 制 2 300 二 维 几 何 分 析 5 300 三 维 几 何 分 析 6 800 数 据 库 管 理 3 350 图 形 显 示 4 950 外 设 控 制 (与 打 印 机 、 扫 描 仪 等 的 接 口 ) 2 100 设 计 分 析 子 系 统 8 400 总 代 码 行 估 算 值 33 200 Copyright Xinjun Mao 2005 40 n历史数据平均生产率PM: 620 LOC/PM(620行代码/人月)每个人月的成本 C = 8000¥n估算项目成本和工作量估算工作量 = 总代码行/PM= 33200/620=54人月估算成本 = 估算工作量 每个人月的成本 = 54人月 8000 = 43 2000¥ Copyright Xinjun Mao 2005 41 n基于功能点估算:信 息 域 乐观 值 可能值 悲观值 估 算计 数 加 权因 子 FP计数 输 入 数 20 24 30 24 4 96 输 出 数 12 15 22 16 5 80 查 询 数 16 22 28 22 4 88 文 件 数 4 4 5 4 10 40 接 口 数 2 2 3 2 7 14 总 计 318 Copyright Xinjun Mao 2005 42 n Step2: 计算复杂度调整因子因 子 值 备 份 和 复 原 4 数 据 通 信 2 分 布 式 处 理 0 关 键 性 能 4 操 作 环 境 3 联 机 数 据 登 陆 4 多 屏 幕 输 入 切 换 5 主 文 件 联 机 更 新 3 因 子 值 信 息 域 值 复 杂 性 5 内 部 处 理 复 杂 性 5 软 件 重 用 4 转 换 和 安 装 3 多 次 安 装 5 方 便 修 改 5 复 杂 度 调 节 因 子 1.17 Copyright Xinjun Mao 2005 43 n计算出FP的估算值 FP = (0.65 + 0.01Fi)CT = 372n历史数据平均生产率 6.5 FP/PM每个人月的成本 C = 8000¥(平均月薪)n估算成本和工作量工作量 58人月成本 457000¥ Copyright Xinjun Mao 2005 44 n什么是CoCoMo模型? COCoMo是指Constructive Cost Model,构造性成本模型,Boehm于1981年提出,用于对软件开发项目的规模、成本、进度等方面进行估算 CoCoMo模型是一个综合经验模型,模型中的参数取值来至于经验值,并且综合了诸多的因素、比较全面的估算模型比较实用、可操作,在欧盟国家应用较为广泛 Copyright Xinjun Mao 2005 45 n CoCoMo模型的层次 支持不同的阶段基本COCoMo模型n系统开发的初期,估算整个系统的工作量(包括维护)和软件开发和维护所需的时间中间COCoMo模型n估算各个子系统的工作量和开发时间详细COCoMo模型n估算独立的软构件,如各个子系统的各个模块的工作量和开发时间 Copyright Xinjun Mao 2005 46 n基本CoCoMo模型 E = a (kLOC)b ;E是工作量(人月) ,a和b是经验常数 D = c Ed ;D是开发时间(月) ,c和d是经验常数其中,a,b,c,d为经验常数,其取值见下表 软 件 类 型 a b c d 适 用 范 围 组 织 型 2.4 1.05 2.5 0.38 各 类 应 用 程 序 半 独 立 型 3.0 1.12 2.5 0.35 各 类 编 译 程 序 等 嵌 入 型 3.6 1.20 2.5 0.32 实 时 软 件 、 O S 等 Copyright Xinjun Mao 2005 47 n中间CoCoMo模型 E = a (kLOC)b EAF 其中,E表示工作量(人月),EAF表示工作量调节因子,a,b为经验常数,其取值见下表 软 件 类 型 a b 组 织 型 3.2 1.05 半 独 立 型 3.0 1.12 嵌 入 型 2.8 1.20 Copyright Xinjun Mao 2005 48 n EAF的取值(考虑15个因素)软件产品属性(3):软件可靠性,软件复杂性,数据库的规模计算机属性(4):程序执行时间,程序占用内存大小,软件开发环境的变化,软件开发环境的响应速度人员属性(5):分析员能力,程序员能力,领域经验,开发环境的经验,程序设计语言的经验项目属性(3):软件开发方法的能力,软件工具的数量和质量,软件开发的进度要求 Copyright Xinjun Mao 2005 49 n EAF的取值(范围)很低、低、正常、高、很高、极高 Boehm建议取值范围0.70-1.66 EAF的计算Fi ( i=1.15)n调节因子及其取值由统计结果和经验决定,不同的软件开发组织在不同的时期可能会有不同的取值 Copyright Xinjun Mao 2005 50 n案例分析:用基本CoCoMo模型估算项目的工作量、开发时间和参加项目开发的人数 CAD软件:目标代码行33.2kLOC,属于中等规模,半独立型,因而a = 3.0, b = 1.12, c = 2.5, d = 0.35 E = 3.0*(33.2)1.12 =152 PM D = 2.5*(152)0.35 = 14.5 (月)参加项目人数N = E/D = 152/14.5 = 11(人) Copyright Xinjun Mao 2005 51 n软件质量度量的重要性质量是软件的生命,质量不高的软件会带来严重、甚至灾难性的后果必须加强对软件质量的管理和监控,如ISO9001和CMM必须在软件开发过程中能够可视所开发软件的质量n软件质量度量存在的困难软件质量依赖于软件的内部特性及其组合这些特性难以度量 Copyright Xinjun Mao 2005 52 n McCall的软件质量度量模型质量要素n定义了与软件质量相关联的一些要素质量要素的评价准则n定义了能够对质量要素进行度量的一些准则软件质量的度量n定义了如何基于对质量要素的定量描述对软件质量进行度量的方法 Copyright Xinjun Mao 2005 53 产 品修正 性 产品转 移性 产 品 运 行 性 可 维 护 性 灵 活 性 可 测 试 性 可 移 植 性 可 重 用 性 可 互 操 作 性 正 确 性 可 靠 性 有 效 性 完 整 性 有 用 性 Copyright Xinjun Mao 2005 54 n质量要素之间的相互关联性(正相关、负相关),因此在设计时要根据项目的具体情况进行权衡例如,软件的可移植性会降低软件的有效性例如,对于实时系统,必须保证可靠性和有效性,而将可移植性、可重用性放在次要地位 Copyright Xinjun Mao 2005 55 n给出一组比较容易度量的软件质量要素评价准则来间接对软件质量要素进行定量描述定义准则基础是确定影响软件质量要素的属性这些属性比较完整、准确地描述软件质量要素这些属性比较容易量化 Copyright Xinjun Mao 2005 56 n McCall质量模型共给出21个评价准则,例如简单性:理解程序的难易程度准确性:计算和控制的精度通信通用性:使用标准接口、协议和频带的程度完全性:是否全面执行效率:程序的运行效率可扩充性:对软件结构、数据设计和过程设计进行扩充的程度 Copyright Xinjun Mao 2005 57 n对于每个质量要素的计算 Fi = (Cik Mik)其中, Fi 表示第i个质量因素的度量值(i = 1,.11), Mik 表示第i个质量因素对于第k种评价准则的测量值, Mik的取值共分10级,分别为0.1, ,1.0 Cik 表示第k种评价准则对第i个质量因素影响程度的加权系数,且满足Cik 1.0 (k = 1,.21) Copyright Xinjun Mao 2005 58 n项目案例n什么是软件度量?n为什么需要软件度量?n软件度量的内容n软件度量的方法n在软件开发过程中进行软件度量n小结 Copyright Xinjun Mao 2005 59 n度量是重要的提高组织软件开发能力成熟度的一种重要措施和有效手段 CMM强调软件度量,尤其在4级可管理级n度量会遇到阻力度量会耗费大量的精力和时间度量的作用和效果可能是隐性和长期的,不能为开发人员所接受项目的压力经常会迫使管理者和开发人员放弃度量 Copyright Xinjun Mao 2005 60 n在软件项目实施过程中坚持度量,收集数据n实施前记录估算数据n实施中对过程、产品和资源进行度量记录并保存其结果n实施完成后对项目进行总结,记录和保存项目实际运作的信息,如成本,工作量,人员等等 Copyright Xinjun Mao 2005 61 n项目案例n什么是软件度量?n为什么需要软件度量?n软件度量的内容n软件度量的方法n在软件开发过程中进行软件度量n小结 Copyright Xinjun Mao 2005 62 n软件项目的实施需要定量描述(前、中、后)n软件度量:定量描述针对软件产品、过程和资源内部属性和外部属性测量和估算n工作量和成本度量:规模和功能n质量度量n在软件项目实施过程中实施度量 Copyright Xinjun Mao 2005 63 n理解什么是软件度量?为什么需要软件度量?软件度量的方式和对象n掌握软件度量的方法n运用运用软件度量支持和促进软件开发 Copyright Xinjun Mao 2005 64Practice, Practice, and Practice
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!