《软件架构理论与实践》 —3.4.2 模型驱动的架构建模方法

举报
华章计算机 发表于 2019/12/18 12:48:00 2019/12/18
【摘要】 本节书摘来自华章计算机《软件架构理论与实践》一书中第3章,第3.4.2节,作者是李必信 廖力 王璐璐 孔祥龙 周颖。

3.4.2 模型驱动的架构建模方法

软件架构是软件开发的重要手段。现阶段与软件架构相关的技术中有两个特别值得注意:开发驱动架构(Development Driven Architecture)与模型驱动架构(Model Driven Architecture, MDA)[71]。软件架构原则集中于通过抽象和分离关注点来降低复杂性。它形成了成功的软件密集型系统的骨干,且被认为是系统设计和建模的一级元素。架构是一个软件系统的质量属性(如性能或可靠性)的主要载体。

模型驱动架构(MDA)是OMG于2001年正式提出的一个框架规范。不同于OMG颁布的另一个框架规范OMA,MDA不是一个实现分布式系统的软件架构,而是一个利用模型技术进行软件开发的方法。与传统的软件开发方法相比较,MDA致力于将软件开发从以代码为中心变为以模型为中心,使模型不仅被作为设计文档和规格说明来使用,更成为一种能够自动转换为最终可运行系统的重要软件制品。

MDA将模型区分为平台无关模型(Platform Independent Model,PIM)和平台相关模型(Platform Specific Model,PSM)。PIM是一个系统的形式化规格说明,它与具体的实现技术无关,PSM则是基于某一具体目标平台的形式化规格说明(这里的平台指的是使用特定的技术)。模型不再仅仅是描绘系统、辅助沟通的工具,而是软件开发的核心和主干。它的核心思想是抽象出与实现技术无关、完整描述业务功能的平***立模型,针对不同实现技术制定多个映射规则,并通过这些映射规则及辅助工具将PIM转换成与具体实现技术相关的平台模型PSM,最后将PSM转换成代码[72]。

PIM与PSM这两种模型是MDA架构中对于一个系统的不同视角的模型描述,它们之间是抽象和求精的关系。与具体实现技术无关,PIM可以被多种实现技术重用,当技术平台发生变迁时,PIM不必做改动;PIM可以更加精确地体现系统的本质特征,对跨平台互操作问题进行建模非常容易。因为使用与平台无关的通用术语,语义表达会更加清晰。PIM与PSM两个模型之间通过模型映射机制相互映射,从而保证了模型的可追溯性,这也体现了MDA软件开发过程是一个自顶向下、逐步求精的过程。MDA的一个目标是简化分析模型的重用。由于平台的相关性,同样的分析模型可以用在许多不同的平台环境下。

以架构为中心和模型驱动的范式组合可以方便地用于自动化改造过程中,也可以实现MDA方法的重用。基于此,文献[73]提出了ArchMDE,其主要思想就是在任何平台上实现软件架构的独立性。因此,独立于平台的架构问题必须在PIM层次处理。出于这个原因,文献[5]将PIM分为两个层次:架构独立模型(AIM)和架构具体模型(ASM)。AIM和ASM都是不包含任何具体实施技术的系统模型。作为一个分析模型,AIM表现出一定的架构独立性,使其适用于大量不同的架构设计。 ASM结合了AIM中的规格,可以指定该系统如何使用一个特定风格的架构细节。既然已经将PIM分为AIM和ASM两层,自然允许集中架构设计决策,以改善架构特性的清晰度。AIM及其适应性使得可重用性得以增加。而在从PIM到PSM的转换中,ASM使得这种转换独立于执行平台。

面向MDA的建模和映射技术主要包括元对象机制(Meta Object Facility, MOF)、统一建模语言(UML)、公共仓库元模型(Common Warehouse Meta Model,CWM)[74]。

MOF是OMG提出的一个对元模型进行描述的规范的公共抽象定义语言。MOF是一种元–元模型,即元模型的元模型。MDA中的UML、CWM元模型均以MOF为基础。MOF标准的建立确保了不同元模型之间的交换。作为一个描述建模语言的标准语言,MOF标准避免了将来由于建模语言不同而产生建模语言间相互理解与转换的障碍[75]。

CWM为数据仓库和业务分析领域最为常见的业务与技术相关元数据的表示定义了元模型[76]。CWM实际上提供了一个基于模型的方法来实现异构软件系统之间的元数据交换。这样,对于依据CWM建立的数据模型,尽管它们存储于不同的软件系统中,但可以很便利地被整合和集成,进而确保数据挖掘等应用可以跨越企业数据库的边界。

模型驱动软件架构不仅能够用标准的符号表示这些开发模型,还能够定义模型间的转换来获得最终的软件产品。如果模型遵循MOF规范,以及MOF2.0的查询/视图/转换(Query/View/Transformation,QVT)语言,就能够形式化定义这些转换。模型驱动架构最大的好处在于只需要较少的时间和精力来开发整个系统,从而提高了生产率。此外,模型驱动架构还能为系统的演化、集成、互操作性、轻便性、适应性和重用性提供支持。

目标系统的需求由公共信息模型(CIM)定义,根据 CIM生成与平台无关的模型(PIM),接着再根据不同的平台和技术,将PIM自动转换成与特定平台相关的模型(PSM),最后根据PSM生成代码,得到最终的软件架构。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。