面向用户的柔点柔变范围定量度量技术

2014-12-02 01:21申利民王俊飞杨永涛
计算机集成制造系统 2014年10期
关键词:度量变性部件

申利民,王俊飞,杨永涛

(燕山大学 信息科学与工程学院/河北省计算机虚拟技术与系统集成重点实验室,河北 秦皇岛 066004)

0 引言

软件正在向网络化、服务化、智能化和开放化方向发展,外部应用环境和用户需求的多变性,迫使软件频繁变更,维护成本和时间急剧增加。软件工程专家积极探索,将柔性软件系统(Flexible Software System,FSS)引入软件领域,分离用户稳定需求和变化需求,使用户能够高效低耗地动态调整软件,以应对变化。软件柔性已经作为软件质量的重要属性,定量的软件柔性度量对软件的设计、控制、评估和应用具有重要的意义。

目前,国外主要从软件自身的体系结构、软件编程规范和软件应用领域来分析和度量软件的柔性。2006年,Amnon H.Eden和Tom Mens提出用演化复杂度来度量软件的柔性,从编程规范(面向对象和面向过程)、体系结构(数据共享,管道、过滤器,抽象数据类型)和设计模式来比较软件的柔性[1];2011年,Wang Song提出一个面向企业资源规划(Enterprise Resource Planning,ERP)系统的软件柔性评估模型,该模型细化了指标体系,分为表示灵活性、业务灵活性和设计灵活性[2]。基于软件编程规范的研究出现在文献[3],它从面向对象角度分析和度量软件柔性;基于软件制造领域柔性的研究出现在文献[4],它分析了在柔性制造系统中柔性的度量方法。

在国内,柔性研究者主要从面向用户的角度出发分析和度量柔性,关注用户界面给用户提供的柔性。将软件内在的柔性转换为面向用户的柔性更能体现柔性的价值,更能直接地满足用户需求的变化,是用户最关心的柔性。2004年,申利民和穆运峰首次提出了软件柔性的概念,将柔性分为四个层次的柔性,并提出了以柔点、柔力和柔距度量软件的柔性[5]。在文献[5]的基础上,申利民完善了软件柔性度量,提出了以柔点为核心的软件柔性定量度量模型[6-9]。

国内面向用户的柔性度量逐步形成了以柔点操控难度和柔点柔变范围为核心度量属性的柔性度量体系。梁东魁提出用功能规模单元作为度量柔点柔变范围的单位[10],并没有考虑柔点变化传播的影响。就目前软件面向用户的柔点柔变范围的度量理论领域来看,存在以下问题:①软件柔性变化描述不足,缺乏模型支持;②面向用户的柔点柔性变化产生的配置传播考虑欠缺,使柔点柔变范围度量不够精确;③面向用户的柔点柔变范围度量过程粗糙,可操作性差。

针对上述问题,借鉴软件产品家族中的变化性建模方法[11-13],分析软件中的柔性变化资源,参照软件中变更传播[14-17]的影响分析,考虑柔点变化产生的配置传播影响,利用改进的功能点分析法度量柔点变化影响的功能点部件。在以上分析的基础上,结合面向用户柔点的特点,给出柔变范围度量模型中的度量要素,包括度量实体、相关实体、度量属性、度量指标和度量方法。下面介绍面向用户的柔点柔变范围度量模型。

首先,介绍柔变范围度量模型中的三个主要方法,包括:①构建软件柔变性模型,表示软件柔性变化;②搭建柔点变化传播影响图,分析柔点变化传播影响;③改进功能点分析法,度量柔点变化影响的功能点部件。然后,结合面向用户柔点的特点,给出面向用户的柔点柔变范围度量模型,分析度量模型要素。最后,利用该模型度量软件实例,分析柔点柔变范围。

1 软件柔变性模型

软件柔变性模型是从面向用户的角度出发,对软件柔性变化的表示,柔变性概念模型包括柔点、柔变点、柔变项以及柔变性依赖和约束关系。

1.1 柔变性模型相关概念

1.1.1 柔性和柔变性

(1)柔性 指在保持基本软件特征不变的条件下,在外界的作用、刺激和驱动下,软件功能、结构和行为能够容易地、重复地、可逆地、和谐地进行变化而不损坏、不失效的属性[5]。软件柔性包括软件的柔变性和操控性。

柔变性即柔性变化性,是软件为了满足需求变化,通过自身配置机构调整,使软件的功能、结构和行为能够进行的可重复的、可逆的、和谐的而不损坏或失效的改变的性质,它反映了软件适应需求变化的范围,其度量指标是柔变范围。

(2)柔变范围 指由软件柔点引发的软件功能发生的最大柔性变化范围,反映了柔点影响的软件功能规模。

(3)操控性 即用户可操控性,是软件可被用户操控的性质。操控性反映了软件用户完成软件规定操作的难易程度,其度量指标是操控难度。

(4)操控难度 操控难度是在柔点处引发软件柔性变化需要的最小用户操控能力,反映了用户操作该柔点的难易程度。

(5)柔变范围和操控难度关系 柔变范围和操控难度是度量软件柔点柔性大小的两个主要因子。软件柔点柔变范围越大,操控难度越小,柔点柔性越大;反之,柔点柔变范围越小,操控难度越大,柔点柔性越小。

1.1.2 变化性和柔变性

(1)软件变化性 指为了适应外界环境和用户需求的变化,对软件进行调整,而使软件发生变化的性质。软件的变化性主要体现在两方面:①通过调整软件自身的配置机构满足外界需求,使软件形态发生的变化,软件自身不需要进行再次开发;②通过变更软件自身结构和代码满足外界需求,而使软件形态发生的变化,软件需要进行再次开发。

(2)变化性和柔变性的关系 软件变化性包括软件自身配置机构调整产生的变化性以及变更软件结构和代码产生的变化性。柔变性是软件自身配置机构调整产生的变化性,是软件变化性的一部分。

1.1.3 柔点、柔变点、柔变项、柔变性依赖和约束

(1)柔点 软件用户界面上能引起软件柔性变化的一个配置点。如果柔点中的柔变项集合能被增添、删减或修改,则称柔点是开放的,否则是封闭的。

柔点具有如下特征:

1)用户利用柔点来传达用户需求的变化,实现需求的后期绑定。

2)柔点是面向用户柔性的设计和度量的最基本单元。

3)在柔点处,用户与软件交互作用,用户将需求经过柔点传递进入系统,触发软件柔性机制,使软件功能、行为和结构发生柔性变化。

按照柔点形变的影响范围,将柔点的类型划分为[5]:

1)孤立柔点 该柔点形态的变化不影响其他柔点的柔性,其他柔点的形态变化也不影响该柔点。

2)受控柔点 该柔点的影响范围受其他柔点的影响。

3)控制柔点 该点的形态变化会影响其他柔点的柔性,能增加或减少柔点,调整其他柔点的柔性。

(2)柔变点 软件中用户可识别和可发生柔性变化的一个功能。如打印预览功能中不同的用户设置、打印预览显示不同。

(3)柔变项 在软件柔点处,用于表达用户变化需求的、用户可识别、可选择的、可改变功能的功能操作项。如打印设置功能中用户可以动态选择的列,每个可供用户选择的列即为柔变项。

(4)柔变性依赖 柔点和柔变项之间的选择关系。选择关系表现为强制和可选关系。强制关系表现为在某种约束下,用户在柔点处必须进行选择的柔变项;可选关系表现为用户在柔点处可以不选、选一个或选多个柔变项。

(5)柔变性约束 柔变性约束关系的表现有三种形式:

1)柔变项之间的需要和互斥关系。

2)柔变项和柔点之间的需要和互斥关系。

3)柔点之间的需要和互斥关系。

其中,针对1),柔变项需要关系指一个柔变项能否被选择,取决于另一个柔变项是否已经选择;柔变项互斥关系指两个柔变项不能同时被选择,只能选择其中一项;2)和3)的需要和互斥关系类似1)。

1.1.4 柔点、柔变点和柔变项之间的关系

在柔变性模型中,柔点、柔变点和柔变项是体现软件柔变性的重要模型元素。柔点、柔变项和柔变点之间的关系如图2所示。

在软件用户界面上,用户在柔点处通过选择柔变项完成对柔变点的配置,在运行过程中,柔变点绑定选择后的柔变项,实现柔变点的多种方式显示。柔点、柔变项和柔变点三者之间相互联系、相互支持,协作实现软件的柔变性。

下面用软件中常有的打印设置功能分析三者之间的关系。

对于报表打印设置功能,用户可以通过软件提供的打印设置界面动态选择所需要打印的列,打印设置功能为柔点,可以被动态选择的列为柔变项,通过打印设置后,打印的形式和预览界面会相应地发生变化,打印预览功能为柔变点。用户通过打印设置柔点动态选择柔变项的列,配置相应的打印预览柔变点,在运行过程中,打印预览柔变点动态绑定已被选择的柔变项,实现打印预览界面的随需变化。

1.2 基于扩展的统一建模语言柔变性建模

软件的柔变性模型从用户的角度出发,主要对软件的领域需求进行建模和描述。软件的领域需求建模体现为能使用明确的模型元素描述软件的稳定部分和变化部分。软件稳定部分可以利用统一建模语言(Unified Modeling Language,UML)进行建模,而软件的变化部分则不能得到UML 很好的支持。为了解决柔变性模型中柔点、柔变点、柔变项模型元素与柔变性依赖约束关系的描述问题,需要扩展UML来解决该问题。

在柔变性建模中引入用例模型,有如下原因:

(1)图形化表述的用例模型有利于开发者描述需求,适合用户与开发者有效沟通需求。

(2)用例模型从用户的视角描述软件,更易于用户了解软件系统。

(3)用例模型能更好地描述软件功能的变化,有效支持对软件柔变性的描述。

1.2.1 柔变性模型的组织形式

一个柔变性模型需要描述柔点、柔变点、柔变项、柔变性依赖和柔变性约束。柔变性模型利用扩展的用例模型表示柔点、柔变点和柔变项,通过命题逻辑标识柔变性依赖和柔变性约束关系。柔变性模型由扩展的用例模型和柔变性约束模型两部分组成,如图2所示。

1.2.2 扩展的用例模型

扩展的用例模型(如表1)引入以下几种模型要素支持柔变性:

(1)柔点用例 表示该用例是用户可以进行动态配置的用例。

(2)柔变点用例 表示该用例是可以随需变化的用例。

(3)柔变项用例 表示该用例是被柔点进行选择的功能项用例。

(4)配置关系 表示柔点用例对柔变点用例的配置关系。

(5)依赖关系 表示柔点用例和柔变项用例之间的选择关系(如表2)。

在扩展的用例模型中,用柔点用例、柔变项用例和柔变点用例表示柔变性模型要素柔点、柔变项和柔变点,用配置关系和依赖关系分别表示柔点和柔变点的配置关系以及柔点和柔变项的选择关系。

表1 扩展的用例描述

表2 扩展的柔变性依赖关系UML描述

1.2.3 柔变性约束关系模型

软件的柔变性约束关系描述了模型要素柔点、柔变点和柔变项之间的互相约束关系,软件的柔变性约束关系模型如图3所示。

柔变性依赖约束机制是基于命题逻辑的。一个柔变项从被识别出开始,它在生命周期内存在2种状态:被选择状态和未选择状态。将柔点记为FP,将柔变项记为V。

(1)未变项状态 用谓词作用于柔变项来表达该柔变项所处的状态:以T表示谓词“柔变项被选择”,则柔变项V被选择可表示为T(V),T(V)的取值为

(2)柔变性约束

对柔变性约束规则中的柔变项约束、柔变项与柔点约束、柔变点约束也可以用命题逻辑进行描述,用R(Vi,FPk)表示柔点FPk选择柔变项Vi。

柔变项约束表示FPk中的柔变项Vi和FPm中Vj间的柔变项约束,R(Vi,FPk)requireR(Vj,FPm),R(Vi,FPk)excludeR(Vj,FPk)可以分别定义如下:

R(Vi,FPk)→R(Vj,FPm);l<i<n,l<j<n,i≠j,n,m为柔点FPk和FPm中的柔变项总数;

R(Vi,FPk)→R(Vj,FPm);l<i<n,l<j<n,i≠j,n,m为柔点FPk和FPm中柔变项总数。

柔变项与柔点约束表示在柔点FPk中的柔变项Vi和柔点FPm的约束,R(Vi,FPk)requireFPm,R(Vi,FPk)excludeFPm,可以分别定义如下:

R(Vi,FPk)→(Vj(R(Vj,FPm)),R(Vi,FPk)∨—∀Vj(R(Vj,FPm));

Vi∈FPk,Vj∈FPm,1≤i≤nl,l≤j≤n2,k≠m,nl,n2分别为柔点FPK和FPm中柔变项的总数。

柔点约束表示在柔点FPk和柔点FPm间的柔点约束,FPkrequireFPm,FPkexcludeFPm可以分别定义如下:

∀vi(R(Vi,FPk))→∀vj(R(Vj,FPm));

∀vi(R(Vi,FPk))→∀vj(R(Vj,FPm));

Vi∈FPk,Vj∈FPm,1≤i≤nl,l≤j≤n2,k≠m,nl,n2分别为柔点FPK和FPm中的柔变项的总数。

在柔变性模型中,其通过形式化表达柔变性约束关系,为柔变性约束模型提供了很好的表示机制。

1.2.4 建模过程

(1)柔变性元素识别

软件需求分析是一个精化需求和识别柔变性的过程,其通过收集、分析和评估软件中涉及的领域知识,客观抽取并分类领域需求的稳定需求和可变需求。依据柔点识别规则,对可变需求中的柔点进行识别和标识,建立功能需求矩阵,分析柔点、柔变项和柔变点之间的关系。

从用户可认知和可识别的角度出发,面向用户柔点识别规则如下:

1)应用程序边界内部的功能;

2)用户可识别、可配置的功能;

3)功能可以发生柔性变化。

软件的功能需求矩阵表如表3所示。表中:SR为稳定需求;CR 为可变需求;R 为需求;CT 表示可变需求所属可变类型,CT1代表需求属于柔变点,CT2代表该需求属柔点;X 表示需求不具有当前列的类型;DT 为表示依赖类别,DT1表示可变的,DT2表示复合的,即包含强制的和可变的;UE 表示用例是否可扩展,UE1表示开放的,UE2表示封闭的。

下面以软件中常用的报表打印设置功能需求为例进行分析。

打印设置属于可变需求(CR),因为不同用户可以有不同的打印设置;打印设置属于柔点(CT2),因为用户可以通过打印设置功能动态选择将要打印显示的列,打印设置是一个配置点;打印设置依赖类别属于可变的(DT1),因为不同用户通过柔点可以选择不同的列,没有必须要强制选择的列;打印设置扩展性属于封闭的(UE2),因为可以选择的列是固定的,一般不能添加、修改或增加列。因此,打印设置功能对应的功能需求矩阵如如表4所示。

表3 功能需求矩阵

表4 打印设置的功能需求矩阵

分析打印设置柔点,柔变项是打印设置可以选择的列,柔变点是打印页面预览功能。柔点、柔变项和柔变点的关系如表5所示。

表5 打印设置柔点、柔变项和柔变点的关系

(2)确定用例图 根据功能需求矩阵,结合用例图特点,确定扩展后的用例图。

(3)分析和描述柔变性约束 根据柔变性约束模型进行软件柔变性约束分析和描述。

2 柔点变化传播影响图

当用户需求发生变化时,用户可以通过柔点操作满足需求。对于一些小粒度的需求变化,用户操作柔点后的影响可能局限在自身柔点作用的范围。而对一些功能较为复杂的用户需求变化,用户操作柔点后的影响可能会影响相关的柔点。如果将软件中的柔点当作一个节点,将它们之间的相互影响看作一个边,将软件抽象为一个网络,则软件柔点变化的“涟漪效应”可以看作柔点变化产生的影响在网络节点间的传播过程。这种软件柔点变化产生的涟漪效应称作柔点变化传播影响。

2.1 柔点变化传播影响图

定义1 软件的柔点变化传播影响图表示为一个带权有向简单图Gw=(V,E)。其中:V表示节点的集合,V中的每个节点Vi表示软件中的一个柔点,V包含起始节点Vs和受影响节点Vf两类节点,Vs表示发生变化的起始柔点,Vf表示受到Vs变化影响的柔点;E是边的集合,E中的每个元素〈vi,vj〉是一个有序对,当且仅当vi变化影响到vj发生变化,〈vi,vj〉∈E。

2.2 柔变项约束邻接矩阵

定义2 柔变项约束邻接矩阵CMnxn表示柔变项之间的约束。在该矩阵中,每一个柔变项代表一个行和列。如果一个柔变项Vi和另一个柔变项Vj存在约束关系,则CM[i,j]=1,形式化表示为CMn×n=(Dij)n×n,每一个元素定义为

如果CM[i,j]元素的值为1,则代表存在一个约束,即Vi约束Vj;反之,两个柔变项之间不存在约束。

假设V是软件中柔变项的集合,包含V1,V2,V3,…,Vn,定义柔变项约束邻接矩阵为

式中dij=rdij+edij。

在上述等式中,“+”代表一个逻辑操作符,1+1=1,1+0=1,0+1=1,0+0=0。其中:CM=rCm+eCm,eCm为互斥约束矩阵,rCm为需要约束矩阵。

2.3 柔点变化传播影响图构造过程

输入:柔点i。

输出:柔点i的柔点变化影响传播图。

步骤1 根据柔变性模型构造柔变项约束邻接矩阵。

步骤2 将柔点i作为起始节点,加到柔点变化影响传播图。

步骤3 在柔变项约束邻接矩阵中,找到柔点i可以选择的柔变项,首先置空V_Set,然后放入V_Set柔变项集合中。

步骤4 在柔变项约束邻接矩阵,首先置空S_Set,然后遍历V_Set集合中的柔变项,找到与集合中柔变项存在依赖约束的柔变项Vr,然后找到Vr从属于的柔点j。

如果柔点j不在柔点变化影响传播图,则将柔点j作为终节点,放入S_set节点集合,然后将柔点j加入柔点变化影响传播图中;否则不做处理。

步骤5 循环遍历S_set柔点集合,如果非空,则将S_set集合中的节点当作起始节点的柔点i,转步骤3;否则结束。

3 改进的功能点分析法

为了定量测量柔点柔变范围,引入功能点分析法(Function Point Analysis,FPA),对柔点变化产生的影响进行计算。

FPA 是一种有效、可靠的软件规模度量方法,用以表达软件功能尺寸的度量值[18]。FPA 是从用户角度出发度量软件规模的一种方法,它容易定位和识别软件的功能变化,度量方法和技术无关,易于用户接受。为了更好地适合软件面向用户的柔点柔变范围的定量度量,对FPA 法做如下改进:

(1)补充图形界面元素计算规则。虽然功能点定义了区别各种功能点部件和元素的识别和计算规则,但对图形界面元素的计算规则并没有清晰的说明,为了使图形界面元素计算明确化,补充了用户界面元素的计算规则。

(2)改进FPA 步骤,易于度量面向用户的柔点柔变范围。为了使FPA 法适合面向用户的柔点柔变范围度量,在功能点部件识别的基础上,结合柔变性模型元素的特点,找出柔点对应的数据功能点和柔变点对应的事务功能点。

3.1 用户界面元素计算规则

用户界面元素指软件界面上提供用户输入、查询、显示数据的元素,如输入框、下拉列表等;用户界面元素计算规则指用户界面元素到对应的数据元素个数的映射规则。对于软件用户界面元素,结合用户界面的元素特点和原功能点数据元素计算规则,将用户界面主要元素计算规则总结如表6所示。

3.2 功能点计数相关规则

根据原功能点复杂度计算矩阵以及复杂度对应的功能点计数矩阵[19],表7~表10给出了柔变部件复杂度判定矩阵和柔变部件柔变度的判定矩阵。

表6 图形用户主要界面元素计算规则

表7 EI柔变级别判定矩阵

表8 EO 和EQ 柔变级别判定矩阵

表9 ILF和EIF柔变级别判定矩阵

表10 柔变部件柔变度

续表10

3.3 改进的功能点分析法

(1)确定软件应用程序边界。确定应用程序边界是指将正在被测量的应用程序与用户域及其他应用程序分开。

(2)确定数据部件以及数据部件要素。根据原功能点数据文件和用户界面元素判定规则[19],确定内部逻辑文件、外部接口文件以及相应的数据元素和数据记录。

(3)确定事务部件以及事务部件要素。根据原功能点数据文件和用户界面元素判定规则[19],确定外部输入部件、外部输出部件、外部查询部件以及相应的数据元素、访问文件。

(4)结合柔变性模型元素的特点,找出软件中柔点对应的数据功能点和柔变点对应的事务功能点。

4 柔变范围度量模型

柔点柔变范围是柔点变化后软件受到的最大功能影响规模。柔变范围度量需要定位软件中的柔点,考虑柔点变化影响,度量柔点影响规模。构建软件柔变性模型,可以确定软件中的柔点、柔变项和柔变点;分析柔点变化传播影响图,能够定位单个柔点变化影响的关联柔点;改进功能点分析法,适合度量柔点影响的柔变部件的柔变度。单个柔点的影响范围可以看作柔点自身影响的数据功能点和其配置的柔变点对应的事务功能点部件的功能点计数总和。考虑到柔点变化传播的影响,一个柔点的柔变范围为所有受影响的单个柔点影响范围之和。

基于上述柔点分析,表11给出了柔点柔变范围度量模型要素。

表11 面向用户的柔变范围度量模型要素

下面将详细说明上述基本度量和派生度量指标和计算方法。

4.1 度量模型基本要素

(1)面向用户柔点

面向用户的柔点是柔变性模型中的柔点,可以用一个五元组描述,包括柔点用户级别、柔点级别、柔点操控难度、关联柔点组和柔点作用对象。其中,柔点用户级别、柔点级别、柔点操控难度反映了柔点的操控复杂度,柔点作用对象和关联柔点组反映了柔点变化的影响范围。

1)柔点用户级别 低级用户、高级用户和开发级用户。

2)柔点操作级别 自适应级柔点、低级用户柔点、高级用户柔点和开发级用户柔点。

3)柔点操控难度 指定量描述用户操控柔点难度的数值。

4)关联柔点组 与柔点相关联的所有柔点集合。

5)柔点作用对象 软件用户界面上用户作用的对象,该对象包括用户作用的事务部件和数据部件。柔点作用对象包括功能类型、逻辑事务组和逻辑文件组。其中:功能类型∶∶=数据柔点|表示柔点|流程柔点|环境柔点|外部服务柔点;逻辑事务组是柔点变化后,受影响的逻辑事务组;逻辑文件组是柔点变化后,受影响的逻辑文件组。

(2)面向用户的柔变范围、柔变部件、柔变度和柔变级别

1)面向用户的柔变范围 柔点在用户操控下或触发下软件功能发生的最大柔性变化范围,是柔点调整、作用和影响软件的范围,是受该柔点影响的所有柔变部件的功能点计数之和,即柔变量。

2)柔变部件 指受柔点影响的、发生柔性变化的功能部件,受影响的部件类型为数据部件和事务部件,包括外部输入部件、外部输出部件、外部查询、内部逻辑文件和外部接口文件。

3)柔变度 指柔变部件能够发生的最大柔性变化量度,是柔变部件的柔变级别对应的功能点计数。

4)柔变级别 指柔变部件能够发生最大柔性变化的高中低程度,分级为(低,中,高)=(L,M,H),不同类型的柔变部件的柔变级别对应一定柔变元素的个数。

4.2 度量模型度量指标

柔变范围度量指标层次包括基本度量和派生度量,基本度量包括Sei,Seo,Seq,Silf和Seif,派生度量包括Si,具体定义如下:

定义3 外部输入柔变部件柔变量表示为

式中:Sei表示柔点对应的所有EI柔变部件的柔变度和,NeiL表示低级EI柔变部件数,WeiL表示低级EI柔变部件柔变度,NeiM表示中级EI柔变部件柔变度,WeiM表示中级EI柔变部件柔变度,NeiH表示高级EI柔变部件柔变度,WeiH表示高级EI柔变部件柔变度。

定义4 外部输出柔变部件柔变量表示为

式中:Seo表示柔点对应的所有EO 柔变部件的柔变度和,NeoL表示低级EO 柔变部件数,WeoL表示低级EO 柔变部件柔变度,NeoM表示中级EO柔变部件数,WeoM表示中级EO 柔变部件变柔变度,NeoH表示高级EO 柔变部件,WeoH表示高级EO 柔变部件柔变度。

定义5 外部查询柔变部件柔变量表示为

式中:Seq表示柔点对应的所有EQ 柔变部件的柔变度和,NeqL表示低级EQ 柔变部件数,WeqL表示低级EQ 柔变部件柔变度,NeqM表示中级EQ柔变部件数,WeqM表示中级EQ 柔变部件柔变度,NeqH表示高级EQ 柔变部件数,WeqH表示高级EQ 柔变部件柔变度。

定义6 内部逻辑文件柔变部件柔变量表示为

式中:Silf表示柔点对应的所有内部逻辑文件柔变部件的柔变度和,NilfL表示低级ILF 柔变部件数,WilfL表示低级ILF 柔变部件柔变度,NilfM表示中级ILF 柔变部件数,WilfM表示中级ILF柔变部件柔变度,NilfH表示高级ILF 柔变部件数,WilfH表示高级ILF柔变部件变化度。

定义7 外部接口文件柔变部件柔变量表示为

式中:Seif表示柔点对应的所有外部接口文件柔变部件的柔变度和,NeifL表示低级EIF 柔变部件数,WeifL表示低级EIF 柔变部件柔变度,NeifM表示中级EIF 柔变部件数,WeifM表示中级EIF柔变部件柔变度,NeifH表示高级EIF 柔变部件数,WeifH表示高级EIF柔变部件变化度。

定义8 柔点柔变范围,即柔点柔变量表示为

式中:Si表示柔点的柔变范围,即所有受影响的柔变部件的柔变度之和;Seif,Silf,Sei,Seq和Seo的定义同上。

4.3 柔变范围度量模型度量过程

面向用户的柔变范围度量过程如图4所示。

(1)软件柔变性模型建模

依据软件相关的文档和软件用户界面,按照软件柔变性模型建模过程构建软件的柔变性模型,识别出软件的柔点以及柔变性元素之间的约束关系。

(2)软件柔点变化传播影响图搭建

依据软件柔变性约束模型确定软件的柔变项约束邻接矩阵,按照柔变项约束邻接矩阵确定软件所有柔点对应的柔点变化传播影响图。

(3)功能点分析阶段

1)根据改进的功能点分析法,找出软件柔点以及柔变点对应的功能点部件。

2)确定柔点作用对象中的逻辑文件组,即柔点对应的数据功能点部件。

3)确定柔点作用对象中的逻辑事务组,即柔点配置的柔变点对应的事务功能点部件。

4)依据柔变级别和功能点计数判定矩阵,确定柔点柔变部件的柔变度。

(4)度量阶段

1)确定软件度量的柔点。

2)确定柔点对应的柔点变化传播影响图。

3)依据式(1)~式(5)确定度量柔点以及受变化影响的柔点对应的柔变部件的柔变度。

4)依据柔点柔变范围计算式(6)计算柔点柔变范围,即柔点柔变量。

5 实例验证及分析

以河北省操作系统精品课程网站为例,分析该网站系统中信息发布子系统的功能,依据柔点柔变范围度量过程计算该子系统中主要柔点柔变范围。该验证过程适用于MIS软件和常用工具软件的柔变范围度量,它使用模型的主要元素,限于篇幅,部分相关元素如软件需求说明书、设计说明书、使用说明书等不作具体说明。下面给出主要度量步骤。

5.1 柔变性建模

柔变性建模阶段,主要对信息发布子系统进行分析,建立其柔变性模型。信息发布子系统的柔变性模型包括两部分:①扩展的UML 用例模型,主要利用UML模型元素表示信息发布子系统中的稳定功能和变化功能;②柔变性约束关系模型,主要利用命题逻辑描述柔变项之间的约束关系。下面给出这两个模型的构建过程。

(1)根据系统的需求说明书和设计说明书,分析该子系统提供的功能需求,建立其功能需求矩阵,如表12所示;根据软件用户界面和软件使用说明书,利用柔点识别规则找出软件中的柔点,并确定柔点、柔变项和柔变点之间的关系,如表13所示。

表13 柔点、柔变项和柔变点关系

(2)在确定软件功能需求矩阵和柔点、柔变项和柔变点的关系后,建立子系统对应的扩展的UML用例模型。扩展的UML 用例模型用扩展的UML用例图描述,该UML 模型元素如表14所示,选择管理员为参与者,其扩展的UML 用例图如图5所示。

表14 子系统UML模型元素

(3)在确定软件扩展的UML 用例模型后,搭建软件的柔变性约束模型。子系统的柔变性约束模型主要描述柔变项之间的约束关系。通过分析软件的系统需求和关系,子系统中的柔变项约束关系用命题逻辑表示如下。

R(条目1,栏目1条目显示顺序设置)→R(栏目1,栏目显示设置)

R(条目2,栏目1条目显示顺序设置)→R(栏目1,栏目显示设置)

R(条目n,栏目1条目显示顺序设置)→R(栏目1,栏目显示设置)

同理,栏目2与栏目2的条目,栏目3与栏目3的条目,…,栏目n与栏目n的条目也存在相应的关系。

5.2 建立柔点变化传播影响图

建立子系统的柔变性模型后,为了对柔点变化传播影响进行分析,首先根据柔变性约束模型,建立其柔变项邻接矩阵;然后根据柔点和柔变项的依赖关系,通过柔点变化传播影响图构建过程,构建每个柔点的柔点变化传播影响图。分析步骤如下:

(1)建立柔变项邻接矩阵

设CMnxn为柔变项邻接矩阵,柔变项集合为{栏目1,栏目2,…,栏目n,栏目1的条目1,栏目1的条目2,…,栏目n的条目n},依据柔变项依赖约束关系,得到如下矩阵。

(2)搭建柔点变化传播影响图

根据柔变项邻接矩阵,依据柔点变化传播影响图的构建过程,得到栏目显示设置柔点的柔点变化传播影响图,如图6所示。

单栏目条目显示顺序设置柔点的柔点变化传播影响图只包括自身柔点。

5.3 功能点分析阶段

在建立软件柔变性模型和分析柔点变化传播影响后,结合柔变性模型中扩展的UML用例模型,分析软件中的功能点部件,提取柔点对应的柔变部件并计算其功能点计数。分析步骤如下:

(1)信息发布子系统功能点分析

用软件中提供的单栏目条目显示顺序设置功能点部件为例,介绍在用户界面(如图7)上该功能点部件的功能点计数分析过程。

首先,根据功能点部件的识别规则,此功能点部件为输入部件EI,分析该功能点部件的数据元素类型DET。

通过软件用户界面上的显示,分析如下:

1)信息类型选择下拉列表,每次只能选择一项,表示条目信息所属的栏目,因此栏目名称作为一个数据元素类型。

2)“显示信息”按钮对排序无影响,不作为一个数据元素类型。

3)排序格式有两种,用单选框表示,根据单选框计数描述,每次只能选一个,因此排序方式为一个数据元素类型。

4)左侧的文本域栏目下有多条条目信息,在文本域中表示,文本域的内容类型都表示为条目信息的标题,因此信息条目标题记为一个数据元素类型。

5)右侧的文本域栏目下有多条条目信息,条目信息在文本域中的位置表示为其排序号,因此文本域所表示的条目排序顺序为一个数据元素类型。

6)中间的四个选择和移除按钮只是控制元素的排序,不作为输入元素,不做计算。

7)最下面的“确定排序”按钮,是用户提交自己的设置元素,作为一个数据元素类型。

根据外部访问文件识别规则,外部访问文件包括栏目信息、栏目显示设置文件、栏目条目信息和栏目条目排序设置文件。

根据上述分析,得出EI部件的复杂度和功能点计数,如表15所示。

表15 单栏目条目显示顺序设置功能点计数

根据上述分析方式,得到对柔点柔变范围计算有效的所有功能点部件的部件复杂度和功能点计数,如表16~表18所示。

表16 内部逻辑部件功能点计数

表17 外部输入部件功能点计数

表18 外部查询部件功能点计数

(2)根据柔变性模型,得出子系统存在栏目显示设置柔点Fxp1 和单栏目条目显示顺序设置柔点Fxp2两个柔点。柔点作用对象的属性如表19所示。

表19 柔点作用对象属性

(3)求出柔点柔变部件的柔变度,如表20所示。

5.4 度量阶段

在分析完软件的柔变性模型、柔点变化传播影响和柔点对应的功能点部件后,依据度量步骤计算软件柔点柔变范围。分析步骤如下:

(1)确定度量柔点,选择栏目显示设置柔点Fxp1。

(2)遍历单栏目条目显示顺序设置柔点Fxp1的柔点变化传播影响图,得到所有受影响的柔点,找到Fxp1对应的柔变部件,如下所示:

1)数据部件 栏目显示设置ILF(L),单栏目条目排序设置ILF(L)。

2)事务部件 栏目列表显示EQ(M),单栏目条目列表显示EQ(M)。

(3)根据柔点柔变部件的柔变度和柔点柔变范围计算公式,得出

栏目显示设置柔点Fxp1的柔变范围=ILF(L)×2+EQ(M)×2=7×2+4×2=22。

同理,单栏目条目显示顺序设置柔点Fxp2 的柔变范围=ILF(L)×1+EQ(M)×2=7×1+4×2=15。

5.5 柔点分析

按照上述信息发布系统柔点的度量过程,对常用软件2003 Word,2003PowerPoint,IE 8.0,2003 Excel,Adobe Reader等工具软件,以及常用教师信息管理系统、库存管理系统等MIS软件进行软件柔点柔变范围度量。由于篇幅所限,下面只给出2003 Word,2003PowerPoint和IE 8.0的柔点柔变范围表,如表21所示。常用软件柔点柔变范围统计,如图8所示。

表21 Word,PowerPoint和IE的柔点柔变范围统计表

续表21

从图8的柔点分布范围可知,大部分柔点柔变范围分布在10~17之间,少部分柔点柔变范围分布在大于17的范围之内。

从柔点类型以及柔点和柔变点关系分析,柔变范围位于10~17之间的柔点大部分属于孤立柔点或受控柔点,一般对应单个柔变点,柔点变化影响范围较小;柔变范围位于大于17范围之间的柔点,大部分属于控制柔点或柔点对应多个柔变点,柔点变化影响范围较大。

从用户操作柔点的角度分析,柔变范围位于10~17之间的柔点,操作容易,用户具有一般计算机操作知识和一般业务知识即可,适于普通用户;柔变范围位于大于17范围之间的柔点,操作困难,用户需要较强的计算机知识和业务知识,适于高级用户。

综上分析可知,柔变范围位于10~17之间的柔点,柔点变化影响范围较小,适用于普通用户操作;柔变范围位于大于17范围之间的柔点,柔点变化影响范围较大,适于高级用户操作。对柔点柔变范围分析的结果,如表22所示。

表22 柔点柔变范围分析

6 结束语

本文为了保证软件柔点柔变范围度量的准确性和可操作性,提出一种软件柔变性模型,利用扩展的UML用例模型和柔变性约束关系模型表示软件中柔变性资源,弥补了软件柔性变化表示不足,奠定了柔点柔变范围度量分析的基础;分析了软件柔点变化传播影响,应用柔变项邻接矩阵和柔点变化传播影响图,表示了软件柔点变化产生的传播影响,完善了柔变范围度量的不足,增加了柔变范围度量的准确性;改进了功能点分析方法,通过用户界面元素计数规则,确定了软件界面元素的功能点计数,修补了功能点法分析界面元素的不足,从而支持柔点柔变范围的定量度量。

最后,通过实例验证了模型的有效性和可行性。本文的柔点柔变范围度量模型有利于用户使用和扩展软件功能,方便软件设计和开发人员改善软件柔性。但模型还需进一步改进,如面向用户的界面元素的判别规则,为了提高精确度,需进一步细化和完善。

[1]AMNON H,TOM M.Measuring software flexibility [J].IEEE Proceedings Software,2006,153(3):113-125.

[2]WANG S,LIU X.A study on flexibility of ERP system based on grey evaluation model[C]//Proceedings of the 2nd International Workshop on Database Technology and Application.Washington,D.C.,USA:IEEE,2010:3-6.

[3]GEORGE K,ELENI C,APOSTOLOS A,et al.Layer assessment of object-oriented software:a metric facilitating white-box reuse[J].Journal of Systems and Software,2013,86(2):349-366.

[4]ABDULZIZ M,EI T,MUSTUFA H,et all.Analysis of performance measures of flexible manufacturing system[J].Journal of King Saud University -Engineering Sciences,2012,24(2):115-129.

[5]SHEN Limin,MU Yunfeng.Conception of software flexibility and metrics [J].Computer Integrated Manufacturing Systems,2004,10(10):1314-1320(in Chinese).[申利民,穆运锋.软件柔性的概念和度量[J].计算机集成制造系统,2004,10(10):1314-1320.]

[6]LIANG Dongkui,SHEN Limin,JIN Lei.Quantitative measurement of flexible range of user-oriented flexible point[J].Computer Engineering and Design,2010,31(15):3436-3439(in Chinese).[梁栋魁,申利民,金 磊.面向用户的柔点柔变范围的定量度量[J].计算机工程与设计,2010,31(15):3436-3439.]

[7]PENG Siwei,SHEN Limin,LIU Hui.How to measure software flexibility [J].ICIC Express Letters,2011,4(5):1089-1093.

[8]SHEN Limin,PENG Siwei,LIU Hui,et al.A test model of software flexibility based on flexible point[J].ICIC Express Letters,2011,9(5):3001-3005.

[9]NIU Jingchun,SHEN Limin,ZHENG Qun.A measurement method of software flexibility based on SOCP 2011[J].Communications in Computer and Information Science,2011,216:260-266.

[10]LIANG Dongkui,SHEN Limin,JIN Lei.Quantitative measurement of flexible range of user-oriented flexible point[J].Computer Engineering and Design,2010,31(15),3436-3439(in Chinese).[梁东魁,申利民,金 磊.面向用户的柔点柔变范围的定量度量[J].计算机工程与设计,2010,31(15),3436-3439.]

[11]PENG Xin,YU Yijun,ZHAO Wenyun.Analyzing evolution of variability in a software product line:from contexts and requirements to features[J].Information and Software Technology,2011,53(7):707-721.

[12]BABAR M,CHEN L.Managing variability in software product line[J].IEEE Software,2010,27(3):89-94.

[13]XU Liang,ZHANG Li,FAN Zhiqiang.UML-based modeling method for real-time workflow[J].Research and Development of Computer,2010,47(7):1184-1191(in Chinese).[徐 亮,张 莉,樊志强.一种基于UML 的实时工作流建模方法研究[J].计算机研究与发展,2011,47(7):1184-1191.]

[14]ZHANG Li,QIAN Guanqun,LI Lin.Change propagation simulation software based on stability analysis[J].Chinese Journal of Computers,2010,33(3):440-451(in Chinese).[张莉,钱冠群,李 琳.基于变更传播仿真的软件稳定性分析[J].计算机学报,2010,33(3):440-451.]

[15]LI Bixin,ZHANG Qiandong,SUN Xiaobing,et al.Using water wave propagation phenomenon to study software change impact analysis[J].Advances in Engineering Software,2013,58(4):45-53.

[16]MATTHIAS W,JAN M,MATHIAS W.Propagating changes between aligned process models[J].Journal of Systems and Software,2012,85(8):1885-1898.

[17]DARKO D,MARTIN N,MIROSLAW S.Measuring the impact of changes to the complexity and coupling properties of automotive software systems[J].Journal of Systems and Software,2013,86(5):1275-1293.

[18]JI Chunlei,YAN Shuncheng.UML-based full function point measurement method[J].Applied Mechanics and Materials,2012,220-223(11):2879-2885.

[19]IFPUG.Function point counting practices manual,release 4.2.1[EB/OL].[2013-06-09].http://read.pudn.com/downloads165/ebook/756389/0004_2_1%20Part%201.pdf.

猜你喜欢
度量变性部件
晋州市大成变性淀粉有限公司
鲍文慧《度量空间之一》
模糊度量空间的强嵌入
迷向表示分为6个不可约直和的旗流形上不变爱因斯坦度量
征兵“惊艳”
基于Siemens NX和Sinumerik的铣头部件再制造
部件拆分与对外汉字部件教学
水轮机过流部件改造与节能增效
地质异常的奇异性度量与隐伏源致矿异常识别
变性淀粉在酸奶中的应用