CN103092960A - 一种基于需求簇构建软件产品特征树模型的方法 - Google Patents
一种基于需求簇构建软件产品特征树模型的方法 Download PDFInfo
- Publication number
- CN103092960A CN103092960A CN2013100195240A CN201310019524A CN103092960A CN 103092960 A CN103092960 A CN 103092960A CN 2013100195240 A CN2013100195240 A CN 2013100195240A CN 201310019524 A CN201310019524 A CN 201310019524A CN 103092960 A CN103092960 A CN 103092960A
- Authority
- CN
- China
- Prior art keywords
- feature
- node
- characteristic
- requirement item
- tree
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于需求簇构建软件产品特征树模型的方法,本发明包括向需求关系图输入模块、原始特征模型树生成模块、特征模型树完善模块和特征模型树输出模块,软件产品有向需求关系图输入模块读入软件产品需求项的组成信息,生成软件产品有向需求关系图,设置表征需求项之间的依赖强度的关系权值,原始特征模型树生成模块首先置空特征树,再根据有向需求关系图生成特征树各层的初始特征节点,同时记录需求项和特征节点之间的映射关系,特征模型树完善模块通过执行分解判断、相似判断和排斥判断完善原始特征模型树,并添加根节点。本发明提高了构建软件产品特征树模型的自动化程度,实现基于有向需求关系图的软件产品特征树模型的自动生成。
Description
技术领域
本发明属于软件产品线工程领域,具体涉及到一种基于需求簇构建软件产品特征树模型的方法。
背景技术
特征是一个软件产品的特性,开发人员通过它来描述和区分软件产品线中的不同产品。特征表达的是高内聚的需求特性在逻辑上的模块化。特征模型通过记录领域内具有的一组相对稳定的特征以及特征之间的关系反映整个领域的软件需求,是描述领域中产品线共性特征和可变性特征以及特征之间关系的模型。传统的特征模型通常用分层的树状结构来表示,树状结构中有且仅有一个根节点,表示一个系统。树结构中的一个节点表示一个特征,通过特征名称来标识,叶子节点为原子特征,非叶子节点为组合特征。
通过构建软件产品的特征树模型识别领域需求中的共性和可变性,对于领域工程来讲至关重要。由于共性特征是领域内所有成员共有的特征,往往对应着可复用的设计和实现,是可复用资产库的来源,因而识别共性特征可以大大节约基于软件产品线的开发成本。
目前已经有多个方法用于构建特征模型。但是这些方法都存在一些不足。因为在特征建模时特征被看作是一系列关系紧密的需求组成,所以特征和对应的需求之间存在着联系,而现有的各种构建特征模型的方法都没有考虑这种联系,所以很难准确定义某个特征在具体应用中的职责范围。另一方面,传统的解决软件产品演化过程中出现不一致的方法首先比较复杂,其次大多是通过调整特征模型中变更特征与其它特征之间的关系来维护一致性,而没有考虑特征的变更同时对相应的需求的影响,所以难以确定如果需求发生变更会对哪些特征造成影响。
发明内容
本发明针对现有技术的不足,提出了一种基于需求簇构建软件产品特征树模型的方法。
本发明方法的具体步骤是:
步骤(1) 输入一个表示应用软件所有需求项以及需求项与需求项之间依赖关系的有向需求关系图,其中有向需求关系图的每个顶点表示一个需求项,边表示需求项与需求项的依赖关系,每种依赖关系按依赖强度从强到弱赋予从大到小的不同权值,按从小到大的顺序保存所有N种依赖关系权值至数组中,同时置空特征树;
步骤(2) 对应有向需求关系图中每个需求项创建一个新特征节点,置其于特征树的最底层,同时保存新特征节点和对应的需求项之间的特征-需求项映射关系;
步骤(3) 循环N次,每次在数组中从尾到头取一个权值作为阈值,将有向需求关系图中的每条边的权值和这个阈值进行比较,合并那些存在边连接并且边的权值大于等于这个阈值的需求项集合至一个需求簇,对应每个需求簇创建一个新特征节点,加入到已有特征树的上一层,同时保存新特征节点和对应的需求簇中的所有需求项之间的特征-需求项映射关系;
步骤(4) 从低层到高层遍历已有特征树所有层的特征节点,依次进行①分解判断、②相似判断和③排斥判断;
操作①具体为:如果多个特征节点所对应的需求项之间存在分解关系,即某个特征节点f对应的需求项可精化为其他若干个特征节点对应的需求项,则将这些特征节点组成一个“与特征组”,其中特征节点f作为这个“与特征组”的父特征节点;
操作②具体为:如果多个特征节点对应的需求项之间存在相似关系,那么为这些特征节点创建一个父特征节点,并将该父特征节点和对应的这些特征节点(称为子特征节点)组成一个“或特征组”,同时保存父特征节点和子特征节点对应的需求项之间的特征-需求项映射关系;
操作③具体为:如果多个特征节点对应的需求项之间存在排斥关系,那么为这些特征节点创建一个父特征节点,并将该父特征节点和对应的这些特征节点(称为子特征节点)组成一个“多选一特征组”,同时保存父特征节点和子特征节点对应的需求项之间的特征-需求项映射关系;
步骤(5) 重复步骤(4),直至没有新的“与特征组”、“或特征组”和“多选一特征组”生成;
步骤(6) 在特征树中增加一个代表软件产品整体特征的根节点,以该根节点为父特征节点,连接特征树中的各个顶端特征节点组成一个“与特征组”;
步骤(7) 输出最终的特征树,其即为表示软件产品的特征树模型。
本发明所提供的基于需求簇构建软件产品特征树模型的方法由一组功能模块组成,它们包括:软件产品有向需求关系图输入模块、原始特征模型树生成模块、特征模型树完善模块和特征模型树输出模块。
软件产品有向需求关系图输入模块读入软件产品需求项的组成信息,生成软件产品有向需求关系图,同时设置表征需求项之间的依赖强度的关系权值。
原始特征模型树生成模块首先置空特征树,然后根据有向需求关系图生成特征树各层的初始特征节点,同时记录需求项和特征节点之间的映射关系。
特征模型树完善模块通过执行分解判断、相似判断和排斥判断进一步完善原始特征模型树,并添加根节点。
特征模型树输出模块输出最终的特征模型树。
本发明的有益效果:与现有方法不同,本方明1)在构建软件产品特征树模型时,需求项和特征通过保存相互引用的方式建立起彼此之间的追溯关系,从而在需求发生变更时能快速定位变更的特征影响范围;2)提高了构建软件产品特征树模型的自动化程度,可以实现基于有向需求关系图的软件产品特征树模型的自动生成。
附图说明
图1:实现基于需求簇构建软件产品特征树模型的功能模块示意图;
图2:示例“劳动力市场信息监测软件产品(市级版)”有向需求关系图;
图3:示例“劳动力市场信息监测软件产品(市级版)”特征树模型。
具体实施方式
定义1 有向需求关系图 可表示为一个二元组:,其中,,这里是中任意一个顶点,代表应用的一个需求项;,这里ei,j为边集合中的任意一条边,其表示两个顶点和顶点之间存在一种依赖关系,或,这里表示为边的连通属性。由于边所代表的依赖关系具有方向性,所以是一个有向图。
需求项之间的依赖关系可分为如下4种:
1)排斥关系(Exclusion):存在两个需求项X和Y,如果X和Y至多只能有一个出现在应用环境中,那么认为X和Y之间存在排斥关系。排斥关系具有双向性。例如,网络ADSL连接和无线网络连接之间就具有排斥关系。
2)分解依赖关系(Decomposition):存在一个需求项X,如果X的需求行为可以精化为多个需求项,那么认为X和这些需求项之间存在分解依赖关系。分解依赖关系具有单向性。例如,编辑功能可以分解为复制功能、粘贴功能和删除功能。
3)需要依赖关系(Demand):存在两个需求项X和Y,如果X的实现需要Y的实现,那么认为X到Y存在需要依赖关系。需要依赖关系具有单向性。例如,文件删除功能的实现需要文件查询功能的实现。
4)相似依赖关系(Similarity):存在两个或多个需求项,如果描述它们的需求行为基本相似,只是每个需求项在一些细节上有各自的扩展,那么可以认为这些需求项之间存在相似依赖关系。相似依赖关系具有双向性。例如,网上购物商品检索方式可以分为根据出版时间检索、根据销量检索和根据价格检索等几种方式,它们之间存在相似依赖关系。
根据定义1和2可知,中任意两个顶点之间可能存在依赖关系。为了量化各种依赖关系对需求项的影响程度,可为中代表依赖关系的边设置权值,其权值大小说明跟此边关联的两个需求项关系的紧密程度。权值越大,表示与此关联的两个需求项之间的关系越紧密。下面是一个确定各种不同依赖关系的权值的示例方案:
(1)排斥关系的权值:-1
(2)分解依赖的权值:1
(3)需要依赖关系的权值:2
(4)相似依赖关系的权值:3
本发明的具体实施方式可表示如下:
步骤(1) 输入一个表示应用软件所有需求项以及需求项与需求项之间依赖关系的有向需求关系图,其中有向需求关系图的每个顶点表示一个需求项,边表示需求项与需求项的依赖关系,每种依赖关系按依赖强度从强到弱赋予从大到小的不同权值,按从小到大的顺序保存所有N种依赖关系权值至数组中,同时置空特征树。
步骤(2) 对应有向需求关系图中每个需求项创建一个新特征节点,置其于特征树的最底层,同时通过保存彼此间的引用地址建立新特征节点和对应的需求项之间的特征-需求项映射关系。
步骤(3) 循环N次,每次在数组中从尾到头取一个权值作为阈值t,将有向需求关系图中的每条边的权值和这个阈值t进行比较,如果权值大于或等于阈值,那么就将边的连接属性设值为true,如果权值小于阈值,那么就将边的连接属性设值为false,在每一次循环中把那些存在边连接的并且连接属性值为true的需求项集合合并成一个需求簇,对应每个需求簇创建一个新特征节点,加入到已有特征树的上一层,同时通过保存彼此间的引用地址建立新特征节点和对应的需求簇中的所有需求项之间的特征-需求项映射关系。
步骤(4) 从低层到高层遍历已有特征树所有层的特征节点,根据以下3种情况进一步完善特征树:
a)如果多个特征节点所对应的需求项之间存在分解关系,即某个特征节点f对应的需求项可精化为其他若干个特征节点(称为子特征)对应的需求项,则将这些特征节点组成一个“与特征组”,其中特征节点f作为这个“与特征组”的父特征节点;
b)如果多个特征节点对应的需求项之间存在相似关系,那么为这些特征节点创建一个父特征节点,并将该父特征节点和对应的这些特征节点(称为子特征节点)组成一个“或特征组”,表示这些子特征中至少应有一个被选取,同时保存父特征节点和子特征节点对应的需求项之间的特征-需求项映射关系;
c)如果多个特征节点对应的需求项之间存在排斥关系,那么为这些特征节点创建一个父特征节点,并将该父特征节点和对应的这些特征节点(称为子特征节点)组成一个“多选一特征组”,表示这些子特征中至多有一个可被选取,同时保存父特征节点和子特征节点对应的需求项之间的特征-需求项映射关系;
步骤(5) 重复执行步骤(4),直至没有新的“与特征组”、“或特征组”和“多选一特征组”生成;
步骤(6) 在特征树中增加一个代表软件产品整体特征的根节点,以该根节点为父特征节点,连接特征树中的各个顶端特征节点组成一个“与特征组”;
步骤(7) 输出最终的特征树,其即为表示软件产品的特征树模型。
如图1所示,本发明所提供的基于需求簇构建软件产品特征树模型的方法由一组功能模块组成,它们包括:软件产品有向需求关系图输入模块、原始特征模型树生成模块、特征模型树完善模块和特征模型树输出模块。
软件产品有向需求关系图输入模块读入软件产品需求项的组成信息,生成软件产品有向需求关系图,同时设置表征需求项之间的依赖强度的关系权值。
原始特征模型树生成模块首先置空特征树,然后根据有向需求关系图生成特征树各层的初始特征节点,同时记录需求项和特征节点之间的映射关系。
特征模型树完善模块通过执行分解判断、相似判断和排斥判断进一步完善原始特征模型树,并添加根节点。
特征模型树输出模块输出最终的特征模型树。
以软件“劳动力市场信息监测软件产品(市级版)”为例说明本发明的使用。该软件用于采集市本级劳动力市场状况数据(例如:本地登记失业人数、台港澳和外国人登记失业人数,等),并追加所有下属区的各类业务数据,最后将所有数据上报给省级系统,如表1所示。
表1
为了表达方便,表1只选取了部分重要的需求并以列表的形式展现。图2所示为需求对应的有向需求关系图。图3为转化后的特征树模型。
Claims (1)
1. 一种基于需求簇构建软件产品特征树模型的方法,其特征在于该方法包括以下步骤:
步骤(1) 输入一个表示应用软件所有需求项以及需求项与需求项之间依赖关系的有向需求关系图,其中有向需求关系图的每个顶点表示一个需求项,边表示需求项与需求项的依赖关系,每种依赖关系按依赖强度从强到弱赋予从大到小的不同权值,按从小到大的顺序保存所有N种依赖关系权值至数组中,同时置空特征树;
步骤(2) 对应有向需求关系图中每个需求项创建一个新特征节点,置其于特征树的最底层,同时保存新特征节点和对应的需求项之间的特征-需求项映射关系;
步骤(3) 循环N次,每次在数组中从尾到头取一个权值作为阈值,将有向需求关系图中的每条边的权值和这个阈值进行比较,合并那些存在边连接并且边的权值大于等于这个阈值的需求项集合至一个需求簇,对应每个需求簇创建一个新特征节点,加入到已有特征树的上一层,同时保存新特征节点和对应的需求簇中的所有需求项之间的特征-需求项映射关系;
步骤(4) 从低层到高层遍历已有特征树所有层的特征节点,依次进行①分解判断、②相似判断和③排斥判断;
操作①具体为:如果多个特征节点所对应的需求项之间存在分解关系,即某个特征节点f对应的需求项可精化为其他若干个特征节点对应的需求项,则将这些特征节点组成一个“与特征组”,其中特征节点f作为这个“与特征组”的父特征节点;
操作②具体为:如果多个特征节点对应的需求项之间存在相似关系,那么为这些特征节点创建一个父特征节点,并将该父特征节点和对应的这些特征节点组成一个“或特征组”,对应的这些特征节点称为子特征节点,同时保存父特征节点和子特征节点对应的需求项之间的特征-需求项映射关系;
操作③具体为:如果多个特征节点对应的需求项之间存在排斥关系,那么为这些特征节点创建一个父特征节点,并将该父特征节点和对应的这些特征节点组成一个“多选一特征组”,对应的这些特征节点称为子特征节点,同时保存父特征节点和子特征节点对应的需求项之间的特征-需求项映射关系;
步骤(5) 重复步骤(4),直至没有新的“与特征组”、“或特征组”和“多选一特征组”生成;
步骤(6) 在特征树中增加一个代表软件产品整体特征的根节点,以该根节点为父特征节点,连接特征树中的各个顶端特征节点组成一个“与特征组”;
步骤(7) 输出最终的特征树,其即为表示软件产品的特征树模型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013100195240A CN103092960A (zh) | 2013-01-18 | 2013-01-18 | 一种基于需求簇构建软件产品特征树模型的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013100195240A CN103092960A (zh) | 2013-01-18 | 2013-01-18 | 一种基于需求簇构建软件产品特征树模型的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103092960A true CN103092960A (zh) | 2013-05-08 |
Family
ID=48205525
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2013100195240A Pending CN103092960A (zh) | 2013-01-18 | 2013-01-18 | 一种基于需求簇构建软件产品特征树模型的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103092960A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104461572A (zh) * | 2014-12-29 | 2015-03-25 | 常熟理工学院 | 一种需求变更波及效应分析方法 |
WO2016091039A1 (zh) * | 2014-12-10 | 2016-06-16 | 中车青岛四方机车车辆股份有限公司 | 一种映射规则创建方法及装置 |
CN110110089A (zh) * | 2018-01-09 | 2019-08-09 | 网智天元科技集团股份有限公司 | 文化关系图生成方法和系统 |
CN112015405A (zh) * | 2019-05-29 | 2020-12-01 | 腾讯数码(天津)有限公司 | 界面布局文件的生成方法、界面生成方法、装置及设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002287961A (ja) * | 2001-03-28 | 2002-10-04 | Nec System Technologies Ltd | 業務アプリケーション開発システム及び方法 |
CN1531681A (zh) * | 2001-06-08 | 2004-09-22 | 软件代码的自动开发 | |
CN102270136A (zh) * | 2011-08-10 | 2011-12-07 | 清华大学 | 一种需求特征建模到体系结构建模的平滑过渡方法 |
-
2013
- 2013-01-18 CN CN2013100195240A patent/CN103092960A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002287961A (ja) * | 2001-03-28 | 2002-10-04 | Nec System Technologies Ltd | 業務アプリケーション開発システム及び方法 |
CN1531681A (zh) * | 2001-06-08 | 2004-09-22 | 软件代码的自动开发 | |
CN102270136A (zh) * | 2011-08-10 | 2011-12-07 | 清华大学 | 一种需求特征建模到体系结构建模的平滑过渡方法 |
Non-Patent Citations (2)
Title |
---|
DONGJIN YU 等: "Constructing Traceability between Features and Requirements for Software Product Line Engineering", 《2012 19TH ASIA-PACIFIC SOFTWARE ENGINEERING CONFERENCE》 * |
张伟 等: "一种面相特征的领域模型及其建模过程", 《软件学报》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016091039A1 (zh) * | 2014-12-10 | 2016-06-16 | 中车青岛四方机车车辆股份有限公司 | 一种映射规则创建方法及装置 |
CN104461572A (zh) * | 2014-12-29 | 2015-03-25 | 常熟理工学院 | 一种需求变更波及效应分析方法 |
CN104461572B (zh) * | 2014-12-29 | 2017-08-18 | 常熟理工学院 | 一种需求变更波及效应分析方法 |
CN110110089A (zh) * | 2018-01-09 | 2019-08-09 | 网智天元科技集团股份有限公司 | 文化关系图生成方法和系统 |
CN110110089B (zh) * | 2018-01-09 | 2021-03-30 | 网智天元科技集团股份有限公司 | 文化关系图生成方法和系统 |
CN112015405A (zh) * | 2019-05-29 | 2020-12-01 | 腾讯数码(天津)有限公司 | 界面布局文件的生成方法、界面生成方法、装置及设备 |
CN112015405B (zh) * | 2019-05-29 | 2022-06-21 | 腾讯数码(天津)有限公司 | 界面布局文件的生成方法、界面生成方法、装置及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11693833B2 (en) | Computer-implemented method for storing unlimited amount of data as a mind map in relational database systems | |
JP7419244B2 (ja) | 例によるetlルールの学習 | |
US20200151180A1 (en) | Conversion of Model Views Into Relational Models | |
WO2021032002A1 (zh) | 基于异构分布式知识图谱的大数据处理方法、设备及介质 | |
CN103714129B (zh) | 基于条件规则的动态数据结构和关系的构建装置和构建方法 | |
US20160055233A1 (en) | Pre-join tags for entity-relationship modeling of databases | |
JP2017513100A (ja) | キー指定される実体の属性のマッピング | |
CN106611037A (zh) | 用于分布式图计算的方法与设备 | |
CN103116574B (zh) | 从自然语言文本挖掘领域过程本体的方法 | |
CN103793422A (zh) | 基于增强星型模型的立方体元数据及查询语句生成 | |
CN103116625A (zh) | 一种基于Hadoop的海量RDF数据分布式查询处理方法 | |
CN102999608A (zh) | 大数据的树表展现系统和树表展现方法 | |
CN103853759B (zh) | 一种自适应表单的生成方法及系统 | |
CN104778236A (zh) | 一种基于元数据的etl实现方法及系统 | |
CN104572833A (zh) | 一种映射规则创建方法及装置 | |
CN103092960A (zh) | 一种基于需求簇构建软件产品特征树模型的方法 | |
Franconi et al. | A data warehouse conceptual data model | |
CN101697174A (zh) | 面向稳态热分析的零件模型自动简化及评价方法 | |
CN104572832A (zh) | 一种需求元模型构建方法及装置 | |
CN104239581A (zh) | 一种面向数据库系统的复制数据起源追踪方法 | |
CN104050264A (zh) | 一种生成sql语句的方法和装置 | |
WO2016119508A1 (zh) | 基于Spark系统的大规模对象识别方法 | |
Chen et al. | Methodology for large-scale entity resolution without pairwise matching | |
Urbani | On web-scale reasoning | |
CN107145601B (zh) | 一种高效的引用关系发现方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20130508 |