一种面向复用的软件需求建模及演化方法

文档序号:6627639阅读:146来源:国知局
一种面向复用的软件需求建模及演化方法
【专利摘要】本面向复用的软件需求建模及演化方法,包括:(1)首先,领域需求模型树DR-T初始化;(2)采采用wiki方式进行领域需求获取,将采用自然语言描述的领域需求通过wiki系统收集起来。(3)确定共性需求,构建领域需求模型。(4)新建应用App[m]的应用需求模型AR-T[m]初始化。(5)向AR-T[m]添加差异需求节点,形成完整的App[m]应用需求模型。(6)应用需求模型AR-T[m]向领域需求模型DR-T的演化。(7)领域需求模型DR-T中共性需求演化为非共性需求。软件企业通过采用该面向复用的软件需求建模及演化方法,可以逐步构建某个业务领域的需求模型,形成软件企业重要的无形资产。当该领域中有新的软件需要构建时,可以复用领域需求模型中的规约,快速形成需求规格说明以及需求模型。
【专利说明】一种面向复用的软件需求建模及演化方法

【技术领域】
[0001]本发明涉及基于领域工程的软件需求建模及演化方法【技术领域】。

【背景技术】
[0002]目前软件复用技术主要以快速实现软件为目标,进行源代码、软件框架等方面的复用,而对于软件需求的复用却比较少。领域工程是一种系统化的软件复用方法,提供了以特征建模为核心的领域分析方法,可以帮助软件需求人员建立某个业务领域的需求模型。领域需求模型作为某个领域的共性需求,可以为该领域中不同的应用提供需求的复用。但是,领域内的应用是千差万别的,每个应用的需求都有可能属于领域共性需求,领域需求的获取十分不便。而当需要领域需求为新应用的需求提供复用时,领域需求又不一定满足所有应用的需求,每个应用在复用了领域需求之后,还需要将自己的差异性需求添加到领域需求模型中,方可构成应用需求模型。而且,随着软件的逐步应用,一些差异性需求也有可能转化为领域中的共性需求,被其他的应用需求所复用。久而久之,领域需求模型将反映更加全面领域需求,并且与应用需求模型实现相互演化,从而为应用需求提供更好的复用。


【发明内容】

[0003]本发明为了克服以上技术的不足,提供了一种一方面可使领域需求模型可以为应用需求模型提供复用,另一方面可使应用需求模型可以演化为领域需求模型的面向复用的软件需求建模及演化方法。
[0004]本发明克服其技术问题所采用的技术方案是:
a)将领域需求模型树DR-T初始化,建立根节点Root,然后从根节点开始对领域需求进行逐层分解,形成多个分支节点Branch [i] [j]和叶子节点Leaf [k],为Root节点、Branch节点和Leaf节点每个节点的需求名称ReqName、需求描述ReqDesc的属性进行赋值,从而得到一棵代表领域需求的树,其中i代表层数,j代表在该层的序号;
b)采用wiki方式进行领域需求获取,将采用自然语言描述的领域需求通过wiki系统收集起来,需求提供者在领域需求树的基础上,增加分支节点Branch[i] [j]和叶子节点Leaf [k]或对已有的分支节点Branch[i] [j]和叶子节点Leaf [k]的附加属性进行补充,逐渐获得一个完整的领域需求树;
c)对领域需求树中的各个节点进行遍历,并对该节点所对应的需求的共性程度进行评估,以确定该需求是否为领域中普遍存在的共性需求,如果是,则将其确定为共性需求IsCommon,同时将IsCommon属性设为I,如果不是,则将其确定为非共性需求,同时将IsCommon属性设为O ;
d)从领域需求模型DR-T根节点开始遍历所有的IsCommon属性为I的节点,同步新建一棵树AR-T [m],如果DR-T中某节点是应用App所需要实现的需求,则插入AR-T [m],并保持该节点在树中所处的层和父子关系的一致性,当遍历完成DR-T之后,构建完成了AR-T [m],即完成了应用App [m]的应用需求模型的初始化; e)在AR-T[m]的基础上,将应用App[m]中的新需求,即未存在于领域需求模型中的差异性需求,插入到AR-T[m]中的合适位置,完成了整个AR-T [m]的构建,获得了完整的APP [m]的应用需求模型;
f)对于AR-T[m]中已经逐步具有领域共性需求特征的差异性需求节点,按照其在AR-T [m]中的层次和父子关系,插入到DR-T中,如果有应用需求模型AR-T [k]也在相同位置向DR-T中插入了节点,则需要判断新增的节点是否相同,如果相同,则只插入一个节点,如果不同,则插入多个节点;
g)将不再具有共性需求特征的领域需求模型中的节点,置为非共性需求,同时将IsCommon属性设为O。
[0005]上述步骤b)中的附加属性包括角色Role、业务流程Bussiness、支持技术Technology、管理和组织ManOrg、规章制度Rule。
[0006]本发明的有益效果是:软件企业通过采用该面向复用的软件需求建模及演化方法,可以逐步构建某个业务领域的需求模型,形成软件企业重要的无形资产。每当该领域中有新的软件项目需要构建时,可以复用领域需求模型中的规约,快速形成需求规格说明以及需求模型。同时,软件需求模型中趋于稳定的新需求,将被加入领域需求模型中;领域需求模型中趋于淘汰的老需求,将从领域需求模型中消除,使得领域需求模型可以动态演化。

【专利附图】

【附图说明】
[0007]图1为本发明的面向复用软件需求建模及演化方法的流程图。

【具体实施方式】
[0008]下面结合附图1对本发明做进一步说明。
[0009]本面向复用的软件需求建模及演化方法,包括如下步骤:
(I)首先,领域需求模型树DR-T初始化。建立根节点Root,然后从根节点开始对领域需求进行逐层分解,形成多个分支节点Branch[i] [j] (i代表层数,j代表在该层的序号)和叶子节点Leaf [k]。Root节点、Branch节点和Leaf节点包括需求名称、需求描述等属性,需要为每个节点的需求名称ReqName、需求描述ReqDesc等属性进行赋值,从而得到一棵代表领域需求的树。这棵树目前并不代表整个领域需求,还需要通过领域需求获取将其完善。
[0010](2)采采用Wiki方式进行领域需求获取,将采用自然语言描述的领域需求通过wiki系统收集起来。需求提供者(需求提供者可以是领域专家、领域用户,也可以是软件需求分析人员,凡是认为对领域需求将有所贡献的人均可作为需求提供者)可以在领域需求树的基础上,增加分支节点和叶子节点,也可以对已有的分支节点和叶子节点的属性进行补充。这样通过这一步,就可以逐渐获得一个完整的领域需求树。
[0011](3)确定共性需求,构建领域需求模型。对领域需求树中的各个节点进行遍历,并对该节点所对应的需求的共性程度进行评估,以确定该需求是否为领域中普遍存在的共性需求。如果是,则将其确定为共性需求IsCommon,同时将IsCommon属性设为I ;如果不是,则将其确定为非共性需求,同时将IsCommon属性设为O。此时,已经获得了一个基本的领域需求模型。
[0012](4)新建应用App [m]的应用需求模型AR-T[m]初始化。从领域需求模型DR-T根节点开始遍历所有的IsCommon属性为I的节点,同步新建一棵树AR-T [m]。如果DR-T中某节点是应用App所需要实现的需求,则插入AR-T [m],并保持该节点在树中所处的层和父子关系的一致性。当遍历完成DR-T之后,也就完成了基本的AR-T[m]的构建,即完成了应用App [m]的应用需求模型的初始化。
[0013](5)向AR-T[m]添加差异需求节点,形成完整的App [m]应用需求模型。在AR_T[m]的基础上,将应用App [m]中的新需求,即未存在于领域需求模型中的差异性需求,插入到AR-T[m]中的合适位置。所有的差异性需求添加到AR-T[m]中后,即完成了整个AR-T[m]的构建,获得了完整的APP[m]的应用需求模型。
[0014](6)应用需求模型AR-T[m]向领域需求模型DR-T的演化。对于AR_T[m]中已经逐步具有领域共性需求特征的差异性需求节点,按照其在AR-T[m]中的层次和父子关系,插入到DR-T中。如果有应用需求模型AR-T[k]也在相同位置向DR-T中插入了节点,则需要判断新增的节点是否相同,如果相同,则只插入一个节点,如果不同,则插入多个节点。通过这一步,则可以做到新应用中的差异性需求,可以演化为领域共性需求,从而使领域需求模型更加反映领域的真实情况。
[0015](7)领域需求模型DR-T中共性需求演化为非共性需求。将不再具有共性需求特征的领域需求模型中的节点,置为非共性需求,同时将IsCommon属性设为O。
[0016]软件企业通过采用该面向复用的软件需求建模及演化方法,可以逐步构建某个业务领域的需求模型,形成软件企业重要的无形资产。每当该领域中有新的软件项目需要构建时,可以复用领域需求模型中的规约,快速形成需求规格说明以及需求模型。同时,软件需求模型中趋于稳定的新需求,将被加入领域需求模型中;领域需求模型中趋于淘汰的老需求,将从领域需求模型中消除,使得领域需求模型可以动态演化。
[0017]上述步骤(2)的附加属性包括角色Role、业务流程Bussiness、支持技术Technology、管理和组织ManOrg、规章制度Rule。通过进一步补充需求属性,可以进一步获得更加完整的领域需求树。
【权利要求】
1.一种面向复用的软件需求建模及演化方法,其特征在于:包括如下步骤: a)将领域需求模型树DR-T初始化,建立根节点Root,然后从根节点开始对领域需求进行逐层分解,形成多个分支节点Branch [i] [j]和叶子节点Leaf [k],为Root节点、Branch节点和Leaf节点每个节点的需求名称ReqName、需求描述ReqDesc的属性进行赋值,从而得到一棵代表领域需求的树,其中i代表层数,j代表在该层的序号; b)采用wiki方式进行领域需求获取,将采用自然语言描述的领域需求通过wiki系统收集起来,需求提供者在领域需求树的基础上,增加分支节点Branch[i] [j]和叶子节点Leaf [k]或对已有的分支节点Branch[i] [j]和叶子节点Leaf [k]的附加属性进行补充,逐渐获得一个完整的领域需求树; c)对领域需求树中的各个节点进行遍历,并对该节点所对应的需求的共性程度进行评估,以确定该需求是否为领域中普遍存在的共性需求,如果是,则将其确定为共性需求IsCommon,同时将IsCommon属性设为I,如果不是,则将其确定为非共性需求,同时将IsCommon属性设为O ; d)从领域需求模型DR-T根节点开始遍历所有的IsCommon属性为I的节点,同步新建一棵树AR-T[m],如果DR-T中某节点是应用App所需要实现的需求,则插入AR_T[m],并保持该节点在树中所处的层和父子关系的一致性,当遍历完成DR-T之后,构建完成了AR-T [m],即完成了应用App [m]的应用需求模型的初始化; e)在AR-T[m]的基础上,将应用App[m]中的新需求,即未存在于领域需求模型中的差异性需求,插入到AR-T[m]中的合适位置,完成了整个AR-T [m]的构建,获得了完整的APP [m]的应用需求模型; f)对于AR-T[m]中已经逐步具有领域共性需求特征的差异性需求节点,按照其在AR-T [m]中的层次和父子关系,插入到DR-T中,如果有应用需求模型AR-T [k]也在相同位置向DR-T中插入了节点,则需要判断新增的节点是否相同,如果相同,则只插入一个节点,如果不同,则插入多个节点; g)将不再具有共性需求特征的领域需求模型中的节点,置为非共性需求,同时将IsCommon属性设为O。
2.根据权利要求1所述的面向复用的软件需求建模及演化方法,其特征在于:所述步骤b)中的附加属性包括角色Role、业务流程Bussiness、支持技术Technology、管理和组织ManOrg、规章制度Rule。
【文档编号】G06F9/44GK104239058SQ201410483420
【公开日】2014年12月24日 申请日期:2014年9月22日 优先权日:2014年9月22日
【发明者】郭莹, 杨美红, 王筠, 李良, 赵志刚, 王春晓 申请人:山东省计算中心(国家超级计算济南中心)
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1