没有合适的资源?快使用搜索试试~ 我知道了~
软件产品线开发中的需求可变性管理:基于图形转换的实现方法
理论计算机科学电子笔记152(2006)161-173www.elsevier.com/locate/entcs通过MDAtM支持需求可变性 和GraphTransformatonJavier Pérez1,Miguel A.拉古纳一号,Yania Crespo González-Carvajal1和Bruno González-Baixauli1Departamento deInformáticaUniversidad deValladolid巴利亚多利德,西班牙摘要软件产品线开发成功的最重要因素之一是可变性的获取、管理和表示。特征模型被用作表达需求可变性的关键工件,并且是域体系结构设计的基础。 在这种情况下,本文探讨了模型驱动工程(MDE)的可能优点,并展示了从特征模型到体系结构模型的自动转换。这种转换被理解为图转换过程,因为它提供了一种自然的方式,来表示模型转换。通过定义一个简单的上下文敏感的图形语法来应用转换,其中产生式规则从功能和架构模型的元模型中获得。TM关键词:MDE,需求可变性,特征模型,MDA ,图形变换,分层图文法1引言产品线(PL)已经成为复用领域中最成功的方法,这是由于粗粒度组件(即软件体系结构和软件组件)与自顶向下的系统方法相结合,其中软件组件集成在高层结构中。然而,产品线是一个非常复杂的概念,需要一个伟大的工程师,1电子邮件:{jperez,mlaguna,yania,bbaixauli}@infor.uva.es1571-0661 © 2006 Elsevier B. V.在CC BY-NC-ND许可下开放访问。doi:10.1016/j.entcs.2005.10.023162J. 佩雷斯等人理论计算机科学电子笔记152(2006)161技术架构定义、开发、使用和实例化[2,4]以及组织业务视图[1]维度。此外,软件开发过程的标准建议传统上忽略了重用问题,尽管它们具有公认的优势[12]。我们的建议是引入一种基于产品线的重用方法,这种方法需要的投资更少,并且比传统的产品线方法更早地呈现结果[14]。该建议将重用方法中的最佳实践(主要来自领域工程过程)纳入到应用工程过程的常规规程中。我们关注的第一点,因为它是最关键的一点,是产品线要求中可变性的引出和分析。我们已经探讨了两种技术:面向目标的需求工程和模型驱动架构(MDATM)。可变需求获取的目标方法已经在其他地方详细讨论过[8,9]。在本文中,我们专注于模型驱动架构。模型驱动体系结构(MDAtm)是由对象管理组织(OMG)提出的,它基于平台无关模型(PIM)的概念。PIM是系统在领域概念方面的规范,并且具有平台独立性(例如CORBA,.NET或J2EE)[10]。然后,系统可以将PIM转换为平台特定模型(PSM)[10]。由于MDAtm的主要优势在于对不同模型的操作和转换,并且在我们的过程中引入了特征模型和目标模型,因此在MDAtm环境中探讨这些模型与UML传统模型的关系是值得的。给出了从特征模型和目标模型到UML类图的转换。转换规则将被解释并在稍后建模为图形转换。图重写规则在元模型上指定。起始图是特征元模型的实例,而最终图是UML元模型的实例本文的其余部分如下:下一节(第2节)讨论MDAtm可以为产品线方法带来的好处,并解决从功能和目标模型到表示简单框架设计的一部分随后,第3节将展示如何使用图和图重写形式和工具实现转换。第4节总结了本文,并提出了进一步的工作。2 MDA和产品线需求工程OMG站点引用了MDAtm的一些成功经验。然而,关于MDATM在产品线开发中的应用,相关的问题是:在创建PIM时存在什么程度的真正自由?作为一个典型的例子,在克莱珀等人的书[13]翻译J. 佩雷斯等人理论计算机科学电子笔记152(2006)161163PIM是一组三个PSM,它们是预定义的具体解决方案:一个基于Web技术的PSM,另一个由Java Bean技术支持,第三个基于关系数据库。另一种方法,可执行UML范式[15]是特定于某种系统的,需要精确定义类和操作(使用非常接近传统代码的动作语义语言)。然而,当产品线需求模型被指定时,它的创建伴随着质量、安全等其他需求。这些非功能性需求决定了必须应用的架构解决方案和技术的类型。假设在前面的示例中,存在一组隐藏的NFR,这些NFR在PIM中没有指定。尽管存在这些不便之处,但值得分析MDAtm思想可以为该领域带来的可能性。从本质上讲,我们正在寻找产品线中最佳特定产品的(理想情况下是自动化的)派生,同时考虑功能和非功能需求,并使用目标/软目标和特征模型及其相关性作为起点。实际上可以执行这些模型之间的一组转换。产品线需求工程规程包括几个活动。主要活动涉及领域模型的规范,该模型由领域特征组成。针对这些需求的解决方案设计构成了产品线的架构资产基础(通常作为OO框架实现)。随后,在应用程序工程过程中,必须从域模型派生应用程序模型。在这个过程中,根据客户的功能和非功能需求选择替代概念。这个活动本质上是一个转换过程,在这个过程中,应用工程师做出的一组决策生成了初始的功能产品模型,并通过可追溯性链接生成了产品的初始架构。根据功能和非功能需求提供的基本原理,在概念层面上选择变化点。MDE(特别是MDAtm)的新颖之处在于,可以自动化指定如何将域特征模型的实例转换为工作应用程序的转换。MDATM适用性的先决条件是拥有每种技术的元模型。在图3中,展示了一个特性元模型。转换定义可以被看作是一个领域特定语言的编译器。特性/目标模型组合将使用转换定义、资产基础和客户需求编译为工作应用程序。在[4]中,MDAtm是一种在特定环境中获得产品的方法164J. 佩雷斯等人理论计算机科学电子笔记152(2006)161TMFig. 1. 产品线工程和MDA以及本研究的范围。 左右部分该图分别指产品线和应用程序流程产品线的类型,可配置的系列。作者的主要思想是,根据MDATM方法指定的软件系统是产品线的一个特殊情况,其中最具特征的变化点由在不同平台上实现相同功能的产品对替代平台的选择是这种产品线中的一个变化点。这个变化点可以从具体化模型中分离出来,并在转换定义本身中进行管理与传统开发相比,MDAtm的主要好处是平台变化点的管理由转换步骤自动处理,而不是产品工程师所关心的问题。然而,产品的最终平台并不是产品线中需要管理的唯一变化点。不同的产品线成员在功能和非功能需求方面存在差异。核心问题是,MDATM是否可以通过添加指定可以选择替代概念的位置的信息来轻松适应这些可变需求。从这个领域模型中选择不同的概念,然后产生特定于应用程序的不同PIMs,如果实现了适当的转换定义,可以使用MDAtm方法自动转换为PSM。一般示意图如图1所示。从应用程序模型到特定平台(.NET或EJB),可以定义常规的PIM到PSM转换,这是唯一典型的J. 佩雷斯等人理论计算机科学电子笔记152(2006)161165MDATM转换,其中从特征模型和资产库获得的初始应用程序模型(手动完成)被转换为特定的PSM或PSM集。图1中的其余模型可以被视为PIM。这些PIM可以通过自动化或非自动化转换进行关联。必须详细检查MDATM基本上有两种类型的转换:• 水平:选择目标/软目标组合、特征模型配置和框架实例化• 垂直:PL目标模型到PL特征模型的转换,PL特征模型到PL架构(领域框架)的转换,以及并行应用程序的等价物。一些特征模型可以包含平台或上下文信息(如可变点),但由于我们使用软目标模型来表达非功能性变量需求,因此特征模型基本上是面向功能的。观察图1并从水平的角度来看,我们可以得出一些结论,与转换的自动化程度无关。特征模型的传统配置步骤包括施加一组约束,这些约束起源于特征子图的选择,可能有一些替代变体推迟到执行时间(Czarnecki将配置与特征子模型的派生的专门化机制区分开来[7],但为了简单起见,我们只将配置视为水平变换)。有几种工具以选择变体,例如向导或类似图形的语言,并且它们的使用指导特定应用模型的实例化。困难在于,特征的组合必须由领域专家根据他的经验而不是客观数据来决定。使用我们的互补目标/软目标模型实现了双重目的,它允许应用工程师推断(如果仔细建立了可追溯性链接):(i) 达到选定目标(或功能要求)需要哪些功能(ii) 这是在一组软目标(或NFR)的上下文中的最佳目标/特征集合,所述软目标(或NFR)具有提供选择的基本原理的确定的在实践中,这意味着变量选择过程的抽象级别的提高,使得选择在需求级别而不是在166J. 佩雷斯等人理论计算机科学电子笔记152(2006)161特征水平。总之,这些水平转换是可以自动化的,但不是在MDATM的意义上[8]中描述的工具可以支持这一系列工作,尽管存在可扩展性问题,但所获得的结果是有希望的。在本节的其余部分,我们将关注图1的垂直可能性,基本上是从PL目标模型到PL架构的步骤应用程序目标、特性和架构模型可以更好地作为其PL对应模型的实例(水平转换)导出,而不是使用垂直方法。PL目标和特征模型之间的关系由于不同的目标和构建方法而不能简单地被认为是类似MDA的转换。目标模型确定了实现这些目标的不同方式的可变性(表示为子目标和实现这些目标的任务的树),而特征模型将系统的公共部分与可变部分分开。这个特征意味着,直到现在,这两个模型(如果我们考虑软目标模型,则是三个)必须由领域工程师手动构建,而不是独立构建。作为一个工作假设,一个任务必须仅由一个特性实现的约束将促进可追溯性和从目标配置中选择组件,并且还可能从PL目标模型导出初始PL从PL特征模型到PL体系结构转换的角度来看,我们选择的方法是基于元模型映射方法[6]。这项工作包括定义特征模型中的可变性元素和架构解决方案之间的一组转换(实际上,特征模型中的每种可变性都可以通过多种技术实现[5])。在图2中可以看到一个例子:一个特性模型被转换成一个表示简单框架设计的模型。定义转换的方法是选择特征元模型的一个元素,并在UML元模型中给出一个或多个等价物这意味着在特征模型中需要一个注释来选择一个可能的设计机制。由于我们需要对Meta模型进行精确定义,因此首先要考虑的是回答这些不同模型的元模型兼容性问题很明显,应用程序Meta模型就是UML元模型.在PL体系结构的情况下,也使用UML元模型(一些作者提出了扩展或概要来补充有关可变性的信息,这些信息可用于支持可跟踪性。)特征模型(和子模型)是使用其他概念构建的,但有几项研究使用MOF指定了不同的元模型我们已经探索了这些元模型,并得出结论,选举在很大程度上J. 佩雷斯等人理论计算机科学电子笔记152(2006)161167图二.残疾人通信领域的特征模型及基于组合、关联和特化转变过程。最初使用Massen建议[17],但最终选择Czarnecki等人最近提出的建议[7],因为相关变换的简单性。在这种方法中,关系的独特属性是基数。在图3的元模型中,关系是隐式的,转换的源必须是特性和特性组的基数属性3一个示例转换:PL特征模型到PL架构模型图3和图4分别显示了转换中涉及的模型,即特征Meta模型和UML部分元模型。图5中使用最新的QVT提交语法[11]以图形方式表示转换规则。这种转换的主要兴趣在于,一旦定义了它,就可以使用生成的框架通过选择所需的功能来自动派生应用程序模型,如上所述。该策略是考虑所涉及的每个特征子类型,从特征树图的根节点到叶节点对变换进行排序。首先,将特征模型转化为一个空间。然后转换根特征节点,并最终执行孤立特征和特征组的循环变换。一旦选择了元模型和转换规则,就需要一个正式由于所涉及的模型用图表示,图变换形式主义直接支持这些变换选择上下文分层图文法(CLGG [3])是因为它们允许指定规则排序。在CLGG中,可用规则集被划分为按有序层分类的不同子集要转换图形,必须逐层执行规则在可以应用属于上层的规则168J. 佩雷斯等人理论计算机科学电子笔记152(2006)161图三. 特征简化元模型,改编自Czarnecki et al.见图4。 部分UML元模型在较低层上不可能有可用的可应用规则。我们使用一个名为AGG [16]的工具,它支持CLGG和属性图语法(例如,允许使用属性,基数的语法)。AGG可以在没有GUI的情况下使用,作为一个单独的图形转换引擎,可以集成到专用工具中。这使得AGG成为实现MDE转换的最合适的工具。QVT规则已在AGG中实现每个转换规则定义都被转换为一组实现它的规则。不同的层被分配给与每个QVT定义相关的每组规则。这保证了规则的应用顺序与元模型映射定义所建立的顺序相同。图变换规则由三部分组成:左侧或正应用条件、右侧和一组负应用条件。规则的左边规定了一个必须在图中找到的态射J. 佩雷斯等人理论计算机科学电子笔记152(2006)161169图五、特征模型到UML元模型的转换定义应用这个规则。规则的右侧定义了左侧的哪些元素被删除,哪些元素被保留,以及在结果图中必须创建哪些新元素负应用条件定义了在图中不存在的子图能够应用该规则。在图形转换规则中必须考虑一些附加的限制例如,删除节点不允许在结果图中留下悬挂边由于这些限制,每个QVT定义都必须翻译170J. 佩雷斯等人理论计算机科学电子笔记152(2006)161一组图形转换规则。这一套可以看作是一个三阶段的转变过程。(i) 创建类:需要一个规则来从相应的PL特征节点创建PL体系结构类。必须声明否定的应用条件,以确保每个特性只执行一个转换。(ii) 移动子节点:需要一个或多个规则来移动特征节点及其子节点之间的所有链接。关系从特征节点移动到类节点。每个子节点类型定义一个规则。(iii) 删除特征节点:当不能应用更多的“移动子节点”规则时,将从图形中删除特征节点。由于悬挂边限制,不能删除具有子链接分层规则允许我们定义与QVT转换中定义的相同的执行顺序。因此,将RectureModelToClass空间规则分配给图层0,RootRectureToClass规则对应于图层1,SolitaryRectureToClass对应于图层2,RectureGroupToClass对应于图层3,GroupedRectureToClass对应于图层4.这个转换过程被声明为循环通过最后三个规则。这也是由AGG管理的,它允许作为一个例子,我们在图6中显示了实现RootDataureToClass转换定义的规则集。为了简化示例,每个模型使用一个链接类型,并且不使用基数两者都可以很容易地添加为节点/边属性。 在规则1中,对于每个RootFeature节点,创建相应的类。 请注意,在应用层0规则期间创建。还创建了RootFeature类和存储空间之间的关系定义一个否定的应用条件(图的最左边部分)是为了避免为每个RootFeature节点。在规则1和规则2中,子节点的链接被移动到已转换的RootFeature类节点。每个子节点类型需要一个规则在规则3中,左侧显示单个RootFeature节点应用此规则会导致删除RootFeature节点。前面在图2中介绍的示例在图7中用于显示如何将特征模型表示为一个图(起始图)。一旦应用了定义的重写规则,我们就得到了图8中的PL架构图,作为部分UML元模型的实例J. 佩雷斯等人理论计算机科学电子笔记152(2006)161171见图6。 RootFeature QVT的图形转换规则见图7。 初始图:一个简单的特性元模型实例见图8。 结果图:对应的框架架构4结论和今后的工作本文提出了一种使用MDE来支持需求可变性的方法。更准确地说,它探讨了特征模型到架构模型的转换。转换是根据QVT图定义的172J. 佩雷斯等人理论计算机科学电子笔记152(2006)161分别链接特性和UML元模型元素的ping规则。这种转换已被形式化,并通过图形转换实现。要转换的模型的表示已被定义为具有有向类型图的元模型实例。转换规则已经通过上下文分层图文法实现[3]。该过程已被图形重写工具AGG支持,该工具可以在没有GUI的情况下使用,并且可以在未来集成为我们自己的MDE工具中的本文以产品线开发为背景,讨论了MDATM等新技术在需求获取和分析过程中的可能性我们设想的解决方案将分几步实现:(i) 以明确的形式分离需求的不同方面,使用目标和软目标模型(如PIM)最终构建产品线特征模型。(ii) 将这组PIM转换为表示初始PL架构的新PIM(以面向对象框架的形式),并手动完成设计细节(但保存具有目标/特性变化点的可跟踪性链接)。(iii) 使用目标/软目标模型作为参考(并使用类似于[8]中描述的工具),导出最佳特征子图以解决产品线中的具体问题。(iv) 使用目标/特性子模型作为指导,从产品线体系结构构建新应用程序的体系结构PIM作为框架实例最直接的未决工作包括在转换规范和实现中包含显式的这种方法意味着支持元模型的增强确认这项工作得到了西班牙MEC/FEDER(TIN 2004 -03145)的支持。引用[1] L. Bass,P. Clements,P. Donohoe,J. McGregor,and L.诺斯洛普第四次产品线实践研讨会报告。技术报告CMU/SEI-2000-TR-002(ESC-TR-2000-002),软件工程研究所。卡内基梅隆大学,匹兹堡,宾夕法尼亚州15213(美国),2000年。J. 佩雷斯等人理论计算机科学电子笔记152(2006)161173[2] 博施。软件体系结构的设计使用。采用和发展产品线方法。Addison-Wesley,2000年。[3] 保罗·博托尼,加布里埃尔·坦策,安迪·舒尔。 基于关键对分析和上下文分层图变换的可视化语言高效分析。在VLIEEE计算机协会。[4] P.C. Clements和L.诺斯洛普软件产品线:实践与模式。软件工程中的SEI系列。Addison-Wesley,2001年。[5] K.Czarnecki和U.W. 艾森内克生成式编程:方法、工具和应用。Addison-Wesley,2000年。[6] K. Czarnecki和S.海尔森模型转换方法的分类。在OOPSLA[7] K.察尔内基山,巴西-地Helsen和U.艾森内克通过特征模型的专业化和多级配置实现分阶段软件过程改进与实践,10(2),2005。[8] B. González-Baixauli,Leite J.C.S.P.,和J·米洛普洛斯用目标模型进行视觉可变性分析。在proc RE 2004,第198-207页。日本京都,IEEE计算机协会,9月。2004.[9] B. González-Baixauli,硕士拉古纳和J.C.S.P莱特。 用目标模型分析变量。第七届需求工程研讨会(WER-2004)。Anais do WER 04,第77-87页,2004年。[10] 对象管理组。 MDA指南1.0版,2003年。[11] 对象管理组和QVT合并组。修订了MOF 2.0查询/查看/转换版本2.0的提交。对象管理组文档。ad/2005-03-02,2005年。[12] I. Jacobson ,G. Booch 和 J. Rumbaugh 。统一 的软件开 发过程。对 象技术系 列。Addison-Wesley,1999年。[13] A. Kleppe,J. Warmer,and W.百斯MDA解释:模型驱动架构:实践和承诺。艾迪森·韦斯利2003年[14] MA.拉古纳湾冈萨雷斯-拜绍利岛 洛佩斯和F.J.加西亚。 在主流软件中引入系统复用。2003年在欧洲微型计算机协会[15] S.J. Mellor和M.J. 巴尔塞可执行UML是模型驱动架构的基础。Addison Wesley Professional,2002年。[16] 加布里埃莱·坦策Agg:用于软件建模和验证的图形转换环境。AGTIVE 2003,第446-453页,2003年[17] T. von der Massen和H. Lichter Requiline:软件产品线的需求工程工具。软件产品族工程,PFE2003,第168锡耶纳,意大利,LNCS 3014,Springer-Verlag,2003年。
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- BottleJS快速入门:演示JavaScript依赖注入优势
- vConsole插件使用教程:输出与复制日志文件
- Node.js v12.7.0版本发布 - 适合高性能Web服务器与网络应用
- Android中实现图片的双指和双击缩放功能
- Anum Pinki英语至乌尔都语开源词典:23000词汇会话
- 三菱电机SLIMDIP智能功率模块在变频洗衣机的应用分析
- 用JavaScript实现的剪刀石头布游戏指南
- Node.js v12.22.1版发布 - 跨平台JavaScript环境新选择
- Infix修复发布:探索新的中缀处理方式
- 罕见疾病酶替代疗法药物非临床研究指导原则报告
- Node.js v10.20.0 版本发布,性能卓越的服务器端JavaScript
- hap-java-client:Java实现的HAP客户端库解析
- Shreyas Satish的GitHub博客自动化静态站点技术解析
- vtomole个人博客网站建设与维护经验分享
- MEAN.JS全栈解决方案:打造MongoDB、Express、AngularJS和Node.js应用
- 东南大学网络空间安全学院复试代码解析
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功