软件度量基本概念理解

软件度量基本概念理解

转自: http://blog.edu.cn/user2/mindware/archives/2006/1091478.shtml

Roger S. Pressman 的《软件工程-实践者之路 》第四章:
 
4.1测度、度量和指标

虽然术语“measure”(测量)、“measurement”(测度)和“metrics”(度量)经常被互换地使用,但注意到它们之间的细微差别是很重要的。因为“measure”(测量)和“Measurement”(测度)即可以作为名词也可以作为动词,所以它们的定义可能会混淆。在软件工程领域中,“measure”(测量)对一个产品过程的某个属性的范围、数量、维度、容量或大小提供了一个定量的指示。“Measurement”(测度)则是确定一个测量的行为。IEEE的软件工程术语标准辞典(IEEE Standard Glossary of Software Engineering  Terms)[IEE93]中定义“metric”(度量)为“对一个系统、构件或过程具有的某个给定属性的度的一个定量测量”。

当获取到单个的数据点(如在一个模块的复审中发现的错误数)时,就建立了一个测量(measure)。测度(measurement)的发生是收集一个或多个数据点的结果(如调研若干个模块的复审,以收集每一次复审所发现的错误数的测量)。软件度量(metrics)在某种程度上与单个的测量相关(如每一次复审所发现的错误的平均数,或复审中每人/小时所发现的错误的平均数)。

软件工程师收集测量结果并产生度量,这样就可以获得指标“indicator”。指标是一个度量或度量的组合,它对软件过程、软件项目或产品本身提供了更深入的了解[RAG95]。指标所提供的更深入的理解,使得项目管理者或软件工程师能够调整开发过程、项目或产品,这样使事情进行得更顺利,能被更好地完成。

例如,四个软件小组共同完成一个大型软件项目。每一个小组必须进行技术复审,但允许其自行选择所采用的复审类型。检查度量结果——每人/小时所发现的错误数,项目管理者注意到采用更加正式的复审方法的两个小组,每人/小时所发现的错误数比起另外两个小组高40%。假设所有其他参数都相同,这就给项目管理者提供了一个指标:正式的复审方法比起其他复审方法在时间投资上能得到更大的回报。他可能会决定建议所有小组都采用更加正式的方法。度量给管理者提供了更深入的理解,而更深入的理解会产生更严谨、更正确的决策。

两个简单的个例子:

看一个人的肥胖程度,
 
measure: 身高,体重 (是两个单独的measure)
measurement: 拿着尺子去量身高,用秤去称体重的行为
metrics: 肥胖指数(不知是不是叫这个名字) =体重(kg) /(身高-105
indicator: 肥胖程度 (肥胖指数越大于1越胖)
 
这是一个indicator与单个metrics对应的例子。还有一个一个indicator与多个metrics对应的,比如:
 
FTR的正常性:
 
measure: 文档页数, 发现错误数,  每个人的准备时间
measurement: ....
metrics:  1. preparation rate = 总的准备时间 / 文档页数
                2. fault density = 错误数 / 文档页数
indicator:
                1. 准备程度:FTR是否准备充分 - 仅与prepation rate这一个metrics对应。
                2. 查错有效性:FTR发现错误的效果 - 仅与fault density这一个metrics对应。
                3. 正常程度:FTR是否正常: 这是一个与两个metrics都对应的indicator,也就是一个FTR是否正常(基于组织的历史数据,在统计意义上),是要在prep ratefault density两个metrics组成的二维空间里去判断的。

 如下图,一个点对应一次FTR 正常的 FTR fault density 应介于上下限之间(蓝线与灰线之间) prep rate 应大于下限(在绿线的右边)。也就是正常的FTR的点都在区域4别的区域的应该是有一定问题的,或者说是PM应该去关注一下的。

 区域1, 准备一点也不充分,错误倒发现了一大堆。呵呵,质量能放心吗?! 
 区域3, 准备很充分,错误也挺多,但是太多了一点,是否还有很多漏网之鱼?! 
 区域2, 或者准备不够,或者错误太少,如果二者俱备,用四川话讲,这个FTR显然是走过场噻就象此图中一样,左下角的密密麻麻的点点,都是在走过场, 还是在Review比较关键requirementPM该下课!^_^


 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
C语言软件工程期末试题包含了对于学生在软件工程领域的知识和能力的综合考察。试题主要涉及以下几个方面:软件开发过程、代码规范、代码调试和测试、软件质量保证等。 在软件开发过程方面,试题会考察学生对于软件工程的基本概念和原理的理解,例如需求分析、设计、实现、测试和维护等各个阶段。此外,还会考查学生对于项目管理和版本控制等软件开发过程中的重要概念和工具的了解。 代码规范是软件开发过程中非常关键的一环。试题可能会要求学生按照一定的规范编写代码,包括命名规范、缩进格式、注释规范等。这有助于提高代码的可读性和可维护性。 代码调试和测试是保证软件质量的重要步骤。试题可能会要求学生根据给定的代码调试并找出其中的错误,或者设计并实现一组测试用例来验证代码的正确性和鲁棒性。 软件质量保证方面,试题可能会涉及学生对于代码重构、代码复用和代码审查等方面的理解和应用能力。此外,还可能考查学生对于软件质量度量软件质量标准的理解。 综上所述,C语言软件工程期末试题的内容主要围绕软件开发过程、代码规范、代码调试测试和软件质量保证等方面展开。学生需要掌握软件工程的基本概念和原理,并具备编写规范化代码、调试和测试代码以及保证软件质量的能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值