软件度量部分考点(仅供参考)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.测量有哪些尺度类型?他们之间有什么区别?测量作为过程,有哪些阶段?

测量有标定尺度、类型尺度、序列尺度、间隔尺度、比例尺度、绝对尺度。

标定和类型尺度属于语言尺度(Linguistic)。标定尺度给出了唯一且不含糊的概念名称并且定义技术也属于标定尺度;类型尺度识别实体中已经定义且命名的类型或种类(categories),也叫绝对标定尺度。序列尺度估计已测量的实体的值并将他们按顺序重组排列,值和顺序均表达为字符或符号。间隔尺度、比例尺度和绝对尺度属于定量尺度。间隔尺度用于发现增长间隔而不是比例,没有不合理的0间隔(后半句话翻译不好);比例尺度允许比例的计算并且允许合理的0参考点;绝对尺度用于计数(count),只有一种可能的绝对属性测量。

测量作为过程,有3个阶段:感知(Cognitive)、语义(Semantic)、数字化(Quantitative)。

2.软件度量有哪些实体类型?如何用GQM定义度量框架?GQM中如何描述目标?

有过程、产品、资源。

GQM提供了自顶向下的测量设置方法。GQM定义度量框架分为7步:1)建立想要获得的目标2)细化感兴趣的问题列表3)细化回答这些问题需要的度量(前面3步是最主要的)4)开发收集数据的步骤和工具5)收集并验证数据6)分析并翻译数据7)向项目组和组织提供反馈信息。

GQM中目标有4个部分:一个感兴趣的对象(一个实体)、一个意图、一个观点、一个对环境和约束的描述。

3.在度量数据的频率分析中,如何描述测量数据的散布度

使用散点图描述测量数据的散布度。散点图描述了两个间隔变量之间的关系。X轴是独立的变量,Y轴是依赖X轴变量的变量,则图上的每个点表示对这两个间隔的变量之间关系的观察。从点的分布度即可看出数据的散布度,以及变量之间的关系程度。

4.什么是功能点分析?特征点、对象点和功能点有什么不同?

功能点分析是对产品中为调整的函数数量(UFC)及值调整因子(VAF)的分析计算。FP=UFC*VAF。

生产率=FP/人月。文档=文档页数/FP。特征点分析扩展了功能点计数到实时和TLC环境(MIS&RT&SC)。当应用的算法数量及逻辑数据文件数相同时,功能点和特征点产生相同的结果;应用于MIS项目时,结果通常完全相同;当应用于更复杂的系统软件形态时,特征点的计数要高的显著的多。对象点是应用于开发循环早期的一种初始规模度量技术。每个对象被分成简单、中等、困难3个等级。度量由使用的窗口(screen)、报告(reports)、组件(components)的计数来决定。功能点则是对产品中使用的功能函数的计数来度量程序。

5.什么是图例点分析?

6.Halstead方法是如何进行软件度量?与代码行相比有何优势?

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;)

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)表示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.什么是程序的环境复杂度?如何度量

10.面向对象度量中,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方法与Henry|Kafura方法有何不同?

基于信息的度量使用扇入扇出度量。Shepperd方法认为信息流复杂度M=((fan-in(M)*(fan-out(M))2,shepperd强调这方法是在初始阶段度量的改进。Henry|Kafura 方法认为信息流复杂度M=length(M)*((fan-in(M)*(fan-out(M))2。

12.举例说明数据结构如何影响软件的复杂性

系统的全局复杂性不能无视数据结构而进行测量,控制流测量对鉴别隐藏在数据结构中的复杂度时会失效。

13.什么是过程能力?如何度量过程能力

相关文档
最新文档