现在的位置: 首页 > 综合 > 正文

MetaDiff——一个模式比较框架

2013年05月16日 ⁄ 综合 ⁄ 共 3996字 ⁄ 字号 评论关闭

MetaDiff-一个模式比较框架

(翻译草稿,待审校) 

译者注:这是来自瑞典斯得哥尔摩大学计算机和系统科学系的一篇硕士论文,由Mark Kofman撰文,导师为Erik Perjons。本文的中文译者为山东大学计算机科学与技术学院的本科生周翔。中文译文中省略了原文中的目录部分。 

摘要 

在软件开发中,开发模式重要性的日益提高产生了许多新的关注和挑战。本论文主要讨论了在模式驱动开发的环境中模式比较的问题。本论文的目的是为了描述一个名为MetaDiff的模式比较框架的需求分析,以及怎样来设计并实现它。这个框架是在现有的元对象工具(Meta Object FacilityMOF)标准的基础上建立起来的。作者希望这个框架能够在模式管理、实现特定的模式比较工具和算法组装等方面下一步的相关试验研究中派得上用场。

第一章  简介

1.1    背景

人们对模式驱动方法产生了越来越浓厚的研究兴趣,并在应用中给予了越来越多的支持。这些模式驱动方法包括模式驱动软件开发(Model Driven Software Development[6]、对象管理组织的模式驱动构架(OMG Model Driven Architecture[24]、语言驱动开发(Language Driven Development[8]等等。一些开源项目,比如Eclipse Generative Model Transformer (GMT) [13]Netbeans Metadata Repository (MDR) [22]Eclipse Modeling Framework (EMF) [9] AndroMDA [3]和各种不同的CASE工具的厂商的工作实现了用于模式驱动开发的各种不同的组件。建模能为整个系统的开发和维护提供的一种更好的基础,然后才是以代码为中心的开发和维护[19]--这些方法都是以这种想法为基础的。在这些方法的指导下,模式已不再仅仅开发的附属产物,而是构建软件应用程序的至关重要的组成部分。然而,日益提高的开发模式的重要性产生了许多新的关注和挑战。其中的一类问题与对建模工具的正确管理有密切关系。

1.2    问题

如果你看一看普通的以代码为中心的开发环境,你就会发现一些功能特性,这些功能包括环境所集成的版本控制、不同版本的合并和比较,以还包括一些使团队开发更便捷的工具。但是这些工具大多是面向单一的文本文件的,并且仅仅适用于以常规的编程语言为基础开发过程。将这些复杂的功能转换为模式驱动工具开发是不太容易的,因为在这其中存在着一些问题需要这一领域的专家和研究人员指出。

根据参考文献[17],模式比较在模式驱动开发的实践中是一个关键性的挑战,处理这个问题时,有下面几个方面需要大家的注意:

l         在一些面向对象的语言中,你可以把整个系统按照逻辑上和物理上的要求将其分为一些类。然而,建模语言缺少这样在物理上将其分解的标准方法。这常常导致大量的信息集中存储在一个模块单元中。

l         各个模块使用不同的符号来表示,这些符号通常是图形化的。但是,在区分各个模块逻辑上的不同的时候,这些符号起不到有效的作用。

l         视觉效果的不同在使用模式图表处理问题时也是一个需要引起重视的因素。现在的基于文本的比较工具通常使用两个窗口分别来显示接受比较的文本。但是使用这种方法来表示模式的不同的不切实际的。

l         模式的组织并不是像文本那样是顺序线性的。而是由各个整体组成树型或图型的结构[17]。因此,必须使用其他的技术来研究这些模式的不同。

问题描述:为了解决这些方面的问题,研究人员和工程人员需要进行广泛地试验。正因如此,他们需要一个合适的基础构架解决方案。这个基础构架可使他们能够根据自己的兴趣进行研究,并观察其他方面是怎样影响并介入其他方面的。此外,通过将来自各方的组件整合在一起,这个基础构架可以产生新的思路和结果。

1.3    目的和意图

这篇论文的目的是介绍这样一个基础构架。这个构架可以用来描述对一个通用的、半自动化的模式比较解决方案的需求、设计和实现。通用,在某种意义上说就是,它可以用来比较基于各种不同元模式(meta-model)的模式。半自动化,在某种意义上说就是,比较是由计算机来操作的,但是,这个算法需要调用者提供附加的信息和指导。

为了达到这样的目标,需要实现下面的结果(目的):

l         现在的论文并不致力于解决上面提到的所有的问题。然而,做为讨论的结果,需要将这些结果原型化以成为对这些问题感兴趣的研究人员的富有价值的工具。它意味着,对新的有效的比较和合并算法包括通用和元模式识别算法的继续研究是可能的。我们可以就不同的图表的可视性的问题做试验,并研究这个领域中相关问题。

l         现在的框架在实际的实践过程中也是适用的。不同的工具制造商可以在现有框架的基础上实现各自的具有特定功能的比较和合并工具。在现有的框架的基础上构建的比较和合并工具可以用于版本控制系统,用来改进对模式的处理。

1.4    方法

作者将归纳和演绎的方法暗中蕴含在这篇论文中。模式比较框架需要下面过程提供的数据:

l         对在其他领域下不同模式比较技术的研究需要完成。对一般文本文件、XML文件、XML格式文件的研究需要完成,并且要为一个模式比较框架提取出合适的需求报告。

l         由包括IT University的研究人员在内的模式驱动开发和格式分析领域的专家参加的头脑风暴会议。

l         模式比较框架的早期原型用于需求优化。

在搜集到的需求的基础上,进一步分析和设计框架。

接下来,在开发原型框架的时候,使用Rational统一流程(Rational Unified Process[15]。建模时使用UML语言[26]

在研究的早期阶段,原型被广泛应用于实践,保证了理论概念的可用性。框架原型就是通过现实世界的实例来评估的。

由于要对运行结果进行评估,系统框架作为开源项目的一部分发布出来,这样有利于获得较多的用户反馈和模型的改进。

1.5    局限性 

框架原型可以用两套MOF标准的Java开源系统实现(Eclipse EMF [9] NetBeans MDR [22])。这意味着框架只能为模式资源与这些系统的协调一致提供支持。这个局限性可以靠整合其他的MOF标准的方案来解决。利用其他面向对象的语言实现原型也可以增强了框架自身的适用性。

 由于时间关系,对框架的开源版本的用户反馈评估将不在本论文中讨论。

 1.6 论文结构

 本论文结构如下。在第二章我们给出了概念、思路、以及相关研究成果的介绍,而这些内容将在论文接下来的章节中广泛采用。在第三章,我们定义了开发框架的需求。在第四章,我们集中讨论了框架的设计和实现,而在第5章,我们给出了具体的应用实例。第6章是总结。

 本论文结构如下。在第二章我们给出了概念、思路、以及相关研究成果的介绍,而这些内容将在论文接下来的章节中广泛采用。在第三章,我们定义了开发框架的需求。在第四章,我们集中讨论了框架的设计和实现,而在第5章,我们给出了具体的应用实例。第6章是总结。

 本论文结构如下。在第二章我们给出了概念、思路、以及相关研究成果的介绍,而这些内容将在论文接下来的章节中广泛采用。在第三章,我们定义了开发框架的需求。在第四章,我们集中讨论了框架的设计和实现,而在第5章,我们给出了具体的应用实例。第6章是总结。

 第二章 概念和相关工作

 第二章 概念和相关工作

 2.1 概念和基本定义

 在这一节中将简要介绍本文中出现的基本概念。

 2.1.1 模式驱动开发

 近些年来,产生了许多不同的模式驱动方法。其中最有名的是对象管理组织的模式驱动构架(Model Driven Architecture from OMG [24]、模式驱动软件开发(Model Driven Software Development[6],和软件工厂(Software Factories [14]。所有的模式驱动开发理论都强调模型在开发过程中做为基本单元的重要性。在建模过程中,模型转换是主要的操作,用于将信息从一种模式中转入另一种模式。这种软件生命周期的观念被视为一个模型转换链。

 2.1.2 模式和图表

 在定义模式和图表时,本文使用了对象管理组织的统一建模语言(OMG’s Unified Modeling Language[26]类似的概念。图表是对模式的另一种看法或者另一种视角。图表通常通过图形符号来表示。

 2.1.2 模式和图表

 在定义模式和图表时,本文使用了对象管理组织的统一建模语言(OMG’s Unified Modeling Language[26]类似的概念。图表是对模式的另一种看法或者另一种视角。图表通常通过图形符号来表示。

 2.1.3 元对象工具(Meta-Object Facility MOF

 2.1.3 元对象工具(Meta-Object Facility MOF

 元对象工具(MOF) [25]提供了一个模式仓库用于模式的具体化并可以通过其对模式进行管理。MOF可以看做是一种设计和实现新型模式语言的工具。

 2.1.4 元模式层(Meta-Model Layer

 2.1.4 元模式层(Meta-Model Layer

 MOF中,建模的概念主要是分类器(classifier)和实例(Instance),或者类(Class)和对象(Object),还有将实例转到其分类器(元对象,meta-object)的能力。“元模式层”这个重要的概念有时用来组织建模层,以使之转化为更高的元层次(metalayer)。每一种上一级的元层次由其下一级的分类器构成。MOF标准确保可以按照需要随便定义许多层次。然而在大多数情况下仅限于定义4个层次。

 传统构架是基于下面的4层结构的:

 传统构架是基于下面的4-->

作者:

抱歉!评论已关闭.