软件度量复习要点、考点_daisy
软件测试度量基础培训

软件测试度量目录一、软件度量的基本知识二、软件测试度量的体系三、IT支持工具四、度量活动中的常见问题一、引子Why do metrics?¾“If you don't know where you are going, any road will do.”-PROVERB¾“If you don't know where you are, a map won't help.”-WATTS HUMPHREY.¾“What you cannot measure, you cannot manage.”-DRUCKER一、引子为什么公司要组织体检?¾对自己的健康状况有一个清楚的认识。
¾发现自己健康方面的一些异常,合理调整自己的饮食和生活习惯。
¾尽早发现疾病,及时医治。
业界度量状态目前在业界高成熟度组织普遍开展了软件度量方面的研究和应用,这些组织包括:NASA(美国航空航天局)SEI(软件工程研究所)DARPA(美国国防部国际研究项目部)IBMHPNORTELMOTOROLALUCENT度量的概念根据一定的规则,将数字或符号赋与系统、构件、过程等实体的特定属性,从而使我们能清晰地理解该实体及其属性。
简而言之,度量就是对事物属性的量化表示。
度量的根本目的软件度量的根本目的是通过量化的分析和综合,帮助我们提高软件生产率,提高软件产品质量,降低研发成本、维护成本和产品研发周期,提高用户满意度,为组织持续改进提供量化的指标和反馈。
度量本身不是目的,而是手段软件度量的范围 过程度量——过程优化和改进 产品度量——产品评估和决策 项目度量——项目控制和评估软件测试度量的规程•软件测试度量的范围•软件测试度量的角色•软件测试度量的数据收集•软件测试度量的指标定义软件测试度量的数据收集数据收集-规模—代码量(移植、新增、修改、删除)从基线化的代码获取(用代码行统计工具)—测试方案规模(页)方案规模:从基线化的测试方案文档获取—测试用例规模(个)估计用例规模:从项目估计表单获取实际用例规模:从基线化的测试用例文档获取软件测试度量的数据收集数据收集-进度—测试计划、测试设计、测试执行、测试评估四阶段的计划开始和结束时间从测试项目计划中的里程碑获取—测试计划、测试设计、测试执行、测试评估四阶段的实际开始和结束时间从各阶段结束报告的中获取软件测试度量的应用实例测试估计测试过程评估测试质量评估测试改进与控制测试质量的评估(续) 工作量与遗留缺陷的四象限分析三、IT工具支持3.1 新工作日志3.2 测试项目度量表3.3 测试执行度量表3.4 测试缺陷管理统计工具3.5 测试用例管理工具3.6 Gompertz工具四、度量活动中的常见问题软件规模收集不准确工作量数据收集不准确软件规模收集不准确¾情况1:被测特性一般涉及多个模块,特性的软件规模很难度量。
软件工程第15章软件度量

国防科技大学计算机学院
9
2020/8/20
度量、测量和估算
• 测量涉及测量对象、选用的量纲、方法、工具、 过程和数值结果。 • 软件估算是根据经验、历史资料或模型,项目实 际对软件制品、过程、资源进行预测。 • 数理统计意义上的预测或估算将在15.1.4节讨论。 • 估算一般用于签订合同、制定工作计划、进行项 目预算等。 • 这里涉及软件过程工作量的估算。
2020/8/20
国防科技大学计算机学院
21
软件工程测量、度量、估算的 基本内容
• 开发结构复杂的模块和系统比开发结构简单的要花 费更多的工作量和成本。 • 必须对软件模块和系统进行结构和复杂性度量。 • 对结构复杂的部分加强审查,寻求降低复杂性的途 径,提高简单性和正确性。 • 在此基础上对这部分软件进行更严格的测试。 • 15.3节讨论模块和模块间信息流的复杂性。 • 15.4节将讨论软件质量度量,McCall定义了三层次 树状图分别表示软件质量的要素指标,软件质量要 素评价准则与软件属性度量之间的关系。
• 近代企业管理已建立完整的体系和方法学。
2020/8/20
国防科技大学计算机学院
2
软件测量、度量与估算的概念
• 软件工程项目,有“工程”属性。 • 软件工程的定义明确指出,软件工程是“采用系统 的、规范的、可量化的方法开发、运行、维护软件 的过程”。 • 软件工程的度量和估算是软件工程的重要组成部分, 度量可分为软件度量和软件项目度量两部分。 • 本章讨论软件度量、测量和估算的基本概念,软件 的规模度量,质量度量,结构和复杂性度量,可靠 性度量。 • 第16章将结合软件项目管理与过程改进介绍软件项 目的成本估算、计划安排、风险分析和软件开发组 织的度量。
软件度量总结(精)

软件度量总结这次总结的结构比较简单,就是按照五个章节分别阐述了自己的理解。
一.软件度量的应用范围。
经过这一阶段的学习,我认为想要明白软件度量,首先要分清度量和测量的区别。
度量具有前置性,它提供了一种定量研究软件问题的方法;测量具有实时性或后置性,主要集中在给度量提供数据或者处理数据的方法上。
由于软件工程强烈的不确定性,使得软件工程的精确测量困难重重,但软件度量主要研究的是可能性的规律,通过概率和统计学的研究,寻找事物内在的规律。
其并不具备 1+1=2的特征, 而是研究在多大可能性上这个结论是合理的,因为软件的主体是人,具有概率属性,设备和材料容易度量,但人很难度量。
软件度量的主要作用是评估状况、跟踪进展情况、评价产品有效性和改进设计和过程的质量。
定性分析可以提供迅速地判断能力,但定性分析终究需要定量分析的验证与支持,否则其结果很可能成为无目之本,出现错误。
软件度量的方法体系主要包括 5个方面:1. 项目度量,目的在于度量项目规模、成本、进度、顾客满意度等,辅助项目管理进行项目控制; 2. 规模度量,主要依靠经验和经验的模型,是决定项目成败的重要原因之一,是估算工作量、成本预算及策划项目进度的基础; 3. 成本度量, 4。
产品度量,实质上是软件质量的度量,软件的质量由一系列质量要素组成,每个质量要素又由一些衡量标准组成,主要肚量方法是McCabe 复杂性度量法; 5,过程度量,对软件开发过程的个各方面进行度量,目的在于预测过程的未来属性,减少结果的偏差,主要包括成熟度度量(例如 CMMI,GJB5000A、管理度量(主要包括里程碑管理、风险度量等项目管理度量,审查度量、质量保证度量等质量管理度量,变更控制、版本管理度量等配置管理度量、生命周期度量三个大的方面。
不同层次的人员对软件度量有不同的需求。
高级管理人员,如 CEO 、 COO ,关注点在上市时间、客户满意度、费用的节省等商业策略的组成部分上;中级管理层,如部门经理、总监等,则主要关注生产力、成本控制、效率等,他们更多的是着眼于总体的性能,交付情况以及产品的运行状态等,而不是项目每天完成的情况;项目管理层对度量的需求则是准确估计和控制软件产品,主要考虑通过每周的对比评测、研究进展,以确保项目开发方向的正确性,或者主动捕捉测量点,由度量分析师发展成一种模型,预测项目未来的结果。
软件工程第15章软件度量

2020/8/20
国防科技大学计算机学院
3
15.1软件测量、度量与估算的概念
• 15.1.1 软件测量的意义和作用 • 15.1.2 度量、测量和估算 • 15.1.3 软件工程测量、度量、估算的
基本内容 • 15.1.4 软件工程测量估算的基本方法
2020/8/20
国防科技大学计算机学院
4
15.1.1软件测量的意义和作用
• 近代企业管理已建立完整的体系和方法学。
2020/8/20
国防科技大学计算机学院
2
软件测量、度量与估算的概念
• 软件工程项目,有“工程”属性。 • 软件工程的定义明确指出,软件工程是“采用系统 的、规范的、可量化的方法开发、运行、维护软件 的过程”。 • 软件工程的度量和估算是软件工程的重要组成部分, 度量可分为软件度量和软件项目度量两部分。 • 本章讨论软件度量、测量和估算的基本概念,软件 的规模度量,质量度量,结构和复杂性度量,可靠 性度量。 • 第16章将结合软件项目管理与过程改进介绍软件项 目的成本估算、计划安排、风险分析和软件开发组 织的度量。
• 今天,测量已成为良好软件工程实践不可或缺的 活动。
• 软件开发人员通过测量(measure)软件特性了解软 件开发过程中需求是否一致和完整;
• 设计制品是否与需求一致;
• 代码是否与设计一致;
• 需求是否可测试;
• 软件制品是否可靠;
• 审查(inspection)和测试是否有效;
• 是否实现了软件制品和过程目标等。
• 客户通过对软件制品要素的测量确定软件制品功能 和性能是否满足使用要求。
• 软件维护人员通过软件测量了解软件制品存在的问 题和可维护性。
2020/8/20
软件工程知识(软考备考要点汇总)

软件工程知识(软考备考要点汇总)软件工程知识 (软考备考要点汇总)软件工程是一门涉及软件开发、维护和演化的学科,它旨在提高软件开发过程的效率和质量。
对于准备参加软考考试的人来说,了解软件工程的知识点至关重要。
本文将对软件工程的关键知识点进行汇总,帮助考生更好地备考。
1. 软件过程模型软件过程模型是指描述软件开发过程的模型,常见的模型包括瀑布模型、迭代模型、增量模型、螺旋模型等。
在备考软考时,需要了解不同模型的特点、适用场景以及优缺点。
2. 软件需求工程软件需求工程是指对软件系统进行需求分析、需求获取和需求管理的过程。
备考软考时,需要掌握需求工程的主要术语和概念,如用户需求、功能需求、非功能需求等,以及需求获取和需求变更的方法和技巧。
3. 软件设计模式软件设计模式是指在软件设计过程中经常遇到的问题和解决方法的总结和抽象。
备考软考时,需要了解常见的软件设计模式,如单例模式、工厂模式、装饰器模式等,以及它们的应用场景和实现方式。
4. 软件测试与质量管理软件测试是保证软件质量的重要手段,它包括单元测试、集成测试、系统测试等多个层次。
备考软考时,需要了解各种测试方法和技术,如黑盒测试、白盒测试、自动化测试等,以及软件质量管理的基本原理和方法。
5. 软件项目管理软件项目管理是指对软件开发项目进行计划、组织、协调和控制的过程。
备考软考时,需要了解项目管理的基本概念和流程,如项目计划、需求管理、进度管理等,以及常用的项目管理工具和技术。
6. 软件配置管理软件配置管理是指对软件开发过程中的软件配置项进行版本控制和变更管理的过程。
备考软考时,需要了解配置管理的基本原理和方法,如版本控制、变更管理、发布管理等,以及常用的配置管理工具和技术。
7. 软件维护与演化软件维护与演化是指对已经投入使用的软件系统进行修复、改进和升级的过程。
备考软考时,需要了解维护与演化的基本原理和方法,如问题分析、改进计划、版本迭代等,以及常见的维护与演化模式和技术。
软件的测试复习知识点

软件测试复习知识点熟练掌握:1.面向对象的单元测试中基于服务的测试策略2.向对象中的基于状态测试的策略3.软件测试与软件开发的关系狭义定义测试:比如“程序设计〞与“测试〞之间的关系,传统上总以为程序设计在先,测试在后。
这种专指测试程序代码,定义在编码之后的“测试〞是一种狭义定义的测试。
广义定义测试:这种测试活动可以在软件开发生命周期的任何阶段进展。
但是,随着开发不断地进展,越到后续阶段,找出错误并改正它的代价会越大全新的软件开发模式:以测试驱动软件开发。
软件测试贯穿了整个软件开发过程,软件开发生命周期的各个阶段中都少不了相应的测试,这种思想与软件质量保证的出发点是一致的。
4.系统测试的概念与其分类;系统测试是将已经确认的软件、计算机硬件、外设、网络等其他元素结合在一起,进展信息系统的各种组装测试和确认测试,其目的是通过与系统的需求相比拟,发现所开发的系统与用户需求不符或矛盾的地方,从而提出更加完善的方案。
1.用户层:①用户支持测试;②用户界面测试;③可维护测试;④安全性测试;2.应用层:①性能测试;②系统可靠性、稳定性测试;③系统兼容性测试;④系统组网测试;⑤系统安装升级测试;3.功能层:4.子系统层;5.协议/指标层;5.常见的黑盒测试用例的设计方法黑盒测试也称功能测试或数据驱动测试,它是在产品所应具有的功能,通过测试来检测每个功能是否都能正常使用。
•在测试时,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进展测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息,并且保持外部信息〔如数据库或文件〕的完整性,如下列图。
①是否有不正确或遗漏了的功能②在接口上,能否正确地承受输入数据,能否产生正确地输出信息③访问外部信息是否有错④性能上是否满足要求⑤界面是否错误,是否不美观⑥初始化或终止错误•黑盒测试有两种根本方法,即通过测试和失败测试。
软件度量试题及答案

软件度量试题及答案1. 软件度量是指什么?答案:软件度量是指使用特定的量度来评估软件产品或软件过程的特性,以便于理解、管理和改进软件。
2. 软件度量的类型有哪些?答案:软件度量的类型包括但不限于:- 规模度量:如代码行数、功能点数。
- 复杂度度量:如循环复杂度、结构复杂度。
- 质量度量:如缺陷率、可靠性。
- 性能度量:如响应时间、吞吐量。
- 工作量度量:如人月数、工作小时数。
3. 软件度量的目的是什么?答案:软件度量的目的是:- 帮助项目管理者做出更明智的决策。
- 提供软件项目进展的量化指标。
- 为软件质量评估提供依据。
- 促进软件开发过程的持续改进。
4. 请列举几种常用的软件度量工具。
答案:常用的软件度量工具包括:- LOC(Lines of Code)计数器。
- Function Point Analysis(功能点分析)工具。
- Complexity Analyzer(复杂度分析器)。
- Code Metrics Tools(代码度量工具)。
- Performance Profilers(性能分析器)。
5. 软件度量过程中可能遇到哪些挑战?答案:软件度量过程中可能遇到的挑战包括:- 度量标准的不一致。
- 数据收集的难度和成本。
- 度量结果的解释和应用。
- 度量指标的选择和定制。
- 度量数据的可靠性和有效性。
6. 如何选择适合项目的软件度量指标?答案:选择适合项目的软件度量指标的方法包括:- 确定项目目标和需求。
- 分析项目的特点和约束。
- 考虑度量指标的可获取性和成本。
- 评估度量指标的适用性和有效性。
- 参考行业标准和最佳实践。
7. 请简述软件度量数据收集的方法。
答案:软件度量数据收集的方法包括:- 自动化工具:使用自动化工具收集代码、性能等数据。
- 人工记录:由开发人员或测试人员手动记录数据。
- 问卷调查:通过问卷收集团队成员的反馈和意见。
- 日志分析:分析系统日志以获取性能和使用情况数据。
软件工程师重点考点解析与总结

软件工程师重点考点解析与总结近年来,随着信息技术的飞速发展,软件工程师逐渐成为备受关注的职业。
作为一名软件工程师,是否能够掌握关键的考点,对于提升自己的竞争力至关重要。
本文将对软件工程师的重点考点进行解析与总结,希望能够帮助广大软件工程师更好地备战考试。
一、软件开发流程与模型软件开发的成功与否直接关系到整个项目的成败。
因此,理解软件开发流程与模型是软件工程师必备的核心知识。
这部分的重点考点包括:1. 瀑布模型:介绍瀑布模型的基本原理和特点,了解各个开发阶段的任务和产出物。
2. 敏捷开发:了解敏捷开发的基本原理,掌握Scrum、XP等敏捷开发方法的特点和应用场景。
3. 增量开发:了解增量开发的概念和步骤,掌握增量开发与瀑布模型的区别与联系。
4. 原型开发:了解原型开发的目的和优势,掌握原型开发的几种常见方法。
二、需求工程与需求分析需求工程是软件开发过程中至关重要的一环,它决定了整个软件系统的功能和性能。
在需求工程与需求分析的考点中,重点包括:1. 需求获取:了解需求获取的常见方法,包括面谈、问卷调查、观察等,掌握各种需求获取方法的优劣势。
2. 需求分析:掌握需求分析的基本步骤,包括需求建模、需求验证和需求管理等。
3. 用例建模:理解用例建模的概念和目的,掌握用例建模的基本步骤和方法。
4. 需求规格说明:了解需求规格说明的格式和要求,掌握如何编写完整、准确的需求规格说明文档。
三、软件设计与构建软件设计是软件工程师必须要具备的核心能力之一。
在软件设计与构建的考点中,需要重点关注以下内容:1. 结构化设计:掌握结构化设计的基本原则和方法,包括模块化、信息隐藏、模块间的接口设计等。
2. 面向对象设计:了解面向对象设计的基本概念和原则,掌握类图、时序图、活动图等面向对象设计方法的使用。
3. 设计模式:熟悉常见的设计模式,掌握它们的原理和适用场景,如单例模式、工厂模式、观察者模式等。
4. 架构设计:了解软件架构设计的基本概念和常用架构模式,如MVC、微服务架构等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件度量考试复习测量定义:用数字或符号来表示真实世界中实体属性从而根据定义的规则来表示实体的过程。
度量定义:由用户和设计者一同设想的用来在可信和有意义的方式中显露出的的选择的特性。
软件度量的定义:用来量化软件产品,软件开发资源和/或软件开发过程的度量。
包括可直接测量的对象如代码行,也包括通过测量计算得到的对象如软件质量。
1.测量有哪些尺度类型?各有何区别?答:测量有标定尺度、类型尺度、序列尺度、间隔尺度、比例尺度、绝对尺度。
标定和类型尺度属于语言尺度(Linguistic)。
标定尺度给出了唯一且不含糊的概念名称并且定义技术也属于标定尺度;类型尺度识别实体中已经定义且命名的类型或种类(categories),也叫绝对标定尺度。
序列尺度估计已测量的实体的值并将他们按顺序重组排列,值和顺序均表达为字符或符号。
间隔尺度、比例尺度和绝对尺度属于定量尺度。
间隔尺度用于发现增长间隔而不是比例,没有不合理的0间隔(后半句话翻译不好);比例尺度允许比例的计算并且允许合理的0参考点;绝对尺度用于计数(count),只有一种可能的绝对属性测量。
测量作为一个过程,有哪些阶段?答:测量作为过程,有3个阶段:感知(Cognitive)、语义(Semantic)、数字化(Quantitative)。
2.软件度量的实体有哪些?如何采用GQM定义度量框架?GQM中如何描述目标?答:软件度量的实体类型:①过程(process):软件开发中活动的集合。
不同的软件开发模式中,所采用的流程和活动也不一样;②产品(product):软件过程活动的结果,可以是一个程序、一个软件文档或其他任何交付物;③资源(resource):实施这些活动所需要的对象,可能是人力、设备、时间等。
GQM定义度量框架:1。
确定目标;2。
细化感兴趣的问题列表;3。
定义需要回答这些问题的度量标准;4。
开发数据收集和分析的工具和机制;5。
收集并验证数据;6。
通过事后剖析的方式分析数据以评估是否与目标一致,并为其后的改善提供意见;7。
为利益相关者提供反馈信息。
GQM中如何描述目标:GQM中目标有4个部分:一个感兴趣的对象(一个实体)、一个意图、一个观点、一个对环境和约束的描述。
3.在度量数据的频域分析中,如何描述测量数据的散步度?答:散步度描述了被测量(观察)数据在数据集中是怎样分布的。
主要通过以下3个参数来反映:极差是资料组(数据集)中最高和最低值之差;方差测量观察值的波动范围;标准差是方差的平方根。
4.什么是功能点分析?特征点、对象点、和功能点有何不同?答:功能点分析是对产品中为调整的函数数量(UFC)及值调整因子(VAF)的分析计算。
FP=UFC*VAF。
生产率=FP/人月。
文档=文档页数/FP。
特征点分析扩展了功能点计数到实时和TLC环境(MIS&RT&SC)。
当应用的算法数量及逻辑数据文件数相同时,功能点和特征点产生相同的结果;应用于MIS项目时,结果通常完全相同;当应用于更复杂的系统软件形态时,特征点的计数要高的显著的多。
对象点是应用于开发循环早期的一种初始规模度量技术。
每个对象被分成简单、中等、困难3个等级。
度量由使用的窗口(screen)、报告(reports)、组件(components)的计数来决定。
功能点则是对产品中使用的功能函数的计数来度量程序。
5.什么是用例点分析?答1用例点分析:是面向对象分析和设计中一种用来提高需求的方法。
用例点分析方法为:1。
计算未调整的角色数(UAW);2。
计算未调整的用例数(UUCW);3。
计算未调整的用例点数(UUCP=UAW+UUCW);4。
计算技术复杂度因子(TCF);5。
计算环境因子(EF=1.4+(-0.03*EFactor));6。
计算成本调整后的用例点数(UPC=UUCP*TCF*EF)。
6.Helstead 方法如何进行软件度量?与代码行相比有何优势?答1:Halstead方法认为程序是一组记号,由两种基本的元素组成:操作数(变量,常量,地址空间)和操作符(编程语言中定义的操作)。
它统计程序中出现的不重复的操作符数量(μ1)和操作数数量(μ2)及总共的操作符数(N1)和操作数数(N2)。
(程序的单词量(vocabulary)μ=μ1+μ2;程序的长度为总共出现的操作符数和操作数数N=N1+N2;程序预计长度N^=μ1log2μ1+μ2 log2μ2;程序容量V=N log2μ=N log2(μ1+μ2)。
Halstead 方法认为V是编写长度为N的程序所需要的思维比较次数。
V通常用来测量软件复杂度。
潜在容量V*是一个算法任意表达的最小容量(假设只有一个操作符,一个操作符只引用一次)V*=(2+μ2*) log2(2+μ2*);程序等级L是一个算法的具体实现的抽象级别L=V*/V;智力内容I测量程序里表述了“多少”I=L*V;困难度D=1/L;)答2:Halstead方法是一种程序复杂度度量方法。
Halstead度量方法不仅仅度量了程序长度,还描述了程序的最小实现和实际实现之间的关系,并据此阐释程序语言的等级高低。
它以程序中出现的操作符和操作数为计数对象,以它们的出现次数作为计数目标来测算程序容量和工作量。
n1 = 操作符数量n2 = 操作数数量N1 = 操作符出现的总数量N2 = 操作数出现的总数量Program length(程序长度): N=N1 + N2Program vocabulary(程序词汇量):n=n1 + n2Volume(程序体积):V= Nlog2nDifficulty(难度):Effort(总工作量):E=D*VHalstead还给出了预测程序中包含错误的个数的公式如下:E=Nlog2(n1+n2)/3000Halstead方法与代码行相比,定义清晰,对具体的编程语言依赖性小,能为早期的设计提供支持,并且对开发人员技术的依赖性较小。
7.什么是COCOMO模型?如何采用COCOMO模型进行成本估计?答:COCOMO模型是构造性成本模型,是使用从历史项目及当前项目特性取得的数据的回归公式。
它将软件成本估算分成3个由粗到细的层次:基本层,中间层,详细层。
每个层次又按软件项目的应用领域和复杂程序分成3种类型:组织型、半独立型、嵌入型。
其模型形式为:MM=a*(KDSI) b*(f1+f2+…+f15);TDEV=c*(MM) d。
其中MM表示开发工作量,单位人月;KDSI表示源指令条数,单位千行;TDEV表示开发时间,单位月;fi(i=1~15)表示15项项目影响调节因子;a,c表示模型系数;b,d表示模型指数。
(此处摘自任胜兵《软件工程》,下面的翻译自PPT,翻译的不太准确)基本层是单变量静态模型,人月影响=Cl b * (KDSI) P1,时间计划=C2 * (Effort)P2;中间层是双变量模型,人月影响=Cl i * EAF * (KDSI) P1,时间计划=C2 * (Effort)P2,EAF = E1 * E2 * … E15详细层模型与中间层一致,等于中间层+每一状态进行估算。
其中Cl b,Cl i表示工作比例系数,C2是进度比例系数,EAF表示15项项目调整因子。
P1是对效益等级的刻画,P2是对天生的惰性及类似的刻画8.Pareto 图和Histogram 图有何区别?运行图和控制图有何区别?答:Pareto图又叫80-20准侧图。
它把频率条按降序从左到右排列,X轴通常是引起缺陷的原因而Y轴通常是缺陷数,它给出了引起缺陷的主要因素;Histogram图的X轴是按单位间隔排列的参数,且参数按升序从左到右排列,Y轴包含了频率计数。
Pareto图中频率条按频率计数排序显示,Histogram图用来显示参数特征的分布度。
运行图和控制图的X轴Y轴表示相同,运行图是使用历史数据进行趋势分析,而控制图比运行图多一条中线,用来判断数据是否脱离控制,表明需要进行纠正操作9.什么是程序的环形复杂度?如何度量?答:用McCabe方法度量得出的结果称为程序的环形复杂度。
它等于强连通的程序控制结构图中线性无关的有向环的个数。
所谓强连通图是指从图中任一个节点出发都可以到达所有其它节点。
程序控制结构图通常不是强连通的,因为从图中较低的(即较靠近出口点的)节点往往不能到达较高的节点。
然而,如果从出口点到入口点画一条虚弧.则程序控制结构图必然成为强连通的。
McCabe方法的计算步骤分如下三步:步骤1:将程序流程图退化成有向图,即将程序流程图的每个处理框看作一个节点,将流线看作连接各节点的有向弧。
步骤2:在有向图中,由程序出口到入口连接一条虚有向弧。
步骤3:计算V(G)=m-n+1其中,V(G)是有向图G中环数,m是有向图G中的弧数,n是有向图G中的节点数。
实践表明,模块规模以V(G)≤10为宜,也就是说,V(G)=10是模块规模的一个更科学更精确的上限。
FA() = 0FS(m1,m2) = m1 + m2FC(m1,m2) = m1 + m2 + 1FL(m1) = m1 + 110.在面向对象的度量中,CK方法和LK方法各提供了哪些度量指标?答:LK方法提供了LOC(程序大小)、CS(类大小,可能说明类职责过多)、NOO(重载类个数,NOO过大说明设计有问题,继承层次抽象度低)、NOA(新增方法个数,说明设计漂移)、SI(过高说明层次中的类不符合抽象定义)、DIT(继承树深度)等。
CK方法提供了WMC(Weighted Methods per Class,方法的权重和复杂性)、DIT(Depth of Inheritance,继承树深度,值越大,复杂度越大)、NOC(Number of Children,子类数,直接继承于某个类的个数,指示一个类可能对系统和设计存在的潜在影响)、CBO (Coupling Between Objects,类耦合度,过大说明类关系较多,维护困难)、RFC(Response for a Class,类响应度,所有可以用于对一个对象的消息做出响应的方法个数)、LCOM (Lack of Cohension,内聚度的缺乏,不同的方法用同样的变量实例集做出不同的表象叫存在内聚度)11.基于信息的度量中,shepperd方法与Herry/Kafura 方法有何不同?答1:shepperd方法是一种较原始的改善我们的指标特征是它们消除信息和控制流的模糊性,集中在信息流的度量上,而henry 和kafura度量是不能做到的。
答2:基于信息的度量使用扇入扇出度量。
Shepperd方法认为信息流复杂度M=((fan-in(M)*(fan-out(M))2,shepperd强调这方法是在初始阶段度量的改进。
Henry|Kafura 方法认为信息流复杂度M=length(M)*((fan-in(M)*(fan-out(M))2。