APP下载

统一建模语言的全功能点度量方法

2011-01-16计春雷

上海电机学院学报 2011年5期
关键词:用例度量规则

计春雷,肖 薇

(1.上海电机学院 电子信息学院,上海 200240;2.上海理工大学 光电信息与计算机工程学院,上海 200093)

统一建模语言的全功能点度量方法

计春雷1,肖 薇2

(1.上海电机学院 电子信息学院,上海 200240;2.上海理工大学 光电信息与计算机工程学院,上海 200093)

分析了统一建模语言(UML)主要部件和全功能点规模估算方法COSMIC-FFP主要元素之间的概念映射关系,建立了22条度量映射规则,提出了UML的全功能点度量方法,阐述了UML的全功能点度量过程,并提出了相应的度量步骤。对实例分析后表明,该方法能比较客观和有效地度量软件功能规模。

全功能点度量方法;统一建模语言;功能过程;映射规则;度量过程

全功能点规模估算方法COSMIC-FFP是第2代软件功能规模度量方法,它不仅适合于管理信息系统的功能规模度量,还适合于实时系统和多层系统的功能规模度量,已被ISO接受为国际标准(ISO/IEC 19761:2003)。该方法可在软件开发生命周期的各个阶段使用,从用户功能的视角入手,不需要调整因子,简单易行,弥补了最初功能点方法的一些缺陷[1]。

统一建模语言(Unified Modeling Language,UML)是一种用于各种应用领域的软件建模语言,其定义良好、易于表达、使用方便、功能强大,目前已成为面向对象技术领域内占主导地位的标准建模语言。

本文通过研究UML技术的主要部件(用例图、类图和顺序图)和COSMIC-FFP度量方法的主要元素(层、边界、功能用户、数据组、功能过程和数据移动等),分析了UML主要部件与COSMIC-FFP主要元素之间的概念映射关系,建立了从UML用例图、类图和顺序图到COSMIC-FFP主要元素间的22条度量映射规则,阐述了从用例图、类图和顺序图到度量结果计算的度量过程,提出了UML的COSMICFFP度量方法的度量步骤,同时给出了应用实例。

1 UML和COSMIC-FFP

UML利用模型来描述软件系统的结构、静态特征、行为或动态特征,从不同的视角为系统的架构建模形成系统的不同视图,主要有用例图、类图、顺序图等[2]。

COSMIC-FFP是一种应用于商业软件、实时系统和嵌入式系统的软件功能规模度量方法[3]。COSMIC-FFP方法通过输入(Entry)、输出(Exit)、读(Read)和写(Write)4个数据移动类别来决定软件功能规模。其度量标准单位是CFP(Cosmic Function Point,CFP),即一个数据移动。一个数据移动是一个数据组的传输,一个数据组是一个非空、有区别的、无顺序且无冗余的数据属性的集合。COSMIC-FFP中的主要元素包括:层、边界、功能用户、功能过程、关注对象和数据组等[4]。

COSMIC-FFP的度量过程分为映射和度量2个阶段,可进一步细化为8个流程,其度量步骤如图1所示。

图1 COSMIC-FFP度量步骤Fig.1 Measurement steps of COSMIC-FFP

2 UML和COSMIC-FFP的概念映射关系

利用UML建模语言实现COSMIC-FFP功能规模度量方法的关键是将UML主要视图中的重要元素映射到COSMIC-FFP方法的度量模型中。本文在文献[4-14]的基础上,研究并建立了COSMIC-FFP度量模型与UML3种主要视图中重要元素间的概念映射关系,如表1所示。

表1 COSMIC-FFP与UML概念之间的关系Tab.1 Notional relationship between COSMIC-FFP and UML

3 映射规则

表1中,COSMIC-FFP主要关注的概念都在用例图、类图和顺序图中有相应的体现[15]。本文给出UML 3种主要视图(用例图、类图和顺序图)与COSMIC-FFP主要元素之间的映射规则。

3.1 用例图的映射规则

用例图可帮助确定度量范围(所有用例的集合)、软件边界、层、功能用户和功能过程。其相关映射规则如下:

R1 应用层常处于最高层,从属层的软件可不依赖于使用它的层而独立存在。若用例A依赖用例B,但B不依赖A,则认为它们处于不同层。

R2 数据库管理系统、操作系统、设备驱动等功能性服务包通常处于单独的层中。

R3 用例图中参与者和其关联的用例之间存在边界。

R4 同一层的任何两个对等组件之间存在边界;具有从属关系的层之间存在边界。

R5 功能用户是用例图中所表示的发起功能性用例的对象,包括人和非人参与者。

R6 功能用户位于系统外部,如系统管理员、系统维护员、系统的主要使用者、使用系统提供数据的人或设备、系统控制的硬件及与系统交换数据的其他软件系统,但操作系统不被视为功能用户。

R7 功能过程存在于用例中,并且必须由外部事件触发。

R8 功能过程必须从用户功能需求(FUR)中用户的角度直接识别出来。

R9 对于每个功能用户,选取用例图中与它们直接相关联的用例(包括主要用例和扩展用例)作为功能过程的候选。

3.2 类图的映射规则

类图可用来确定COSMIC-FFP度量方法中的关注对象和数据组,相关映射规则如下:

R10 从功能用户的角度,以可识别的类为关注对象,类图中类版型为“Entity”和“Control”的类可作为关注对象的候选。

R11 每个数据组必须在用例中有明确的描述,关注对象的属性组可作为数据组的候选。

R12 所有的查询条件、查询结果和出错提示信息都识别为数据组。

R13 如果一个类同其他类之间存在继承关系,若父类是抽象类,则父类不作为数据组的候选;反之,为数据组的候选。如果一个类同其他类存在组合关系,则将整体作为数据组的候选。如果一个类同其他类存在聚集关系,若其共存亡,则将其作为一个数据组的候选;反之,为不同数据组的候选。

R14 如果一个类同其他类之间不存在组合、聚集和继承关系,且该类不是抽象类,则作为数据组的候选;反之,不作为数据组的候选。

R15 每一个数据组只能包含属于同一个关注对象的属性,如果涉及的属性属于不同的关注对象,则识别为多个不同的数据组。

3.3 顺序图的映射规则

顺序图描述了功能过程的执行步骤,反映了软件的动态行为能力规模,其相关映射规则如下:

R16 顺序图中一个有序的、完成了某个功能的消息序列具体描述了功能过程,该消息序列由称之为触发事件的某个消息触发,结束于指向功能用户或持久存储器的消息。

R17 顺序图中出现的每个实体类和每个参与者(功能用户)识别为一个数据组。

R18 顺序图中消息携带的参数(组)识别为数据组的个数等于消息参数涉及到的、不同关注对象的个数。

R19 顺序图中对象间传递的每一个消息都被看作一次数据移动,其类型可为输入、输出、读和写;其中,由功能用户穿过边界发送到内部对象的消息识别为该功能过程的触发事件。

R20 数据移动类型的判断。从功能用户到接口对象的消息为输入;从接口对象到功能用户的消息为输出;对象间传递的消息为读或写;顺序图中消息发生的条件和用例图中用例发生的前置条件可视为读的数据移动。

R21 数据移动大小的判断。以其涉及到的不同数据组的个数来计算,通常为该次数据移动的数据项所涉及到的不同关注对象的个数。

R22 消除重复的数据移动规则。在同一个功能过程中,若一个数据移动的数据组与另一个同类型的数据移动的数据组相同,则它们被识别为同一个数据移动。

4 UML的COSMIC-FFP度量方法

4.1 UML的COSMIC-FFP度量过程

图2为UML的COSMIC-FFP度量过程。该度量过程包括数据组识别阶段、数据移动识别阶段(度量功能过程的规模)和度量结果统计阶段。

图2 度量流程图Fig.2 Measurement process diagram

4.1.1 数据组识别阶段 根据实体-关系图或实体类图,利用“数据组”的识别规则识别出每一个数据组。

4.1.2 数据移动识别阶段 如图2所示,用户功能需求(FUR)中提供的各种文档的结构依次为用例图、用例、顺序图和消息。由于由若干个用例构成了每个用例图,而每个用例又由若干个顺序图来解释,故在度量某个功能过程的功能规模前,应先搞清楚顺序图和用例的关系,分析并了解该顺序图描述哪个用例图,再对用例的每个顺序图通过识别数据移动类型逐个度量。利用文献[16]中度量规则可识别出各个功能过程与消息,应用映射规则R17-R21可识别出各个数据移动类型。4.1.3 度量结果统计阶段 根据用户的软件功能规模度量需求,可以计算出某个功能过程的功能规模,也可以统计出被度量软件整体的功能规模。

当为每一个功能过程识别出其应有的所有数据移动后,将它们累加在一起就可得到这个功能过程的功能规模Size(功能过程i),即

被度量软件的整体功能规模Size(被度量软体)等于该软件全部功能过程的功能规模之和,

4.2 UML的COSMIC-FFP度量步骤

根据给出的UML主要部件与COSMIC-FFP主要元素之间的概念映射关系、映射规则与度量过程,可得出UML的COSMIC-FFP度量方法的度量步骤如下:① 由FUR和用例图确定软件的度量范围和度量视角;② 应用规则R1~R9确定软件边界、层和功能用户,同时识别出各功能过程和它们的触发事件;③ 对类图和顺序图应用规则R10~R16识别出关注对象和数据组;④ 对于描述每个功能过程的顺序图,应用规则R17-R21并根据文献[16]中所述方法和度量规则识别出该功能过程包含的数据移动个数及类型;⑤ 将度量范围内的各功能过程的功能规模(CFP)值累加,得到整个被度量软件的功能规模(CFP)值。

4.3 应用实例

本文以图书信息管理系统的一个模块作为应用实例进行分析。该系统主要包括基本业务处理、信息查询和系统维护等系统模块;系统的功能性需求主要包括系统管理员管理、图书管理员管理、图书借阅者服务等内容。图3为图书借阅者服务功能模块的用例图,它显示了图书信息管理系统为图书借阅者所提供的服务功能。

为了获得该功能模块的功能规模度量值,需要对此用例图中的“预定图书”、“查询个人信息”和“查找图书”3个用例用顺序图表示。

图3 借阅者服务用例图Fig.3 Borrower service use case diagram

先确定“借阅者服务”功能模块的度量范围是由该功能模块中指定的功能组成。由于该功能模块的功能需求属于同一个抽象层,故应用规则R1和R2可识别为一个单独的软件层;由规则R3和R4识别出用例图中的软件边界;由规则R5和R6识别出“借阅者(Borrower)”为功能用户;根据规则R7~R9识别出“预定图书”、“查找图书”和“查询个人信息”用例为功能过程,“登录系统”扩展用例也为功能过程。

为说明数据移动类型的识别方法,本文以“查询个人信息”功能过程为例进行说明。“查询个人信息”功能过程的顺序图如图4所示。

图4 查询个人信息顺序图Fig.4 Inquiry personal information sequence diagram

图4中,以规则R17识别出顺序图中的类LoginWindow和PersonInfoWindow为数据组,功能用户(Borrower)也为数据组。该功能过程起始于借阅者通过用户登录界面(LoginWindow)录入登录信息,由消息“登录系统”表示,应用规则R20识别出此为一个“输入”类型的数据移动。登录后,LoginWindow返回消息显示“登录信息”,由规则R20可知,该消息产生一个“输出”类型的数据移动。同时,LoginWindow将Borrower类实例化,产生了“实例化借阅者对象”消息,由规则R20识别出该消息是一个单独的“读”类型的数据移动;再返回给用户信息显示界面(PersonInfoW-indow),这由消息“返回借阅者信息”表示,由规则R20识别出其为一个“输出”类型的数据移动。最后,系统用“显示借阅者信息”的消息向借阅者返回借阅者信息,由规则R20识别出它也是一个“输出”类型的数据移动。

对于“登录系统”用例,由于其在“查找图书”和“预定图书”功能过程中也需使用,故由规则R22可知,该用例在度量时仅需考虑一次。

应用式(1)得到“查询个人信息”功能过程的功能规模为5CFP。同样地,得到“查找图书”功能过程和“预定图书”功能过程的功能规模分别为4CFP和6CFP。应用式(2)求得该图书信息管理系统的“借阅者服务”功能模块的总功能规模为15CFP。

5 结 语

本文较好地解决了COSMIC-FFP度量方法过于抽象、难以应用于面向对象软件系统的问题,为利用UML技术度量各种软件系统的功能规模提供了一种切实可行的解决方案,从而有利于COSMIC-FFP方法的全面推广与应用,并实现度量过程的自动化。

[1] Abran A,Desharnais J M,Aziz F.Measurement convertibility-from function points to COSMIC-FFP[C]//15th International Workshop on Software Me-asurement:IWSM2005. Montreal,Canada:Shaker Verlag,2005:227-240.

[2] 王少锋.面向对象技术UML教程[M].北京:清华大学出版社,2004.

[3] Abran A,Oligny S,Symons C R.COSMIC FFP and the world-wide field trials strategy[J].Lecture Notes in Computer Science,2001,2006:125-134.

[4] ISO/IEC 19761-2003.COSMIC full function points measurement manual v.2.2[S].[S.l.]:The Common Software Measurement International Consortium,2003.

[5] Poels G.Definition and validation of a COSMICFFP functional size measure for object-oriented systems[C]//Proceedings of the 7th ECOOP Workshop on Quantitative Approaches in Object-Oriented Software Engineering.[S.l.]:CiteSeer,2003:1-6.

[6] Jenner M S.COSMIC-FFP 2.0and UML:estimation of the size of a system specified in UML-Problems of granularity[C]//Proceedings of the 4th European Conference on Software Measurement and ICT Control.Heidelberg,Germany:[s.n.],2001:173-184.

[7] Wang Xi,Guo Liang,Miao Huaikou.An approach to transforming UML model to FSM model for automatic testing[C]//2008International Conference on Computer Science and Software Engineering.Wuhan,Hubei,China:IEEE,2008:251-254.

[8] Sellami A,Ben-Abdallah H.Functional size of use case diagrams:a fine-grain measurement[C]//2009 Fourth International Conference on Software Engineering Advances.Porto:IEEE,2009:282-288.

[9] Jenner M S.Automation of counting of functional size using COSMIC-FFP in UML[C]//12th International Workshop Software Measurement.Magdeburg,Germany:[s.n.],2002:43-51.

[10] Condori-Fernandez N,Abrahao S,Pastor O.On the estimation of the functional size of software from requirements specifications[J].Journal of Computer Science and Technology,2007,22(3):358-370.

[11] Sibertin-Blanc C,Tahir O,Cardoso J.Interpretation of UML sequence diagrams as causality flows[C]//International School and Symposium on Advanced Distributed Systems,No.5.Guadalajara,Mexico:Springer,2005:126-140.

[12] Nagano S,Ajisaka T.Functional metrics using COSMIC-FFP for object-oriented real-time systems[C]//13th International Workshop on Software Measurement.Montreal,Canada:[s.n.],2003:1-7.

[13] Top O O,Demirors O,Ozkan B.Reliability of COSMIC functional size measurement results:a multiple case study on industry cases[C]//35th Euromicro Conference on Software Engineering and Advanced Applications.Patras,Greece:IEEE,2009:327-334.

[14] Cuadrado-Gallego J J,Buglione L,Dominguez-Alda M J,et al.An experimental study on the conversion between IFPUG and COSMIC functional size measurement units[J].Information and Software Technology,2010,52(3):347-357.

[15] 计春雷,谈叶勇,宋国新.基于 UML的COSMICFFP度量方 法 [J].计 算 机 工程,2010,36(10):41-43.

[16] 计春雷,陈文辉,宋国新.UML顺序图的COSMICFFP度量方法[J].华东理工大学学报:自然科学版,2010,36(3):418-422.

UML-Based Full Function Point Measurement

JI Chunlei1,XIAO Wei2
(1.School of Electronics and Information,Shanghai Dianji University,Shanghai 200240,China;2.School of Optical-Electrical and Computer Engineering,University of Shanghai for Science and Technology,Shanghai 200093,China)

This paper analyzes the notional mapping between main components of unified modeling language(UML)and the method of main elements of full function point(COSMIC-FFP),and establishes 22measurement mapping rules.It proposes a full function point(FFP)method based on UML,explains the measurement process from an FFP method based on UML.The COSMIC-FFP measurement steps based on UML are proposed,and an example is presented.Experimental results show its effectiveness and objectiveness in evaluating software functions.

full function point measurement method;unified modeling language(UML);function process;mapping rules;measurement process

TP 311.52

A

2095-0020(2011)05-0319-06

2011-08-22

上海电机学院重点建设学科项目资助(07XKJ01)

计春雷(1964-),男,教授,博士,专业方向为软件度量技术,E-mail:jicl@sdju.edu.cn

猜你喜欢

用例度量规则
鲍文慧《度量空间之一》
撑竿跳规则的制定
模糊度量空间的强嵌入
UML用例间包含关系与泛化关系的比较与分析
UML用例模型中依赖关系的比较与分析
数独的规则和演变
迷向表示分为6个不可约直和的旗流形上不变爱因斯坦度量
联锁软件详细设计的测试需求分析和用例编写
從出土文獻用例看王氏父子校讀古書的得失
让规则不规则