首页 > 范文大全 > 正文

COSMIC度量一致性控制方法的研究

开篇:润墨网以专业的文秘视角,为您筛选了一篇COSMIC度量一致性控制方法的研究范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要: cosmic规模度量一致性是其满足用户需求的首要前提。实际上,度量员对方法的理解程度不同以及软件需求文档粒度级别过高等原因都会造成度量结果的差异。该文通过对COSMIC规则和原则的研究,结合实际案例的分析,提出软件结构、功能过程和感兴趣对象三个对度量结果影响较大的技术因子,并分别给出了相应的控制方法

关键词: COSMIC;规模度量;一致性;控制方法

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2014)02-0322-03

COSMIC方法是国际标准的功能大小度量方法,在规模度量领域应用非常广泛。这个方法可用于实时软件、商业应用软件以及两者混合型软件功能[1]。软件的规模是软件估算和项目管理的主要依据之一,度量结果的一致是有效度量的前提[2]。但是,在实际度量中,度量结果往往很难取得一致。结果的不一致主要表现为:不同度量员度量同一软件时度量结果的差异,以及同一度量员在不同时刻度量同一软件时结果的差异。

造成以上差异的原因主要有:度量文档描述有歧义,度量员对方法掌握程度不同等原因。该文通过对COSMIC方法的研究,并结合实际度量活动,针对度量一致性提出了一些个人观点。作者从影响度量结果的因素入手,着重分析了软件结构、功能过程和感兴趣对象三个技术因子,并分别给出了相应的控制方法。最后,就技术因子的控制做了验证。

1 COSMIC方法概述

COSMIC方法是国际标准的功能大小度量方法,在规模度量领域应用非常广泛,可用于实时软件、商业应用软件以及两者混合型软件功能规模的度量。COSMIC方法通过对给定软件的功能用户需求(简称FUR)应用一组模型、原则(principles)、规则(rules)等一系列过程,最终得到一个数字化的“量值”,表示根据COSMIC方法得到的软件块的功能大小。

1.1 度量的一致性

度量的一致性指的是度量结果的一致,它不同于度量的准确性。不同的度量员使用同一度量方法,在度量相同软件时得到数据移动类型和数目相同才称为度量结果的一致。一致的度量结果,不仅可以衡量软件规模度量方法的稳定性、合理性,同时还具有检验度量员度量水平、检查控制软件文档质量等用途[3]。

在实际应用过程中,不同的度量员度量同一软件,甚至是度量员对同一软件的多次度量,常常都会产生很大差异。在某次多名度量员参与的度量实践中出现了较多的差异,主要表现为四种差异:一是与实际结果的差异。二是虽然度量最终结果与标准结果较为接近,但其内部数据与案例存在较大差异。三是不同度量员度量结果的差异。四是同一个度量员对相同软件的多次度量,结果仍然难以保证一致。图1是度量结果平均值的统计数据。其中,度量结果可以保持在23.2%的偏差率,但是与度量结果内部数据差异竟高达29.8%。

1.2 一致性因子

经过多次度量实践,并对其结果统计分析,我们发现,度量不一致现象产生的原因主要有三大类12个。解决好这三大类,就可以解决大部分的不一致问题。以三年来多名度量员多次度量《课程注册系统》[4]的结果为例,对不一致原因和发生次数进行统计。统计分析表明:软件的结构、功能过程以及感兴趣对象等因素对度量结果的影响最大。而这几个方面都属于技术层面,在这里我们称之为技术因子。

2 技术因子

2.1 结构因子

结构因子包括软件的层次和对等构件。层次和对等构件的划分在度量活动中起很大的作用[4]。

首先,结构因子是确定度量范围的需要。在COSMIC方法中,软件度量的前提是在一个独立的软件,或者是某一个软件的“层”。其次,只有识别出正确的软件结构才能准确识别出数据移动,因为数据移动的边界存在于软件之间或者层之间。最后,结构因子利于确定度量边界和识别功能用户[6]。根据功能用户的定义,处于边界外的功能性用户才可能被识别为功能用户。也就是说,根据层划分出了边界,而功能用户就在边界之外。

2.2 功能过程因子

功能过程是由一组唯一的、内聚的、可独立执行的数据移动组成[1]。每一个功能过程,都反映了功能用户的一个具体有效的功能。功能过程的识别是度量过程的关键。

值得注意的是不同的粒度级别下,所能体现出的候选功能过程是不同的。同时,功能过程的识别反过来也反映了度量过程中的粒度级别的确定。COSMIC方法中标准的粒度级别是功能过程级别,这一点在识别功能过程时一定要明确。功能过程是软件对用户需求的响应,软件处理的事务总是由一个或多个功能过程来完成。此外,功能过程的识别和功能用户的识别相互依赖,因此,功能过程的识别对度量的最终结果影响较大。

度量实践表明,只要功能过程的识别相同,其度量结果的偏差总是可以接受的。

2.3 感兴趣对象因子

感兴趣对象是从FUR的角度所识别出来的任何事物,可能是具体的事物,也可能是的概念性对象或概念性对象的一部分,它是软件要处理的和/或要为之存储数据。感兴趣对象的识别对于度量结果影响非常大。COSMIC方法中的“数据移动”移动的是单个数据组,因此我们需要对数据组进行分析。其中,最关键的是要确定这些属性是否是关于一个“感兴趣对象”的,因为是“感兴趣对象”决定了COSMIC方法所定义的“数据组”的数量。例如,如果输入到一个功能过程中的数据属性是三个独立的感兴趣对象的属性,那么,我们需要识别出三个独立的Entry数据移动。

3 技术因子的控制

3.1 结构因子的控制

控制结构因子指的是软件结构正确的划分,包括正确识别“层”和对等构件[7]。正确的软件结构划分要结合其自身特点,还可以参考软件功能需求目录级别,或者借助软件的WBS来划分结构[6]。对于面向对象的软件,参考自身的构件图也是一种不错的方法。

1) 划分结构的特点。在实践中,总结出了结构划分的一些特点:一是结构划分必须依据软件的体系结构和功能。二是结构划分应首先澄清对层次和对等构件的认识。三是结构划分应该根据功能用户的识别进行验证。

2)我们可以参考其构件图来划分面向对象的软件[7]。对于面向对象的软件,构件图的文字说明文档包含:构件图综述、构件图中的构件描述、构件图中的关系描述和其他与构件图有关的说明。从总体上,构件图描述构件间的依赖关系、设置该构件图的目的等。

3.2 功能过程因子的控制

功能过程总是被触发事件触发,它和触发事件之间存在一定的关系。梳理清它们之间的关系可以帮助识别功能用户。另外,使用流程图也可用来识别功能过程。

1)触发事件与功能过程不是一一对应关系。一个特定的事件可能触发一个或多个并发执行的功能过程,一个特定的功能过程可能由多个事件触发。在一些FUR中,当一个功能过程可以被不同的触发事件触发时,功能的描述可能出现在不同的地方,度量员一定要注意区分。

2)借助流程图识别功能过程。功能过程是软件响应用户需求的过程,同样流程图描述的也是软件处理事务响应用户需求的过程。从这个意义上来说,借助流程图有助于识别功能过程,甚至可以分析出功能过程的要素。例如可以从外部项识别出功能用户,从数据流向识别数据移动等。

3.3 感兴趣对象因子的控制

感兴趣对象因子的控制指的是感兴趣对象的识别。由于感兴趣对象可能是具体的事物也可能是概念性对象或概念性对象的一部分,因此单从实体对象方面考虑是不够的。我们可以通过以下方法识别:

1)通过比较数据属性来识别感兴趣对象。识别感兴趣对象最关键的是要确定这些属性是否是关于一个“感兴趣对象”的,因为是“感兴趣对象”决定了COSMIC方法所定义的“数据组”的数量。例如,如果输入到一个功能过程中的数据属性是三个独立的感兴趣对象的属性,那么,我们需要识别出三个独立的Entry数据移动。

2)根据数据需求来识别感兴趣对象。每一个数据组应该与FUR中的一个感兴趣对象直接相关。数据组必须是唯一的,并且可以通过它的数据属性来区分。同时,一个数据组应该在支持该软件的计算机系统中物化,也就是软件实际用到了该数据组。实践中,数据组的物化有很多种形式。例如,作为持久存储设备上的一个物理记录结构(文件、数据库表、ROM存储器,等等)。数据组是物化形式是实际可见的,而在规格说明书中对数据描述时,往往可以表达出数据的来源和接受者等信息。通过这些信息可辅助识别出数据属性和数据组,从而进一步识别出感兴趣对象。

3) “较大”感兴趣对象原则。当多次同时出现若干数据属性时,即使它们属于不同的感兴趣对象,我们也应当尝试将其抽象为“较大”的感兴趣对象。从软件开发的角度来看,这样可以减少数据组的重复度量,使得度量结果更为合理。

4 结束语

软件结构、功能过程和感兴趣对象识别的主观性较强,对度量结果的影响很大。文章通过对COSMIC方法的研究和实际度量,分析了规模度量中一致性问题的起因,重点从技术层面分析和论述了软件结构、功能过程和感兴趣对象,并给出了相应的控制方法。这些方法有助于度量员理解COSMIC方法,从而指导和规范度量过程,提高度量结果的一致性。

参考文献:

[1]A bran, A., Desharnais, J.-M., Oligny, S., St-Pierre, D. and Symons, C., COSMIC FFP – Measurement Manual (COSMIC implementation guide to ISO/IEC 19761:2003), ?cole de technologie supérieure – Université du Québec, Montréal, Canada, 2003[DB/OL].http://www.gelog.etsmtl.ca/cosmic-ffp/manual.jsp.

[2] ISO/IEC 19761. Software Engineering – “COSMIC-FFP - A functional size measurement method,”[C].International Organization for Standardization-ISO,Geneva,2003.

[3] 周鹏. COSMIC度量一致性的研究与实践[D].长沙:国防科学技术大学硕士论文,2011.

[4] ISO/IEC 19761,COSMIC-FFP Measurement Method Proposed Measurement Etalon[C].C-Registration System,2007.

[5] Kassab M,Ormandjieva O,Daneva M,et al.Non-Functional Requirements: Size Measurement and Testing with COSMIC-FFP[Z].

[6] Zhou Peng,He Hong Jun.Identification of the software layers in COSMIC-FFP[C].IEEE BTMC vol Ⅲ,Chongqing,December 13-14,2010.

[7] Barry Boehm, Chris Abts.Software Development Cost Estimation Approaches – A Survey[C].Los Angeles, CA 90089-0781,2000.