




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1,第23章 产品度量,2,McCall的质量三角形,可维护性,复杂性,可测试性,可移植性,可重用性,可交互性,产品变更,产品操作,产品转变,正确性,可靠性,可用性,效率,完整性,3,述评,McCall的质量因素提出于1970年代早期。他们自1970年代早期起生效至今。很有可能的是,进入21世纪的符合这些因素的软件建立将表现出高质量,即使技术方面会有很大的改变。,4,测度、度量和指标,测度为产品或过程的某些属性的范围、数量、维度、容量或大小提供量化的指标。 度量在软件工程术语的IEEE标准词汇表中的定义为:度量是一个系统、构件或过程具有给定属性的量化测量程度。 一个指标是一个度量或多个度量的组
2、合,它提供了对软件工程、软件项目或产品本身的深入理解。,5,测量原则,测量的目标应该在数据收集开始前确定; 每一个技术度量都应该有一个清晰的定义; 度量应该来自于有效应用领域的理论 (例如,设计度量应该利用基本的设计概念和原则, 尝试提供一个迹象存在的属性,并且该属性是可取的); 度量应根据特定的产品和过程来调整,使其能够最佳适应 Bas84。,6,测量过程,公式化。导出适合于所考虑软件表示的测量和度量。 收集。用于导出公式化度量所需数据的积累机制。 分析。度量的计算和数学工具的使用。 解释。为获得对所表示质量的理解而评价度量。 反馈。从对递交给软件团队的产品度量的解释中获得建议。,7,面向目
3、标的软件测量,目标/问题/度量的要求 (1) 确定特定过程活动的明确测量目标或将要评估的产品特性; (2) 定义一组必须回答的问题以达到目标; (3) 确定一些良好定义的度量以帮助回答这些问题。 目标定义模板 分析 将要测量的属性和活动名 为目的 分析的总体目标 关于方面 所考虑的活动或属性 从的角度 对测量感兴趣的人 在环境中 进行测量的环境。,8,度量的属性,简单的和可计算的。学习如何导出度量应该是相对容易的,且其计算不应该需要过多的工作量或时间。 在经验上和直观上有说服力。度量应该满足工程师直觉上对所考虑的产品属性的概念。 一致的和客观的。度量产生的结果应该总是无歧义的。 单位和量纲的使
4、用是一致的。 度量的数学计算应该使用不会导致奇异单位组合的测度。 编程语言的独立性。 度量应该基于需求模型、设计模型或程序结构本身。 有效的、高质量反馈机制。 也就是,度量应该提供信息以产生高质量的最终产品。,9,收集和分析原则,只要有可能,数据的收集与分析应能自动化地进行; 应该使用有效的统计技术以建立内部产品属性与外部质量特性之间的关系; 应该为每个度量建立解释性指导原则和建议。,10,需求模型的度量,基于功能的度量:使用功能点作为归一化因子或规格说明“规模”的手段。 规格说明度量:通过按类划分测量需求数量用于质量的指标,11,基于功能的度量,功能点 (FP)度量 由Albrecht AL
5、B79首次提出, 可用做测量系统交付功能的有效手段。 利用基于软件信息域可数的(直接)测度和软件复杂性评估的经验关系计算功能点。 信息域的值用下列方式定义: 外部输入数 (EIs) 外部输出数 (EOs) 外部查询数 (EQs) 内部逻辑文件数 (ILFs) 外部接口文件数 (EIFs),FP,估算设计、编码和测试软件所需开销或工作量; 预告测试期间将遇到的错误数; 预测实现系统中的构件数和(或)预计的源代码行数。 FP=总计0.65+0.01(Fi),12,13,功能点,信息域值,计数,外部输入,外部输出,外部查询,内部逻辑文件,外部接口文件,加权因子,总计,简单,中等,复杂,Fi,i=1-
6、14是值调整因子 系统需要可靠的备份和恢复吗? 需要专门的数据通信从应用系统中传输信息或将信息传输到应用系统吗? 存在分布处理功能吗? 性能是关键的吗? 系统将运行在一个现有的,紧张使用的操作环境吗? 系统需要在线数据项吗?,14,Fi,在线数据项需要对多个屏幕或操作建立输入事务吗? ILF在线更新吗? 输入、输出、文件或查询复杂吗? 内部处理复杂吗? 所设计的代码是可复用的吗? 转换与安装包括在设计中吗? 系统是为不同组织中的多个安装而设计的吗? 应用系统是为不同组织中的多安装而设计的吗?,15,简单分析模型,16,简单分析模型,3个外部输入密码、紧急按钮和启动/关闭 2个外部查询区域与传感
7、器查询 1个内部逻辑文件系统配置文件 2个外部输出消息与传感器状态 4个外部接口文件测试传感器、区域设置、启动/关闭和报警。,17,例,18,例,总计必须用公式调整,对于这个例子,假设(Fi)为46(一个中等复杂的产品)。因此 FP=500.65+(0.0146)=56,19,例,假设过去的数据表明一个FP转换为60行代码和每人月生产12个功能点。这些历史数据为项目经理提供重要的计划信息。 假设过去的项目中需求和设计评审期间平均每个功能点有3个错误,单元测试和集成测试期间平均每个功能点有4个错误。这些数据最终将有助于软件工程师评估他们的测试活动。,20,规格说明质量度量,确定性(无歧义性)、完
8、整性、正确性、可理解性、可验证性、内部与外部一致性、简洁性、可跟踪性、可修改性、精确性和可复用性。 每个特征可以用一个或多个度量来表示。例如,假设在一个规格说明中有 nr个需求,便有: nr=nf+nnf 其中,nf为功能需求的数量,nnf为非功能(如性能)需求的数量。,21,规格说明质量度量,为确定需求的确定性(无歧义)。 Q1=nui/nr 其中,nui是所有评审者都有相同解释的需求数目。Q1的值越接近1,规格说明的歧义性越低,22,规格说明质量度量,功能需求的完整性可以通过计算下面的比率来确定: Q2=nu/(nins) 其中,nu为独特功能需求的数目,ni是由规格说明明确定义或隐含的输
9、入(激活)的个数,ns是所指定状态的个数。Q2测量了已为系统指定的必要功能的百分比。,23,规格说明质量度量,为了把这些非功能性需求结合到整体度量中以求完整性,我们必须考虑需求已经被确认的程度: Q3=nc/(nc+nnv) 其中,nc是已经确认为正确的需求个数,nnv是尚未确认的需求个数。,24,25,体系结构设计度量,体系结构设计度量 结构复杂度 = g(模块扇出数) 数据复杂度 = f( 输入和输出变量, 模块扇出数) 系统复杂度 = h(结构和数据复杂度) HK度量:体系结构复杂度作为函数的扇入和扇出 形态度量:模块与模块之间的接口和数量的函数,体系结构设计度量,26,体系结构设计度量
10、,数据复杂度D(i)提供了模块i的内部接口复杂度的指示,定义如下: D(i)=v(i)/(fout(i)+1) 其中,v(i)是传入传出模块i的输入和输出变量的个数,27,体系结构设计度量,系统复杂度C(i)定义为结构复杂度和数据复杂度的总和: C(i)=s(i)+D(i),28,体系结构设计度量,简单的形态(即,外形)度量,使不同的程序体系结构能够用一组简单的尺度进行比较。,29,体系结构设计度量,规模=n+a 其中,n为结点数,a为弧度。 规模=17+18=35 深度=4 宽度=6 弧与结点的比例定义为r=a/n,它给出了体系结构的连接密度,且对体系结构的耦合性提供了一个简单的指示。 r=
11、18/17=1.06,30,31,面向对象设计度量-1,Whitmire Whi97 描述了面向对象设计的9个独特的、可测量的特性: 规模 规模可以从4个方面来定义:总数量、容量、长度和功能。 复杂性 面向对象设计的类如何互相关联 耦合性 面向对象设计成分间的物理连接 充分性 “从当前应用的角度看,一个抽象拥有其所需特征的程度,或一个设计构件拥有其抽象特征的程度。 ” 完备性 间接隐含了抽象或设计构件可以复用的程度,32,面向对象设计度量-2,内聚性 使所有的操作一起工作,以达到单一的、明确定义的目标的程度 原始性 应用于操作和类, 原始性是指某操作的原子性 相似性 两个或多个类在其结构、功能
12、、行为或目的方面的相似程度 易变性 测量将发生变更的可能性,33,面向类的度量,方法继承因子 耦合因子 多态因子,MOOD 度量集 Har98b:,34,面向操作的度量,平均操作规模 操作复杂度 每个操作参数的平均数,由 Lorenz and Kidd Lor94提出:,MOOD度量集,方法继承因子(MIF)一个面向对象系统的类体系结构利用方法(操作)和属性继承的程度可定义为: MIF=Mi(Ci) / Ma(Ci) 这里是对i从1到TC求和。TC定义为体系结构中类的总数,Ci是体系结构中的一个类,35,MOOD度量集,Ma(Ci)=Md(Ci)+Mi(Ci) Ma(Ci)为类Ci关联中被调用
13、的方法数量; Md(Ci)为类Ci中声明的方法数量 Mi(Ci)为类Ci中继承的方法数量 MIF的值指示了继承对面向对象软件的影响。,36,MOOD度量集,耦合因子(CF)。耦合是对面向对象设计元素间连接的指示。 CF=ij is_client=1(Ci,Cj) / (T2c-Tc) 这里,对i从1到TC和j到TC求和。函数is_client=1,当且仅当用户类Cc与服务类Cs间存在关系,且CcCs;否则,is_client=0。,37,MOOD结论,尽管许多因素影响软件复杂性、可理解性和可维护性,但是,可以合理地得出这样的结论: 随着CF值的增大,面向对象软件的复杂性将随之增加,由此,可理解
14、性和可维护性和潜在的可复用性将受到损害。,38,39,构件级设计度量,内聚度量:一种数据对象和轨迹定义的功能 耦合度量:一种连接输入和输出参数,全局变量和被调用模块的功能 复杂性度量:包含上百种复杂度 (如,结构复杂性),40,用户界面设计度量,布局恰当性:布局实体、地理位置以及实体之间过渡的“开销”的功能。,耦合度量,对于数据与控制流耦合: di=输入参数的个数 ci=输入控制参数的个数 d0=输出数据参数的个数 c0=输出控制参数的个数 对于全局耦合 gd=用作数据的全局变量的个数 gc=用作控制的全局变量的个数,41,耦合度量,对于环境耦合 w=被调用模块的个数(扇出) r=调用所考虑模
15、块的模块数(扇入) 利用这些度量,模块耦合指标mc可用下式定义 mc= k / M 其中,k为比例常数,且 M=di+(aci)+d0+(bc0)+gd+(cgc)+w+r k,a,b,c的值必须根据经验导出 随着mc值的增大,整体模块的耦合性降低。,42,43,源代码度量,Halstead(霍尔斯特德) 的软件科学:基于一个构件或程序的关于操作数和运算符的数字(总和和发生次数)的所有预测的一组综合度量 应该注意到Halstead的“定律”已经引起了很多争议。许多人认为其基本理论有缺点。然而,已经进行了已选编程语言的实验验证 (例如, FEL89)。,Halstead,n1=在程序中出现的不同
16、操作符的数量 n2=在程序中出现的不同操作数的数量 N1=出现的操作符总数 N2=出现的操作数总数 操作符包含所有的控制流结构、条件和数学操作。操作数包含所有的程序变量和常量。,44,Halstead,整个程序的长度N可以估算如下: N=n1log2n1 + n2log2n2 而程序的信息量可以定义为: V=Nlog2(n1+n2) V随编程语言的不同而不同,45,46,测试的度量,从Halstead测度导出的度量也可用来估算测试工作量。 Binder Bin94 提出了一组面向对象系统的 “可测试性” 具有直接影响的设计度量。 方法缺少内聚 (LCOM)。 公有与保护属性的百分比 (PAP)。 对数据成员的公有访问 (PAD)。 根类的数量 (NOR)。 扇入 (FIN)。 子女数 (NOC) 和继承树的深度 (DIT)。,Halstead,利用程序信息量V的定义和程序层次PL,可以计算出工作量e: PL=1/(n1/2)(N2/n
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司绘画体验活动方案
- 公司百年活动方案
- 公司游玩海边活动方案
- 公司温泉游活动策划方案
- 公司管理部策划方案
- 公司组织篮球活动方案
- 公司棋类活动方案
- 公司欢聚日活动策划方案
- 公司旅游漂流活动方案
- 公司模拟面试活动方案
- 2024年天津市应急管理局招聘行政执法专职技术检查员笔试真题
- 2025年养老护理员职业考试试题及答案
- 揭阳惠来县纪委监委等部门属下事业单位招聘笔试真题2024
- 春苏教版六年级数学总复习30课时教学设计
- 党课课件含讲稿:以作风建设新成效激发干事创业新作为
- 西安美术学院《舞台编导艺术》2023-2024学年第二学期期末试卷
- 城投公司工程管理制度
- 2025全国农业(水产)行业职业技能大赛(水生物病害防治员)选拔赛试题库(含答案)
- 油浸式变压器 电抗器 检修规范标准
- 2025年中国膨润土猫砂项目投资可行性研究报告
- 职业技术学院2024级智能机器人技术专业人才培养方案
评论
0/150
提交评论