在2000年,对象管理组(Object Management Group, OMG)推出了模型驱动架构(Model-Driven Architecture, MDA)倡议。OMG尝试使用MDA统一其拥有的两大主要独立技术:(Common Object Request Broker Architecture, CORBA)和UML。
CORBA和UML虽然都由OMG制定,但它们服务于软件开发的不同方面。
CORBA专注于分布式系统中的对象交互和通信标准,
UML是一种通用的建模语言,用于设计和描述软件系统的不同方面。
两者在现代软件工程中各有其重要性,经常被用来配合使用:UML用于设计和描述系统,而CORBA用于实现系统部件间的交互。
OMG一直致力于系统的互操作性,无论是在分布式异构硬件上(CORBA)还是在模型层面(Unified Modeling Language, UML)。这种互操作性不仅体现在与遗留系统的集成上,还体现在与未来尚未计划的系统的集成上。MDA的主要优势在于提供了一种统一的方法论,用于设计和开发跨平台(与平台无关)的系统。
CORBA(Common Object Request Broker Architecture,公共对象请求代理架构)是由对象管理组织(Object Management Group,OMG)制定的一种标准,用于促进和支持不同计算机上运行的软件之间的互操作性。
核心特征
应用场景
优点
缺点
UML(Unified Modeling Language)是一种广泛使用的标准建模语言,用于描述、规定、构造和文档化软件系统的各个部分。UML适用于软件开发的各个阶段,从概念化和设计到实现。
核心特征
应用场景
随着计算环境和编程语言的持续演变,现代软件开发面临以下主要挑战:
为应对这些挑战,引入**模型驱动架构(MDA)**成为必要策略。MDA通过将模型作为软件开发的核心,利用层次化的模型抽象化手段优化设计、开发和实施流程,并统一CORBA、UML两大主要独立技术。MDA本质上是平台无关,通过定义计算独立模型(CIM)、平台独立模型(PIM)、平台特定模型(PSM)以及平台依赖应用(PDA)等多层次的模型,允许软件系统的各个层次独立于具体技术实现,从而提高软件的可移植性、协作性和可维护性。
标准 | 目标 | 特点 |
---|---|---|
CORBA | 构建分布式系统 | 面向对象、异构平台、多语言支持 |
UML | 指定和描述系统需求和设计 | 建模语言、结构、行为、功能 |
MDA | 提高软件开发效率、可重用性和可移植性 | 软件开发框架、分层模型 |
MDA核心概念包括:
以模型为核心:MDA将模型定位为软件开发过程中的核心元素,强调其在系统规划、设计和实现过程中的关键作用。模型在MDA中不仅是规范性文档,而且还是设计和开发的基础。
层次化的模型抽象:MDA通过定义一系列不同层次的模型来提供从业务需求到技术实现的连贯视角:
MDA的优势包括:
提高软件开发效率:MDA通过采用层次化的模型抽象和自动化工具,可以显著提高软件开发效率。
增强软件可移植性:MDA的层次化模型抽象可以使软件系统的各个层次独立于具体的技术实现,从而提高软件的可移植性。
提升软件协作性:MDA的模型驱动方法可以促进软件开发人员之间的协作,提高软件开发的整体效率。
提高软件可维护性:MDA的层次化模型抽象可以使软件系统的各个层次独立于具体的技术实现,从而提高软件的可维护性。
待续……