一种基于需求簇构建软件产品特征树模型的方法

文档序号:6398092阅读:700来源:国知局
专利名称:一种基于需求簇构建软件产品特征树模型的方法
技术领域
本发明属于软件产品线工程领域,具体涉及到一种基于需求簇构建软件产品特征树模型的方法。
背景技术
特征是一个软件产品的特性,开发人员通过它来描述和区分软件产品线中的不同产品。特征表达的是高内聚的需求特性在逻辑上的模块化。特征模型通过记录领域内具有的一组相对稳定的特征以及特征之间的关系反映整个领域的软件需求,是描述领域中产品线共性特征和可变性特征以及特征之间关系的模型。传统的特征模型通常用分层的树状结构来表不,树状结构中有且仅有一个根节点,表不一个系统。树结构中的一个节点表不一个特征,通过特征名称来标识,叶子节点为原子特征,非叶子节点为组合特征。通过构建软件产品的特征树模型识别领域需求中的共性和可变性,对于领域工程来讲至关重要。由于共性特征是领域内所有成员共有的特征,往往对应着可复用的设计和实现,是可复用资产库的来源,因而识别共性特征可以大大节约基于软件产品线的开发成本。目前已经有多个方法用于构建特征模型。但是这些方法都存在一些不足。因为在特征建模时特征被看作是一系列关系紧密的需求组成,所以特征和对应的需求之间存在着联系,而现有的各种构建特征模型的方法都没有考虑这种联系,所以很难准确定义某个特征在具体应用中的职责范围。另一方面,传统的解决软件产品演化过程中出现不一致的方法首先比较复杂,其次大多是通过调整特征模型中变更特征与其它特征之间的关系来维护一致性,而没有考虑特征的变更同时对相应的需求的影响,所以难以确定如果需求发生变更会对哪些特征造成影响。

发明内容
本发明针对现有技术的不足,提出了一种基于需求簇构建软件产品特征树模型的方法。本发明方法的具体步骤是:
步骤(I)输入一个表示应用软件所有需求项以及需求项与需求项之间依赖关系的有向需求关系图,其中有向需求关系图的每个顶点表示一个需求项,边表示需求项与需求项的依赖关系,每种依赖关系按依赖强度从强到弱赋予从大到小的不同权值,按从小到大的顺序保存所有N种依赖关系权值至数组中,同时置空特征树;
步骤(2)对应有向需求关系图中每个需求项创建一个新特征节点,置其于特征树的最底层,同时保存新特征节点和对应的需求项之间的特征-需求项映射关系;
步骤(3)循环N次,每次在数组中从尾到头取一个权值作为阈值,将有向需求关系图中的每条边的权值和这个阈值进行比较,合并那些存在边连接并且边的权值大于等于这个阈值的需求项集合至一个需求簇,对应每个需求簇创建一个新特征节点,加入到已有特征树的上一层,同时保存新特征节点和对应的需求簇中的所有需求项之间的特征-需求项映身寸关系;
步骤(4)从低层到高层遍历已有特征树所有层的特征节点,依次进行①分解判断、②相似判断和③排斥判断;
操作①具体为:如果多个特征节点所对应的需求项之间存在分解关系,即某个特征节点f对应的需求项可精化为其他若干个特征节点对应的需求项,则将这些特征节点组成一个“与特征组”,其中特征节点f作为这个“与特征组”的父特征节点;
操作②具体为:如果多个特征节点对应的需求项之间存在相似关系,那么为这些特征节点创建一个父特征节点,并将该父特征节点和对应的这些特征节点(称为子特征节点)组成一个“或特征组”,同时保存父特征节点和子特征节点对应的需求项之间的特征-需求项映射关系;
操作③具体为:如果多个特征节点对应的需求项之间存在排斥关系,那么为这些特征节点创建一个父特征节点,并将该父特征节点和对应的这些特征节点(称为子特征节点)组成一个“多选一特征组”,同时保存父特征节点和子特征节点对应的需求项之间的特征-需求项映射关系;
步骤(5)重复步骤(4),直至没有新的“与特征组”、“或特征组”和“多选一特征组”生
成;
步骤¢)在特征树中增加一个代表软件产品整体特征的根节点,以该根节点为父特征节点,连接特征树中的各个顶端特征节点组成一个“与特征组”;
步骤(7)输出最终的特征树, 其即为表示软件产品的特征树模型。本发明所提供的基于需求簇构建软件产品特征树模型的方法由一组功能模块组成,它们包括:软件产品有向需求关系图输入模块、原始特征模型树生成模块、特征模型树完善模块和特征模型树输出模块。软件产品有向需求关系图输入模块读入软件产品需求项的组成信息,生成软件产品有向需求关系图,同时设置表征需求项之间的依赖强度的关系权值。原始特征模型树生成模块首先置空特征树,然后根据有向需求关系图生成特征树各层的初始特征节点,同时记录需求项和特征节点之间的映射关系。特征模型树完善模块通过执行分解判断、相似判断和排斥判断进一步完善原始特征模型树,并添加根节点。特征模型树输出模块输出最终的特征模型树。本发明的有益效果:与现有方法不同,本方明I)在构建软件产品特征树模型时,需求项和特征通过保存相互引用的方式建立起彼此之间的追溯关系,从而在需求发生变更时能快速定位变更的特征影响范围;2)提高了构建软件产品特征树模型的自动化程度,可以实现基于有向需求关系图的软件产品特征树模型的自动生成。


图1:实现基于需求簇构建软件产品特征树模型的功能模块示意 图2:示例“劳动力市场信息监测软件产品(市级版)”有向需求关系 图3:示例“劳动力市场信息监测软件产品(市级版)”特征树模型。
具体实施例方式
定义I有向需求关系图DRRG可表示为一个二元组:DRRG = (RI,M),其中,RI=IriliTi7f-^riJ ,这里,是DRRG中任意一个顶点,代表应用的一个需求项;
= ,这里ei j为边集合£中的任意一条边,其表示两个顶卢和顶点$之间存在一种依赖关系,或fed =ime,这里Conn_d表示为边的连通属性。
由于边所代表的依赖关系具有方向性,所以HG是一个有向图。需求项之间的依赖关系可分为如下4种:
I)排斥关系(Exclusion):存在两个需求项X和Y,如果X和Y至多只能有一个出现在应用环境中,那么认为X和Y之间存在排斥关系。排斥关系具有双向性。例如,网络ADSL连接和无线网络连接之间就具有排斥关系。2)分解依赖关系(Decomposition):存在一个需求项X,如果X的需求行为可以精化为多个需求项(%巧,々\,那么认为X和这些需求项之间存在分解依赖关系。分解依
赖关系具有单向性。例如,编辑功能可以分解为复制功能、粘贴功能和删除功能。3)需要依赖关系(Demand):存在两个需求项X和Y,如果X的实现需要Y的实现,那么认为X到Y存在需要依赖关系。需要依赖关系具有单向性。例如,文件删除功能的实现需要文件查询功能的实现。4)相似依赖关系(Similarity):存在两个或多个需求项,如果描述它们的需求行为基本相似,只是每个需求项在一些细节上有各自的扩展,那么可以认为这些需求项之间存在相似依赖关系。相似依赖关系具有双向性。例如,网上购物商品检索方式可以分为根据出版时间检索、根据销量检索和根据价格检索等几种方式,它们之间存在相似依赖关系。定义2 在不考虑依赖关系的方向性时,如果DiWG里的部分顶点中的任意两个顶点之间存在可达路径,那么认为这些顶点和它们之间的依赖关系组成了一个连接图(ConGmpk )。整个 1 ! 由一个或多个CaeGhspA 组成,即 ConGraph ^DRRG。根据定义I和2可知,DRRG中任意两个顶点之间可能存在依赖关系。为了量化各种依赖关系对需求项的影响程度,可为中代表依赖关系的边设置权值,其权值大小说明跟此边关联的两个需求项关系的紧密程度。权值越大,表示与此关联的两个需求项之间的关系越紧密。下面是一个确定各种不同依赖关系的权值的示例方案:
(1)排斥关系的权值:-1
(2)分解依赖的权值:1
(3)需要依赖关系的权值:2
(4)相似依赖关系的权值:3
定义3软件产品特征模型树中的一个特征的行为可以由—σ中若干具有依赖关系的需求项来表示,这些需求项定义为需求簇), 'B.-tquimClusMr <zConGraph。定义4:以特怔±为共同父特征的多个特征的集合称为特征组,表示为:FG1 = 存在以下3种特征组:(1)/6^ = {f0,fl3-.,^}:与特征组。是一组与关系的特征,其中每个特征在其父特征出现的产品中都必须被选取。(2) FGf1 = Cf0, Z1,--,:多选一特征组。是一组多选一关系的特征,这组特征在其父特征出现的产品中仅有一个特征可以被选取。(3)/ ; =:或特征组。/Ci是一组或关系的特征,这组特征在其
父特征出现的产品中至少应有一个特征被选取。本发明的具体实施方式
可表示如下:
步骤(I)输入一个表示应用软件所有需求项以及需求项与需求项之间依赖关系的有向需求关系图,其中有向需求关系图的每个顶点表示一个需求项,边表示需求项与需求项的依赖关系,每种依赖关系按依赖强度从强到弱赋予从大到小的不同权值,按从小到大的顺序保存所有N种依赖关系权值至数组中,同时置空特征树。步骤(2)对应有向需求关系图中每个需求项创建一个新特征节点,置其于特征树的最底层,同时通过保存彼此间的引用地址建立新特征节点和对应的需求项之间的特征-需求项映射关系。步骤(3)循环N次,每次在数组中从尾到头取一个权值作为阈值t,将有向需求关系图中的每条边的权值和这个阈值t进行比较,如果权值大于或等于阈值,那么就将边的连接属性设值为true,如果权值小于阈值,那么就将边的连接属性设值为false,在每一次循环中把那些存在边连接的并且连接属性值为true的需求项集合合并成一个需求簇,对应每个需求簇创建一个新特征节点,加入到已有特征树的上一层,同时通过保存彼此间的引用地址建立新特征节点和对应的需求簇中的所有需求项之间的特征-需求项映射关系。步骤(4)从低层到高层遍历已有特征树所有层的特征节点,根据以下3种情况进一步完善特征树:
a)如果多个特征节点所对应的需求项之间存在分解关系,即某个特征节点f对应的需求项可精化为其他若干个特征节点(称为子特征)对应的需求项,则将这些特征节点组成一个“与特征组”,其中特征节点f作为这个“与特征组”的父特征节点;
b)如果多个特征节点对应的需求项之间存在相似关系,那么为这些特征节点创建一个父特征节点,并将该父特征节点和对应的这些特征节点(称为子特征节点)组成一个“或特征组”,表示这些子特征中至少应有一个被选取,同时保存父特征节点和子特征节点对应的需求项之间的特征-需求项映射关系; c)如果多个特征节点对应的需求项之间存在排斥关系,那么为这些特征节点创建一个父特征节点,并将该父特征节点和对应的这些特征节点(称为子特征节点)组成一个“多选一特征组”,表示这些子特征中至多有一个可被选取,同时保存父特征节点和子特征节点对应的需求项之间的特征-需求项映射关系;
步骤(5)重复执行步骤(4),直至没有新的“与特征组”、“或特征组”和“多选一特征组”生成;
步骤出)在特征树中增加一个代表软件产品整体特征的根节点,以该根节点为父特征节点,连接特征树中的各个顶端特征节点组成一个“与特征组”;
步骤(7)输出最终的特征树,其即为表示软件产品的特征树模型。
如图1所示,本发明所提供的基于需求簇构建软件产品特征树模型的方法由一组功能模块组成,它们包括:软件产品有向需求关系图输入模块、原始特征模型树生成模块、特征模型树完善模块和特征模型树输出模块。软件产品有向需求关系图输入模块读入软件产品需求项的组成信息,生成软件产品有向需求关系图,同时设置表征需求项之间的依赖强度的关系权值。原始特征模型树生成模块首先置空特征树,然后根据有向需求关系图生成特征树各层的初始特征节点,同时记录需求项和特征节点之间的映射关系。特征模型树完善模块通过执行分解判断、相似判断和排斥判断进一步完善原始特征模型树,并添加根节点。特征模型树输出模块输出最终的特征模型树。以软件“劳动力市场信息监测软件产品(市级版)”为例说明本发明的使用。该软件用于采集市本级劳动力市场状况数据(例如:本地登记失业人数、台港澳和外国人登记失业人数,等),并追加所有下属区的各类业务数据,最后将所有数据上报给省级系统,如表I所
/Jn ο
权利要求
1.一种基于需求簇构建软件产品特征树模型的方法,其特征在于该方法包括以下步骤: 步骤(I)输入一个表示应用软件所有需求项以及需求项与需求项之间依赖关系的有向需求关系图,其中有向需求关系图的每个顶点表示一个需求项,边表示需求项与需求项的依赖关系,每种依赖关系按依赖强度从强到弱赋予从大到小的不同权值,按从小到大的顺序保存所有N种依赖关系权值至数组中,同时置空特征树; 步骤(2)对应有向需求关系图中每个需求项创建一个新特征节点,置其于特征树的最底层,同时保存新特征节点和对应的需求项之间的特征-需求项映射关系; 步骤(3)循环N次,每次在数组中从尾到头取一个权值作为阈值,将有向需求关系图中的每条边的权值和这个阈值进行比较,合并那些存在边连接并且边的权值大于等于这个阈值的需求项集合至一个需求簇,对应每个需求簇创建一个新特征节点,加入到已有特征树的上一层,同时保存新特征节点和对应的需求簇中的所有需求项之间的特征-需求项映身寸关系; 步骤(4)从低层到高层遍历已有特征树所有层的特征节点,依次进行①分解判断、②相似判断和③排斥判断; 操作①具体为:如果多个特征节点所对应的需求项之间存在分解关系,即某个特征节点f对应的需求项可精化为其他若干个特征节点对应的需求项,则将这些特征节点组成一个“与特征组”,其中特征节点f作为这个“与特征组”的父特征节点; 操作②具体为:如果多个特征节点对应的需求项之间存在相似关系,那么为这些特征节点创建一个父特征节点, 并将该父特征节点和对应的这些特征节点组成一个“或特征组”,对应的这些特征节点称为子特征节点,同时保存父特征节点和子特征节点对应的需求项之间的特征-需求项映射关系; 操作③具体为:如果多个特征节点对应的需求项之间存在排斥关系,那么为这些特征节点创建一个父特征节点,并将该父特征节点和对应的这些特征节点组成一个“多选一特征组”,对应的这些特征节点称为子特征节点,同时保存父特征节点和子特征节点对应的需求项之间的特征-需求项映射关系; 步骤(5)重复步骤(4),直至没有新的“与特征组”、“或特征组”和“多选一特征组”生成; 步骤¢)在特征树中增加一个代表软件产品整体特征的根节点,以该根节点为父特征节点,连接特征树中的各个顶端特征节点组成一个“与特征组”; 步骤(7)输出最终的特征树,其即为表示软件产品的特征树模型。
全文摘要
本发明公开了一种基于需求簇构建软件产品特征树模型的方法,本发明包括向需求关系图输入模块、原始特征模型树生成模块、特征模型树完善模块和特征模型树输出模块,软件产品有向需求关系图输入模块读入软件产品需求项的组成信息,生成软件产品有向需求关系图,设置表征需求项之间的依赖强度的关系权值,原始特征模型树生成模块首先置空特征树,再根据有向需求关系图生成特征树各层的初始特征节点,同时记录需求项和特征节点之间的映射关系,特征模型树完善模块通过执行分解判断、相似判断和排斥判断完善原始特征模型树,并添加根节点。本发明提高了构建软件产品特征树模型的自动化程度,实现基于有向需求关系图的软件产品特征树模型的自动生成。
文档编号G06F17/30GK103092960SQ20131001952
公开日2013年5月8日 申请日期2013年1月18日 优先权日2013年1月18日
发明者俞东进, 袁友伟, 殷昱煜, 李万清, 穆海伦, 邵建伟, 耿鹏 申请人:杭州电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1