软件度量复习要点、考点_daisy
- 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 + N2
Program vocabulary(程序词汇量):n=n1 + n2
Volume(程序体积):V= Nlog2n
Difficulty(难度):
Effort(总工作量):E=D*V
Halstead还给出了预测程序中包含错误的个数的公式如下:
E=Nlog2(n1+n2)/3000
Halstead方法与代码行相比,定义清晰,对具体的编程语言依赖性小,能为早期的设计提供支持,并且对开发人员技术的依赖性较小。
7.什么是COCOMO模型?如何采用COCOMO模型进行成本估计?
答:COCOMO模型是构造性成本模型,是使用从历史项目及当前项目特性取得的数据的回归公式。它将软件成本估算分成3个由粗到细的层次:基本层,中间层,详细层。每个层次又按软件项目的应用领域和复杂程序分成3种类型:组织型、半独立型、嵌入型。
其模型形式为:MM=a*(KDSI) b*(f1+f2+…+f15);TDEV=c*(MM) d。其中MM表示开发工作量,单位人月;KDSI表示源指令条数,单位千行;TDEV表示开发时间,单位月;fi(i=1~15)