一种软件产品线的特征切片模型检测方法

文档序号:8298866阅读:361来源:国知局
一种软件产品线的特征切片模型检测方法
【技术领域】
[0001] 本发明公开了一种软件产品线的特征切片模型检测方法,涉及软件产品线工程技 术领域。
【背景技术】
[0002] 在现代信息系统中,软件开发和维护的高成本压力迫使开发人员寻找更为有效的 方法以提高软件复用。跨多个开发项目的软件复用包括对设计模型、源代码、测试方案以及 框架等部件的复用。软件产品线(SoftwareProductLine-SPL)是一种在产业界正在被广 泛推广使用的基于软件复用的产品开发范式。软件产品线是在公共核心资源的基础上,按 照规定方式开发的软件密集系统的集合。这些系统共享一组公共的、可管理的、能够满足特 定市场或者任务需求的功能集合。例如,对于一个汽车软件产品线来说,存在多种类型的引 擎控制软件部件;这些部件可作为核心资产的一部分供开发人员根据不同的客户需求,在 不同产品的配置过程中复用。软件产品线的目的就是最大化满足用户需求的同时实现批量 开发的效率。区别于独立开发单个系统,软件产品线工程将所有系统看作一个整体,分析系 统间的共性和可变性,并通过最大化的平台复用和个性化定制实现产品家族开发。软件产 品线方式具有低成本、高质量、缩短产品上市时间等优势,广泛应用于航空、航天、汽车、医 疗以及金融等面向多种任务和客户需求的软件密集型系统中。
[0003] 在实际应用中,软件产品线的构建和投入使用需要精心规划。从一个软件产品线 中派生出满足用户需求且功能正确的软件产品是一个复杂的决策过程一一因为一个决策 不单单影响某一个产品,而且影响多个产品甚至是整个软件产品线。软件产品线工程一般 分为领域工程和应用工程两个阶段。在领域工程阶段,首先明确系统的领域范围,严格定义 系统所支撑的业务领域;最主要的就是获取需求,包括共性需求、可变性需求以及需求间的 交互与依赖等,其中共性需求明确定义了为不同组件集共享的系统功能,可变性需求描述 了各组件集所特有的系统功能。相应地,在领域工程阶段必须处理复杂的需求之间的结构 约束和交互关系。特征模型(FeatureModel-FM)是一种基于特征的描述软件产品线共性 和可变性需求,以及需求之间关系的模型。特征可定义为对软件系统中可识别的功能抽象, 即描述系统需求的行为逻辑单元。应用工程阶段负责从特征模型中派生出满足特定约束的 软件产品;该过程通过对特征的取舍实现产品配置,也称为产品配置过程。
[0004] 特征模型一般由树形结构图表示,称为特征图(FeatureDiagram-FD)。图中有 且仅有一个根节点,通常表示一个领域系统;一般节点表示特征,分为可选和必选两类; 边表示父节点与子节点特征自上而下的层次分解,包括〇r-group和Xor-group两种分 解模式;约束关系通过文本的形式表示,如requires和excludes等。自1990年Kang 等人[K.Kang,S.Cohen,J.Hess,ff.Novak,andS.Peterson.Feature-OrientedDomain Analysis(FODA)FeasibilityStudy[J].TechnicalReportCMU/SEI-90-TR-21,Software EngineeringInstitute,CarnegieMellonUniversity,November, 1990]在令页域分析方法 中引入特征模型以来,许多研宄在Kang等人的基础上对特征模型进行扩展,将更多的建模 元素融入到特征模型中,如特征属性、分组、视图等,使特征模型更容易理解且具有更强的 表达能力。特征模型描述了软件产品线中所有可能的配置集,其中一个配置表示一个有效 的软件产品,由一组通过遵循一定的约束规则从特征模型中选择出的特征组成;该约束规 则包括:1)如果一个特征出现在某个产品中,那么其父特征必须同时出现在该产品中;2) 如果一个父特征出现在某产品中,那么其所有的必选子特征必须同时出现在该产品中;3) 必须满足所有的约束条件。
[0005] 然而,随着特征数量的增加,特征模型以及对应的特征图变得越来越复杂,人工很 难对其进行分析和管理。例如,作为二维平面中的图形化特征模型,大数量级的特征模型不 可避免地会占用很大的物理空间,因此很难对其进行浏览、分析和解释。从语义方面来说, 特征模型代表软件产品线的产品配置空间。软件产品线中的产品数量随着特征数量的增加 呈指数增长。例如,在一个包含n个特征的特征模型中,可能包含2"个产品。因此,特征数 量的急剧增加不仅仅引起可变性管理方面的问题,同时为产品配置与分析验证带来更大的 挑战。具体表现在以下几个方面:
[0006] 1、缺乏对复杂特征模型的从不同侧面进行自动分析的支持;
[0007] 2、在软件产品线配置过程中未考虑用户特定需求驱动的约束关系;
[0008] 3、不能有效解决验证过程中随着特征数量增加而出现的状态爆炸问题。
[0009] 为此,以特征模型为基础,许多研宄提出了一系列软件产品线分析与验证方法。
[0010] 第一类方法基于特征模型的分解,即将一个特征模型分解成多个小的模型进行管 理和分析,主要包括:Archer等人[AcherM,ColletP,LahireP,etal.Slicingfeature models[C]//Proceedingsofthe201126thIEEE/ACMInternationalConferenceon AutomatedSoftwareEngineering.NewYork:ACM, 2011:424_427.]公开了一种对特征模 型切片的方法,主要思想是:采用程序切片的思想,根据所选择的特征集(切片准则)对一 个大而复杂的特征模型进行投影,得到一个只包含切片准则中特征的子特征模型。该子特 征模型仍是一个满足原特征模型约束关系的树形结构。
[0011] 第二类方法基于特征模型的融合,主要包括:Reiser等人[Reiser,M. 0. ,Weber,M.:Managinghighlycomplexproductfamilieswithmulti-levelfeature trees[C]//Proceedingsofthe14thInternationalConferenceonRequirementsEn gineering(RE'06),IEEE, 2006:146 - 155.]公开了一种使用多个特征图表示不同公司的产 品线,同时将多个特征图组合成一个层次结构。主要思想是:多个特征图分别代表公司各合 作部分,各合作部门可以独自管理一个规模相对小的特征模型,而某个特征模型的变化通 过组合层次结构传播到其他的特征模型,实现整个产品线的一致性管理。
[0012] Segura[SeguraS.Automatedanalysisoffeaturemodelsusingatomic sets[C]//ProceedingsoftheFirstWorkshoponAnalysesofSoftwareProduct Lines(ASPL2008).Limerick,Ireland. 2008:201 - 207]公开 了一种基于原子集自动化分 析特征模型的方法,其中原子集指包含特征模型中具有必选关系(Mandatory)的父特征和 子特征的逻辑单元。主要思想是:利用原子集方法简化特征模型,实现从根本上减少可变点 数量,从而减少内存消耗并提高分析效率。
[0013] 第三类方法采用自动化机制从特征模型抽取出相关信息,主要包括:
[0014] Benavides等人[BenavidesD,SeguraS,Ruiz_Cort6sA.Automated analysisoffeaturemodels20yearslater:Aliteraturereview[J].Information Systems, 2010, 35(6) :615-636.]总结了近20年以来基于特征模型的自动化分析操作,如 Void、Validproduct、Allproducts、Validpartialconfiguration、Filter、Anomalies detection、Optimization等。
[0015]Benavides等人[BenavidesD,SeguraS,TrinidadPetal.FAMA:Toolinga frameworkfortheautomatedanalysiso
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1