您好,欢迎来到六九路网。
搜索
您的当前位置:首页软件结构的复杂性度量

软件结构的复杂性度量

来源:六九路网
维普资讯 http://www.cqvip.com 0 啦 , 软件结构 刘富样  -L 一 .一0 巾  .的 复杂性度量 在软件开发中,软件度量的根本目的是 为了管理的需要,利用度量来改进软件过 程。人们是无法管理不能度量的事物。没有 对软件过程的可见度就无法管理;而没有对 见到的事物有适当的度量或适当的准则去 判断、评估和决策,也无法进行优秀的管 理。软件工程的方主要在提供可见度方 面下工夫。但仅仅是方的提高并不能使 其成为工程学科。这就需要使用度量。度量 是一种可用于决策的可比较的对象。嫂量已 知的事物是为了进行跟踪和评估。对于未知 的事物,度髓则用于预测。 本文讨论软件度量的两种方法。软件度 量的成果是非常初步的,还需要大量工作才 可能真正地做到实用化,实用化将对软件的 高质量和高速发展有不可估量的影响。没有 度量,技术的发展根本无法进行。度量的定 义是指在现实的世界中,把数字或符号指定 给实体的某一属性,以便以这种方式来根据 已明确的规则来描述它们。 除了传统的对计算机硬件的性能进行 度量外,对算法的复杂性的度量一直是计算 机科学的重要组成部分。很多高层次的质量 属性,如产品的外部属性等很难进行度量。 因此我们通常被迫考虑对产品的内部属性 进行度量。Halstead的度量就是这样的,它 定义在源代码级上。也有相当多的度量被定 义在源代码或设计的图形模型上。度量的是 特定的内部属性和控制流结构、信息流和不 同路径的数目。 Halslead的软件科学提出程序的复杂度 V(程序工作量) H:nI XIogn,+n2 XIogm 不同情况目标可以是完全不刚;做法也 就会完全不一样。如粜目标不清馇,那么找 套关系等都未考虑.,因此,对一些艇杂情形 不能处理。 们说你并没有的度量作好准备 需笺西’先清 缺陷:如不同语言间相同运算符的关系及嵌 其中n-表示程序中的不同运算符数;n2 表示程序中的不同运算对象数。 N=Ni+N2 其中N-表示程序中的运算符总数;N: 表示程序中的运算对象总数。 n=nI+n2 V=N xIog(nI+n2) Halste ̄d利用v进一步估计编程语言 的抽象级别L、程序员工作量E和程序潜在 错误数B: ’L=Vmin/V或L=(2/nI)x(n2/N2) E:V/L 或 E=H xIog(m+11'2)X 《(nI X1'12)/(2 xII2)j B=(Nl+N2)x]og(nl+m)/3000 Halslead的重要意义在于:度量能根据 词汇表来进行,即在程序编码没有完成前, 就可以进行度量。特别是在许多场合,Hal— stead的度量与实际十分接近。这方法有其 但这个领域的大量工作受到了一些说 法的阻力而夭折,这些说法认 这样的度量 也同时度量了复杂性的外部属性;和类似费 用和工作量的过程属性一样,单一的复杂性 度最就可以作为很多外部属性的预测,是可 疑的。 结构复杂性度量所做的工作被看作位 于度量特定质量属性的:C作之下。所期望的 属性象可靠性和可维护性等只有在有代码 的几币4I版本的情况下才能度量出来。但仍希 望能预测软件的那一个部分有可能不可靠 而这个部分需要比其它部分更多的维护。思 路是能在执行这个软件之前能得到软件的 结构表示并对它的结构属性进行度最。这样 做是希望能建立经验预测理论来支持质量 保证、质量控制、和质量预测。 除了从代码行长度来估计外,McCabe 提出了根据程序的回路数目进行复杂性度 量,从而估计程序的可测试性和可理解性 等。计算回路复杂性公式: M=v(o)=e—trl+2p 或=判定节点+1 或=回路数目 其中:G为代表程序控制流的图;e为G 中的边;n为G的节点;P是G中不连通部 分数量,若G强连通图则P-l;M或V(G) 为G的回路数目。 McCabe复杂性度最的物理意义是:程 序中的分支或回路数目增加时,意味着复杂 性也增加。在M>10的模块中发现的错误 比M<10的模块要高21%。所以应把模块 的M保持在小于10。Mecabe复杂性度量的 缺点是没有考虑控制的不同类型的影响;也 没有考虑软件规模对复杂性的影响。因此. 些场合也不一定适用。但不管这些局限 性,McCabe复杂性度镀的简单、易用。在选 择方案和估计纠错费用等方面发挥优坍。侄 进行软件度量时应强调: l、首先确立目标。并不能随便指定软件 度量的标准和模型。即使f也们是严格而有效 的。最适合你的需要的软件度量的类型是由 你希望作的度量决定的。即设定的目标决定 的。在不同的情况下产生的目标是不一样 的。为此.需要知道.为什么要度量;度量的 目的是{平价一个情况还是预测一个结果。需 要识别出那个实体最主要。然后决定所选实 体的哪一个属性是最重要的。 一楚地了解每个实体;只有这样你才能=I=『j道哪 个属性你最感兴趣。只仃这样之后你/j‘能『F 始度量。 2、需要精确。度髓并不容易,如果忽略 r必须的严格这个基础,那么如何度量活动 都不可能进行的很深入。也商人认为软件度 最是纯管理的问题。这是彳 对的 的确, :(= 厂中软件度最程序址依赖f管理的 而且 多软件度量的特定的口标对管理来说尤勾 莆要 但是,征软件工程或其t二任何 ‘门学 科中当涉及到细节的时候,度硅就是技,牝.. 3、期 值要现实。我们并: 能埘软件度 量的期望太高。如:希望存 …个简 的数 字能作均质量和铤杂性的所有方丽的好的 指示。 需要有对度量的长期目标 成功经验 是: (1)度量的结果真正用于决策; (2)不仅订'部门关心,非lT部门也 利 用和i1寸论交流经验; (3)度量过程…般至 两年以 失败的教训是: (1)目的不明;事后发现度量的内容与管 理无关; (2所发人员拒绝执行,认_XJ金否认其工 怍业绩; (3)要求广泛收集数据,程序繁琐,不堪 重负; (4)结果报告无法引导管埋活动; (5)管理部门看剑可能发生的州题或无 成功的结果,而放弃支持度精工作。 当然,以上几个方面的导致,火帔的 素.部是可以避免的 因为度最jf没仃魔术 般的特性.无效时电不会I三l动抛_弁 如 医 学领域,没有人梦怨着找刮一种包冶百病的 药。软件度量亦如此。软件度 硅软件: :程 百花园中的一员。 4、挑战未来。 未来软件工 度量巾最 重要和最富挑战性的目标: (1)质量控制和保证 (2)估计方法 (3)设计方和软件度量 正式的规格术语只是单纯地集中往系统 的功能方面.不毹处理与性能约束衣I质键蚓 望有关的需求。度量的来源必须成为_JjI!格_相I 估计的重要元素。软件工程师应该使用正式 的方法使工作向度量集成的方向发展。圜 

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 69lv.com 版权所有 湘ICP备2023021910号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务