没有合适的资源?快使用搜索试试~ 我知道了~
可在www.sciencedirect.com在线获取理论计算机科学电子笔记302(2014)111-132www.elsevier.com/locate/entcs一种基于本体规则的特征模型死特征和假特征L.F. Rinc'ona,1,G. L. Giraldoa,1,R. Mazob,2和C. Salinesib,2aDepartamentodeCienciasdelaComputaci'onydelaDecisi'on,NationalUniversityofColombia,Medell'ın,哥伦比亚bCRI,Panth'eonSor bonneUniversity,Paris,France摘要特征模型是通过表达软件产品可能具有的一组特征组合来表示软件产品线可变性需求的常用方法。 因此,保证特征模型的质量对于保证软件产品线工程的质量至关重要。然而,特征模型可能有几种类型的缺陷,这些缺陷会破坏软件产品线工程的好处。这些缺陷中的一个是死特征和假可选特征。几种最先进的技术可以识别这些缺陷,但只有少数技术能够解决识别其原因的问题。此外,他们提供的解释是繁琐的,很难理解的人。在本文中,我们提出了一个本体论的基于规则的方法:(a)确定死和假的可选功能;(b)确定这些缺陷;以及(c)用自然语言解释这些原因,帮助建模者纠正发现的缺陷。我们代表我们的方法与文献中的特征模型。 初步经验评价我们的方法超过31个功能模块表明,我们的建议是有效的,准确的和可扩展到150个功能。保留字:特征模型,缺陷,本体,软件工程1介绍软件产品线(SPL)是一系列具有通用和可变功能的相关软件系统,其首要目标是可重用性[5]。广泛的研究和行业经验已经广泛证明了软件产品线工程(SPLE)实践的显著优势。其中包括:缩短上市时间,增加资产重用和提高软件质量[6]。SPLE通常使用功能模型(Feature Models,FM)来表示软件产品可以具有的功能的正确组合。特别地,FM描述了特征及其1电子邮件:{lufrinconpe,glgiraldog}@ unal.edu.co2电子邮件:{raul.mazo,camille.salinesi}@ univ-paris1.frhttp://dx.doi.org/10.1016/j.entcs.2014.01.0231571-0661 © 2014 Elsevier B.V. 在CC BY-NC-ND许可下开放访问。112L.F. Rincón等人理论计算机科学电子笔记302(2014)111建立产品线的有效产品的依赖关系[13]。FM也被证明是有用的,有效地与客户和其他利益相关者,如营销代表,经理,生产工程师,系统架构师等进行沟通。因此,拥有正确代表产品线领域的FM对SPLE生产方法的成功至关重要然而,创建正确表示其意图表示的域的特征模型并不是微不足道的[3]。事实上,当构造FM时,可能无意中引入缺陷。死的和假的可选特征是与功能模块的语义直接相关的两种类型的缺陷。如果一个功能不能出现在产品线的任何产品中,那么它就是死的[13]。如果一个特性被声明为可选的,但它出现在产品线的所有产品中,则它是假可选的[42]。由于FM能够衍生出潜在的大量产品,FM中的任何缺陷都将不可避免地影响产品线的许多产品[19]。许多研究集中在识别FM中的死和假可选特征[13,42,8,28,40,34]。其他方法专注于识别无效和错误的可选功能,并识别产生这些缺陷的原因[38,35]。其他一些作品甚至提出使用本体来表示FM [9,30,14],其他作品提出使用本体来识别FM中的缺陷[1,23,41]。然而,很少有研究人员已经解决了识别产生这些缺陷的原因并用人类可理解的语言解释它们的问题这意味着一旦发现缺陷,就需要手动检查模型以查找缺陷发生的原因。一旦工程师知道为什么会出现缺陷,他们就可以尝试修复它们。 我们的意见是,这是一项繁重的任务。事实上,寻找缺陷的原因与寻找缺陷本身一样复杂,即使缺陷已经知道。因此,我们认为,如果我们真的希望FM验证方法在行业环境中有效,解决这个关键问题至关重要。我们的总体目标是找到一种通用技术,该技术将指出使用不同符号指定的产品线模型上的各种缺陷的原因。在本文中,我们提出了实现这一目标的第一步。特别是,我们提出了一种基于本体论规则的方法来分析死和假的可选功能在FM,即:确定功能的FM是死的或假的可选,确定这些缺陷的原因,并解释每个原因在自然语言。我们希望这些信息可以帮助产品线工程师在未来的工作中避免同样的错误,并理解为什么会出现死的和错误的可选功能[35,33]。我们最初的贡献可以概括如下:(i) 我们提出了一个框架,该框架:识别FM中的无效和错误可选特征,识别这些缺陷的原因,并使用自然语言对每个检测到的原因进行解释。(ii) 我们构建了特征模型本体,并使用一阶逻辑形式化了六条用于识别死特征的规则和三条用于识别假可选特征的规则每个规则都定义了一种情况,在这种情况下,一个功能是死的或假的可选的。这样,我们就知道了每种缺陷的原因,并建立了相应的解释。我们根据经验定义了这些规则L.F. Rincón等人理论计算机科学电子笔记302(2014)111113[19,29]和在文献中发现的规则[40]。(iii) 我们开发了一个自动化工具来实现我们的方法。我们的验证结果表明,我们的方法是有效的和可扩展的,直到FM的150个功能。本文其余部分的结构如下。第2节简要概述了理解第3节中提出的框架所需的概念。第4节介绍了实施细节。第5节介绍了我们的方法的精度和可扩展性第六节介绍相关研究。最后,第7节给出了结论,并提出了未来的研究方向。2一般概念2.1特征模型特征建模是在[13]中提出的一种符号,作为他们对目标领域的可能产品进行领域分析的方法的一部分。在SPLE中,面向特征的领域工程师使用特征模型(FM)通过特征之间的依赖关系来表示目标领域的共同性和可变性[13]。在这种符号下,功能是直接影响最终用户的独特元素。每个特征是树结构中的一个节点,模型依赖关系是有向弧。树结构表示特征的分层组织FM的树根代表整个产品线,因此它是产品线的所有有效产品的一部分。由非根节点表示的每个特征仅当由父节点表示的特征也与产品相关联时才我们在本文中使用的特性符号和运行示例的元素分别在表1和图1中给出。这个例子将在第2.2小节中详细解释。图1.一、GLP特征模型基于Lopez-Herrejon和Batory提出的模型[16]114L.F. Rincón等人理论计算机科学电子笔记302(2014)111表1特征模型中的依赖关系类型符号相依性的所述类型强制性[13]子功能B应包含在所有包含父功能A的有效产品中,反之亦然。如果一个特性是强制性的,并且它的所有祖先也是强制性的,那么,这个特性是一个完全强制性的特性[40]。可选[13]子功能B可能包含或不包含在包含父功能A的有效产品中。但是,如果产品中包含了特征B,那么它的父亲A也应该包含在内。群基数[7]表示子要素的最小(m)和最大(n)数量(B. C)以基数(),当父特征A被包括在产品中时,产品可以具有。如果一个产品中包含至少m个子特征,那么父特征也应该包含在内。需要[13]功能B应包含在具有功能A.这种依赖是单向的。不包括[13]功能A和B不能同时存在于有效产品中。这种依赖是双向的。2.2运行实例在本文中,我们使用图形产品线(GPL)的改编版本作为运行示例[16]。图1显示了生成的模型。我们使用这个例子是因为它在产品线社区中是众所周知的,并且它被提议作为评估产品线方法的标准案例[16]。为了说明我们的方法,我们故意引入了八个死特征(参见,AF2、AF7、AF11、AF12、AF13、AF14、AF15和已连接)和三个假可选特征(参见,AF1,AF9,AF10)到原始模型中。我们使用了15个人工特征和25个依赖项来产生这些缺陷。所有的恐惧-tures和dependencies都有一个名称,以便更容易识别。我们识别了带有大写AF的人工特征和带有大写AD的人工依赖性。此外,我们用名称来标识模型的原始特征,并使用大写OD来构建原始依赖项的名称从GPL有向或无向导出的图形,它们的边是L.F. Rincón等人理论计算机科学电子笔记302(2014)111115加权或未加权,其搜索算法是广度优先搜索(BFS)或深度优先搜索(DFS)。本FM的所有产品实现以下搜索算法中的一个或多个:顶点编号(Number)、连通分量(Connected)、强连通分量(StronglyCon)、循环检查(Cycle)、最小生成树(MST)和单源最短路径(Shortest)。此外,该FM具有限制先前描述的特征的有效组合的依赖性。例如,MST算法需要无向图(参见,OD 21)和加权边缘(参见,OD 20),并且StronglyCon算法需要有向图(参见,OD 4)和DFS搜索算法(参见,OD 17)。2.3特征模型中的缺陷产品线模型中的缺陷是不受欢迎的属性,会对模型的质量产生不利影响[28,20]。在本文中,我们感兴趣的两种常见类型的缺陷的功能模块:死功能和虚假的可选功能。当一个特性不存在于产品线的任何有效产品中时,它就是死的[13,40,36,26]。当FM具有死特征时,模型不是域的准确表示[3]。事实上,如果一个特性属于一个FM,那么这个特性在领域分析师想要表示的领域中是很重要的。因此,应该可以将该功能纳入产品线的至少一个产品中[3]。如果一个特性在FM中被声明为可选,但它存在于所有有效的配置中,则该特性是假可选的[42,40,38,35]。这个缺陷也给出了一个错误的概念域表示FM。一般来说,当一个群基数定义错误[17]或者FM在与其特征相关的依赖关系中有误用时,就会出现死的和假的可选特征[3,42,40]。例如,如果一个完整的强制功能(出现在产品线的所有产品中的功能)需要一个可选功能,optional feature变成false optional [40].本体已被证明是有用的处理缺陷的FM。例如,在[1]中,作者使用本体概念之间的语义关系来定义一组规则,以识别与FM的一致性检查[19]相关的缺陷识别一个特性是否是必需的,同时另一个特性是否被排除)。这些规则允许作者对导致每个缺陷的本体个体(特征)进行分类。Noorian等人还使用本体来识别和修复与FM的一致性检查相关的缺陷[23]。特别是,他们使用Pellet[32]用于识别用描述逻辑表示的FM中的缺陷的推理器3提出的解决方案我们通过两个小节介绍我们的方法。第一个介绍了我们如何构建特征模型本体,这是一个本体,代表了一个FM元模型第二个提出了缺陷分析器框架:我们的方法,使用的功能模型本体识别死和假的可选功能在FM,确定其原因,并解释自然语言为什么这些缺陷发生。116L.F. Rincón等人理论计算机科学电子笔记302(2014)1113.1特征模型本体:如何构建本体是一个共享概念化的形式化的明确规范[4,11]。与功能模块相同,本体有助于识别和定义领域基本概念以及它们之间的依赖关系。本体包括类、属性、约束和个体[12]。类是与本体领域相关的主要概念。个体代表感兴趣领域中的对象属性是数据类型属性或对象属性。对象属性将它们之间的本体个体关联起来,而数据类型属性将本体个体与具体值(例如,整数值)关联起来。最后,约束描述了个体必须满足的属于某个类的限制。在本文中,我们使用本体来构建我们的特征模型本体(cf.图2)。特征模型本体以本体的形式表示FM概念。这种表示使我们能够利用的语义之间的关系,涉及的概念在功能模块。例如,我们可以请求具有相同父项的特征,或者通过强制性相关的特征,同时排除依赖性。我们使用Noy和McGuinness [ 24 ]提出的构建本体的指南构建了特征模型本体,并采用了Mazo等人提出的基于UML的FM元模型。 [19](cf. 图3)。我们分离的元模型类功能的本体类NotRootFeature和RootFeature的目的是在本体表示,FM只有一个根功能。此外,在要素模型本体中,元模型类对应于本体的类;元模型类之间的依赖关系表示为本体对象属性;而组基数元模型类的属性图二、提出了表示特征模型的本体图3.第三章。 特征模型元模型的基础上提出的一个Mazo等人。 [19个]L.F. Rincón等人理论计算机科学电子笔记302(2014)111117表示为本体数据类型属性。此外,元模型类之间的继承依赖表示为isA依赖。值得注意的是,我们不考虑我们的本体中的特征属性(也不在我们的FM元模型中),因为属性不涉及我们感兴趣的FM缺陷。由于我们使用本体类和属性来表示FM元模型,如果个体在种群过程中违反了为类或属性定义的条件,本体就会变得不一致(这个问题超出了本文的范围)。然而,Mazo等人 [19]和Noorian等人 [23]提供了关于此主题的更多细节)。使用本体来表示FM并不新鲜;事实上,有几个作品使用本体来表示FM,因为本体增加了FM提供的表达水平[9,30]。其他作者的动机是这样一个事实,即FM的本体表示可以验证特征模型及其元模型之间的一致性[23]。甚至其他人的动机是这样一个事实,即本体表示允许推断关于FM的有趣信息;例如,获得兄弟特征[1]。3.2缺陷分析器框架我们的缺陷分析器框架由两个一般输入形成:(i)特征模型本体和(ii)要分析的FM;三个主要部分:(i)Transformer,(ii)缺陷的标识符和(iii)解释器;以及两个输出:(i)死特征,它们的原因和它们的解释,以及(ii)错误的可选特征,它们的原因和它们的解释。图4显示了拟议框架的概述见图4。 提案框架概述118L.F. Rincón等人理论计算机科学电子笔记302(2014)111首先,Transformer接收在小节3.1中解释的特征模型本体以及我们想要识别死的和假的可选特征、它们的原因以及它们的解释的FM作为输入利用该信息,Transformer生成具有要分析的FM的元素的新的特征模型本体作为输出(参见3.2.1小节)。其次,以填充的特征模型本体作为输入,缺陷识别器识别FM的失效和错误可选特征以进行分析以及每个缺陷的原因(参见第3.2.2小节)。最后,解释器使用填充的特征模型本体、识别出的缺陷及其原因,以自然语言为每个原因创建解释(见3.2.3小节)。有了所有这些信息,该框架产生作为输出的已识别的失效和错误可选特征(如有)、每个缺陷的原因以及每个已识别原因的自然语言解释。下面的小节解释并详细介绍了我们框架的每个主要部分3.2.1TransformerTransformer部分负责使用FM的元素填充特征模型本体填充本体包括在本体的类首先,Transformer读取输入FM的每个元素,其次,它在相应的本体类中创建一个个体,并填充每个个体的属性在我们填充的特征模型本体中,FM依赖关系是以下本体类之一的个体:可选,强制,要求和排除。Transformer在其中创建每个个体的类依赖于FM中的依赖类型。例如,依赖性OD 2(参见,图1)是强制性本体类的个体。FM的所有特征都是通过特征类继承的个体 此外,FM根是RootFeature本体类的个体,并且所有其他特征是NotRootFeature本体类的个体。例如,在我们运行的示例中,GPL是RootFeature本体类的个体,而Search是NoRootFeature本体类的个体。Transformer填充它使用从输入中获得的信息创建的每个个体的属性例如,根据我们的特征模型Ontol-ogy,本体类Dependent的个体(例如, 我们运行的示例中的R3)具有属性hasDependencySource(GPL)和hasDependencyDestination(Search)。缺陷分析器框架的其他组件使用填充有FM的信息的特征模型本体来分析FM。3.2.2缺陷鉴定人缺陷的标识符是在填充的特征模型本体中标识死的和假的可选特征及其原因的部分。L.F. Rincón等人理论计算机科学电子笔记302(2014)111119我们定义了一组规则,这些规则代表了导致死特征的FM依赖项中的六种特定误用情况,以及导致错误可选特征的三种特定情况。因此,当缺陷的识别器在填充的特征模型本体上应用这些规则时,识别的特征被认为是死的或假的可选特征,并且每个使用的规则是产生识别的死的或假的可选特征的原因。使用规则来检测无效和错误的可选特性并不新鲜。例如,Van der Massen和Lichter [40]定义了六条规则来识别FODA模型中的缺陷然而,本文提出的方法考虑了这两条规则以及我们通过与FM合作的学术和行业经验确定的另外七条规则[29,2,10,22,18]。对于每一条规则,(i) 详细说明原因,作为对缺陷的一般解释(ii) 在一阶逻辑(iii) 提供说明模板(iv) 呈现基于我们的运行示例的示例(参见,图1)。我们用一个或多个Horn子句来描述每个规则[39]。在我们的Horn子句中,前因是为了产生被分析的缺陷而必须一起出现的条件,后因是一个特性是死的或假的可选的。我们的九条规则旨在识别死的和假的可选特征,并确定它们的原因。第一条规则是关于可选特性,当它们被完全强制性的特性要求时,它们就变成了假可选。第二条规则是关于可选特性的,当它们成为一个组基数的一部分(具有一个完全强制的父亲)时,这些可选特性变成假可选的,该组基数具有一个或多个死特性。第三条规则是关于可选特性,当它们被另一个假可选特性所需要时,它们就变成假可选特性。第四条规则指的是那些被完全强制性功能排除在外的可选功能。第五条规则是关于那些被虚假的可选特征排除在外的可选特征。 第六条规则涉及当其祖先之一也死亡时变得死亡的可选特征。第七条规则是关于可选特性,当它们需要死特性时,它们就变成死特性。第八条规则是关于可选特性的,当它们成为一个群基数的一部分时,就会变成死的,而这个群基数中有一个或几个假的可选特性。最后,第九条规则指的是可选特性,当它们需要成为组基数的一部分的特性(具有完整的强制父亲),但所需特性的数量超过了组基数的上限时,这些可选我们使用以下一阶逻辑谓词、函数和集合将规则形式化为Horn子句:• requires(x,y):这个谓词表示特征x需要特征y。在120L.F. Rincón等人理论计算机科学电子笔记302(2014)111我们的运行示例需要(Cicle,DFS)。• excludes(x,y):这个谓词表示特征x和特征y是互斥的。在我们的运行示例中排除了(BFS,F2)。• ancestor(x,y):这个谓词表示特征x是特征y的祖先。在我们运行的例子中,祖先(GPL,加权)和祖先(GPL,搜索)。• nameDependency(x,y):该函数返回将特征x与特征y相关联的给定依赖项的名称。在我们运行的示例中,nameDependency(GPL,Search)返回OD2。• 模型特征集:这个集合表示特征模型的所有特征的集合。• OpSet:这个集合表示特征模型的所有可选特征的集合。• FMSet:这个集合代表了一个特征模型的所有强制特征的集合• DeadSet:这个集合代表了一个特征模型中所有死特征的集合。• FalseOptionalSet:这个集合表示FM的所有假可选特征的集合。其中OpSet-FMSet-DeadSet-FalseOptionalSet-ModelOptionalSet为了表示规则,假的可选特征将用首字母缩写FO来指代,而死的特征将用首字母缩写DF来指代。规则FO1当一个完整的强制性特征需要一个可选特征时,一个可选特征就变成了假可选。正式化:说明模板:特征y是false可选的,因为它是依赖项名称Depth(x,y)中的完整强制特征x所必需的。应用到运行的示例:特性AF 1是false可选的,因为它是依赖项AD 15中的完整强制特性Search所必需的。规则FO2当一个可选特征被一个具有失效特征的组基数(具有完全强制的父项)分组时,它就变成了假可选。必须选择满足较低组基数的特征。正式化:z=当前FM的组基数(父特征为完全强制性)m=zDFGroupSet=属于z的失效要素NotDFGroupSet=属于z的未失效要素GroupGroupSeturesSet=按组基数z分组的要素L.F. Rincón等人理论计算机科学电子笔记302(2014)111121其中:然后,集团简介企业文化NotDFGroupSet=GroupDatauresSet\DFGroupSet|= m → NotDFGroupSet错误OptionalSet| = m →NotDFGroupSet ⊆ FalseOptionalSet解释模板:特征y是false可选的,因为它必须被选择以满足它所属的群基数z的下界m。应用于运行的示例:特征AF 10是false可选的,因为它必须被选择以满足它所属的组基数AD 24的下限1。规则FO3当一个可选特性被另一个假可选特性需要时,它就变成假可选特性。正式化:x∈FalseOptionalSet,应用于运行示例:特征AF9是假可选的,因为它是假可选AF 1到依赖性AD 20所必需的。规则DF1当一个可选特性被一个完整的强制特性排除在外时,它就失效了。正式化:excludes(x,y)→y∈DeadSet解释模板:可选特性y是死的,因为完整的强制特性x通过依赖项名称Deputy(x,y)排除了它。应用于运行示例:可选特性AF 11失效,因为完整的强制特性AF 8通过依赖性AD 17排除了它。规则DF2当一个可选特性被一个假的可选特性排除时,它就变成死的正式化:Optional featurey是死的,因为false optional featurex通过dependencynameDependency(x,y)排除了它。应用到运行的示例:可选特性AF7是死的,因为假的可选特性AF9通过依赖性AD18排除了它。规则DF3当一个特征的一个祖先死亡时,该特征也就死亡。正式化:x∈DeadSet,122L.F. Rincón等人理论计算机科学电子笔记302(2014)111解释模板:特征y是死的,因为它的祖先特征x也是死的。应用于运行的示例:功能AF14是死的,因为它的祖先功能AF11也是死的功能该规则还识别了我们运行示例中的另外两个失效特性:AF12是AF13。规则DF4当一个特性需要另一个失效特性时,它就失效了。正式化:x∈ModelluresSet,requires-type依赖项的名称是nameDependency(x,y)。应用到运行的例子:功能AF15是死的,因为它需要死的功能AF12。requires-type依赖项的名称是AD 16。规则DF5如果一个特征属于一个组基数,并且假可选特征的数量等于基数上界,则该特征变为死特征。正式化:z=当前FM的组基数n=zFOGroupSet=属于z的假可选特征的集合NotFOGroupSet=属于z的非假可选特征的集合GroupOptionsSet=由组基数z分组的特征的集合其中,然后,FOGroupSet--|= n →NotFOGroupSet| = n → NotFOGroupSet ⊆DeadSet解释模板:Feturey是死的,因为它不能从它的组中选择基数z应用到运行的例子:特征AF 2是死的,因为它不能从它的组基数AD 23中选择。规则DF6如果一个可选特性需要属于组基数的特性,但所需特性的数量大于组基数的上限,则该可选特性将成为死特性。正式化:z=当前FM的组基数(父特征为完全强制性)n=zDFGroupSet=属于zIncludesIncludesUresSet=属于z且被另一个包含的要素L.F. Rincón等人理论计算机科学电子笔记302(2014)111123图五、规则集合之间的关系FM的特点GroupBulluresSet=按z分组的要素集其中:然后,包含参数集参数组参数集参数模型参数集y∈OpSet,∧|包含的费用设置|>n → y ∈ DeadSet解释模板:特征y是死的,因为它需要属于组基数z的特征In-cludesourcesSet。所需特征超过群基数z的上限n。应用到正在运行的示例:连接的特征是死的,因为它需要属于组基数OD 26的有向、无向特征。所需特征超过组基数OD 26的上限1。值得注意的是,上述规则相互关联。这些关系如图5所示。在该图中,识别过程从通过规则DF 1发现的失效特征和通过规则FO 1发现的假可选特征开始。然后,规则DF2、DF5和DF6接收识别的假可选特征作为输入,并识别失效特征。因此,规则FO2接收死特征作为输入,并识别假的可选特征。规则FO3接收错误可选特征作为输入并识别新的错误可选特征,规则DF3和DF4接收失效特征作为输入并识别新的失效特征。当缺陷识别器执行所有规则并且没有发现新的失效或错误的可选特征时,该过程结束。相反,如果出现新的死的和假的可选特征,缺陷识别器会再次运行所有规则,使用假的可选特征和死的特征作为输入来寻找新的特征。3.2.3解释者一旦缺陷识别器识别出死的和假的可选特征及其原因,解释器就根据用于发现每个缺陷的规则用自然语言构造解释。在解释过程中,解释程序执行以下任务:124L.F. Rincón等人理论计算机科学电子笔记302(2014)111• 它获取用于识别每个错误的可选或失效特征的规则• 它采用与在任务中识别的规则相关联的解释模板。• 它用来自填充的特征模型本体的相应实例填充手头的解释模板。值得注意的是,如果一个特性涉及到多个规则,那么缺陷识别器会识别出所有不同的规则,这些规则用于识别这个失效或错误的可选特性。因此,解释器为每个规则做出不同的解释。在我们的例子中,F2就是这种情况:(i)规则DF 1识别出特征F2是死的,因为它被完全强制特征F3排除;(ii)规则DF 5识别出特征F2是死的,因为它属于一个群基数<1。1>其中一个是束的特征(即,F1的孩子)是假的可选特征(由于依赖性A15)。在这种情况下,解释器提供对应于(i)的解释和对应于(ii)的另一个解释。4实现细节上述本体和框架使用Java实现为原型工具,JESS(Java专家系统Shell)3推理机在SQWRL中执行查询[25]。我们的方法分两个阶段实施。在第一阶段,我们使用Protege3. 4. 8创建了表示FM元模型概念的本体论模型。在第二阶段,我们使用Java将缺陷分析器框架的每个部分实现为一个组件。一般来说,每个组件的工作原理如下:4.1Transformer本部分使用SPLOT网站中提供的库,用于读取简单XML要素模型(SXFM)格式的FM。然后,该组件使用Jena4来操作Java内部的本体,以便使用所分析的FM的信息在特征模型本体当Transformer结束填充本体时,它将创建一个新的OWL5文件,该OWL 5文件中的特征模型本体填充有所分析的FM的信息。我们的特征模型本体的OWL文件填充了运行的示例,可以在线获得6。4.2缺陷鉴定人本部分使用SQWRL来实现第3节中介绍的规则。一个SQWRL查询包括一个前件和一个后件,用OWL类和属性表示。先行词定义了个人3http://herzberg.ca.sandia.gov/jess4http://jena.apache.org5本体网络语言(OWL)是一种用于描述本体之间的类和依赖关系的语言。有关详细信息,请访问http://www.w3.org/TR/owl-guide/6https://sites.google.com/site/raulmazo/L.F. Rincón等人理论计算机科学电子笔记302(2014)111125必须满足才能被选择,并且结果指定了要在查询结果中选择的个体。在我们的方法中,SQWRL使用特征模型本体中定义的类和属性来查询表示为本体个体的FM的信息。缺陷识别器执行并操作Java中的所有规则。为了节省空间,我们只给出第一条规则的源代码(即,FO1),其中完全的强制性功能需要可选功能。然而,我们的九条规则具有类似的结构。(1) 需要(?z)(2) 可选(?(w)∧(3) hasDependencyDestination(?W,?(a)(4) hasDependencySource(?z,COMODIN)(5) hasDependencyDestination(?z,?a)→(6) sqwrl:selectDistinct(?a)、第1行到第5行定义了一个特性可以被认为是false可选的条件。第1行表示本体类Requires的任何实例,第2行表示本体类Optional的任何实例。本体类Requires和Optional是特征模型本体中本体类Departure的子类(参见图2)。第3行到第5行使用属性hasDependencyDestination和hasDependencySource将依赖项与其相关特性链接起来(参见图2)。这些属性的第一个参数是Dependency类的个体,第二个参数是Feature类的个体。第3行中的COMODIN是一个参数,它将被识别的个体的值作为完全强制性的特征。COMODIN的值取决于每个规则(例如, 在规则DF2中,COMODIN对应于假可选特征,但在规则DF3中,COMODIN对应于死特征)。第6行是这个查询的结果,包括选择特征?a.4.3解释者一旦4.2小节中给出的规则识别出错误的可选或失效的特性,解释器就会执行一个新的SQWRL查询,以获取与当前缺陷相关的依赖关系和其他特性,并填充相应规则的解释模板。例如,下面的SQWRL从规则FO1中获得与每个假可选特征相关的依赖性和特征。(1) 需要(?z)(2) hasDependencyDestination(?z,COMODIN)∧(3) hasDependencySource(?z,?b)→(4) sqwrl:selectDistinct(?b)、∧(5) sqwrl:selectDistinct(?(z)第1至3行定义了 必须满足个人的 必 要 条 件 。b和?在查询中选择z。第1行表示本体类Requires的任何实例。第2行和第3行定义了本体类Requires的特征源和目的地。第2行中的单词COMODIN是发现126L.F. Rincón等人理论计算机科学电子笔记302(2014)111图第六章对应于分析我们的FM运行示例生成的部分结果的快照在4.2小节中提出的查询。这个SQWRL查询的结果包括选择特征?b需要假的可选特性COMODIN和requires-type依赖关系?Z从?b为COMODIN。因此,对应于规则FO1的解释如下:“功能COMODIN是假可选的,因为它是必需的完整的强制性功能?B在依赖?z.”4.4缺陷分析工具:图形演示我们对实现缺陷分析器框架的工具做了一个图形演示。该工具接收用户通过“选择文件”按钮选择的SXFM格式的FM作为输入。一旦用户按下然后,缺陷识别器和解释器在填充的特征模型本体上执行定义的SQWRL规则。最后,识别出的无效和错误的可选特征,以及它们在自然语言中的原因会呈现给用户。图6对应于我们分析运行示例时从我们的工具中获得的部分反馈的快照。5初步评价我们评估了我们的方法的精度和可扩展性,如表2所示,我们使用了31个聚类模型 。 其 中 一 个 模 型 对 应 于 图 形 产 品 线 模 型 [16] , 其 他 30 个 模 型 是 使 用 分 析(BeTTy)工具[31]上的BEnchmarking和Testing生成的随机FM。我们的初步评估是在以下环境中进行的:笔记本电脑与Windows 7旗舰版的32位,处理器英特尔酷睿i5- 2410 M,CPU 2.30 GHz,和RAM内存的4.00 GB,其中2.66 GB是可用的操作系统。L.F. Rincón等人理论计算机科学电子笔记302(2014)111127表2功能模型基准测试集数量的特征525325075100150多款车型5515555%需要并排除依赖项404018404040405.1精度我们在三个阶段手动测试了我们的方法。首先,我们验证了它没有产生假阳性。其次,我们验证了所提出的解决方案识别了我们的规则集合中考虑的100%的死和假可选特征最后,如果FM具有无效或错误的可选特征,我们验证原因是否一致 对于产生缺陷的情况,并且解释模板中填充的空间对应于每个模型的实际情况在第一阶段,我们手动比较了死的和假的可选特征与从FaMa [37]和VariaMos[21]获得的结果。我们发现,我们的建议识别了100%的死亡和虚假的可选功能,满足我们的规则,误报率为0%。对于第二和第三阶段,我们对每个集群的运行示例和两个模型(随机选择)进行了正确性的手动检查。我们发现,我们的建议很好地构建了正确的解释;即,它们与每个缺陷的原因一致。图7显示了我们在初步评估中使用的每个FM中发现的无效和错误可选特性的数量。图第七章 按模型尺寸识别的缺陷数量5.2计算可扩展性为了测试我们的方法的性能,我们计算了缺陷分析器执行我们方法的所有任务所需的计算时间(毫秒)。我们的解决方案分析31个特征模型所花费的时间如图8所示为了获得最准确的测量结果,128L.F. Rincón等人理论计算机科学电子笔记302(2014)111FM测试5次,这些值的平均值用作图8中相反,X轴表示每个模型的特征数量根据测试结果,我们的方法在FM中执行缺陷分析器不到5s,直到100个特征,在150个特征的模型上大约需要两分钟。重要的是要强调,FM的100个特征和FM的150个特征之间的结果的时间差异是由于我们的方法寻找满足填充的特征模型本体中的规则的死的和假的可选特征;因此,如果FM大小增加,搜索空间和执行时间相应地增加。6相关工作我们将相关的研究分为两组:第一组是与在产品线模型中使用本体相关的研究,第二组是与识别和解释死亡和虚假可选功能的原因对于第一组,Wang等人。 [41]建议用OWL本体语言表示FM及其约束。在他们的提议中,作者将每个特征表示为一个本体类,并将每个依赖关系表示为一个本体属性。他们的研究确定了无效的FM配置,并使用本体论术语解释了该配置无效的原因。然而,他们的方法并没有分析FM来识别和解释死特征或错误的可选特征。Abo,Kleinermann和De Troyer [1]提出使用本体来表示FM,并在它们表示产品线的不同视图时促进它们的集成此外,这些作者描述了SWRL(语义Web规则语言)规则来验证模型的一致性。它们将造成不一致的每种情况定义为前因,将所涉及的要素定义为后因然而,他们的研究旨在促进不同功能模块的整合,而我们的方法侧重于识别和解释死的和假的可选功能及其原因。此外,Lee等人。 [14]建议使用本体来表示FM,以分析其可变性和共性。即使他们使用本体来表示FM,他们的方法也与我们的方法不同。他们使用本体来分析FM的语义相似性,而我们的方法使用本体来识别见图8。 缺陷分析器时间(特征数量与时间)L.F. Rincón等人理论计算机科学电子笔记302(2014)111129死和假的可选功能,并解释其原因。Noorian等人 [23]建议使用描述性逻辑来(i)识别SXFM中表示的FM中的不一致;(ii)识别产品线中产品机密的不一致;以及(iii)提出可能的纠正措施。他们在一个框架中实现了他们的方法,该框架使用OWL-DL来表示FM及其配置,并将Pellet [32]作为推理器。我们还使用SXFM来表示FM和描述逻辑来表示我们的本体。然而,我们专注于识别和解释无效和错误的可选功能,而不是像Noorian等人那样进行一致性检查[19]。 此外,我们的方法可以检测到结构缺陷,如果我们验证(使用相应的Protgs功能)的本体填充后的一致性。对于第二组,进行了几项工作,以自动识别FM上的死特征(和其他缺陷)[13,42,8,28,40,34]。然而,这些作品都没有涉及到确定原因并用自然语言解释死的和错误的可选特征。Trinidad等人 [35]提出了一种自动化方法,用于识别和解释缺陷,例如FM中的无效特征或错误的可选特征。作者将功能模块转换为诊断问题,然后转换为约束满足问题。他们在Fa
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Haskell编写的C-Minus编译器针对TM架构实现
- 水电模拟工具HydroElectric开发使用Matlab
- Vue与antd结合的后台管理系统分模块打包技术解析
- 微信小游戏开发新框架:SFramework_LayaAir
- AFO算法与GA/PSO在多式联运路径优化中的应用研究
- MapleLeaflet:Ruby中构建Leaflet.js地图的简易工具
- FontForge安装包下载指南
- 个人博客系统开发:设计、安全与管理功能解析
- SmartWiki-AmazeUI风格:自定义Markdown Wiki系统
- USB虚拟串口驱动助力刻字机高效运行
- 加拿大早期种子投资通用条款清单详解
- SSM与Layui结合的汽车租赁系统
- 探索混沌与精英引导结合的鲸鱼优化算法
- Scala教程详解:代码实例与实践操作指南
- Rails 4.0+ 资产管道集成 Handlebars.js 实例解析
- Python实现Spark计算矩阵向量的余弦相似度
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功