模型驱动的相关术语

一. 核心概念及术语

1.1 软件工程方法学

1.2 模型驱动架构MDA

模型驱动架构Model Driven Architecture(MDA),是由OMG定义的一个软件开发框架。它是一种基于UML以及其他工业标准的框架,支持软件设计和模型的可视化、存储和交换。它能够创建出机器可读和高度抽象的模型,这些模型独立于实现技术,以标准化的方式储存。MDA把建模语言用作一种编程语言而不仅仅是设计语言。

其根本思想是:分离模型和实现

其主要目标是:

  • 可移植性Portability
  • 互通性Interoperability
  • 可重用性Reusability

1.2.1 MDA提出的标准

  • UML:Unified Modeling Language统一建模语言,用来描述各种模型,它是MDA的基础,也是MDA最有力的武器。
  • MOF:Meta-Object Facility元对象机制,描述UML的扩展或者其它未来可能出现的类UML的建模语言。
  • XMI:XML-based Metadata Interchange基于XML的元数据交换,通过标准化的XML文档格式和DTDs(Document Type Definitions)为各种模型定义了一种基于XML的数据交换格式。这使得作为最终产品的模型可以在各种不同的工具中传递。
  • CWM:Common Warehouse Meta-model公共仓库元模型,提供了一种数据格式变换的手段,在任意级别的模型上都可以使用CWM来描述两种数据模型之间的映射规则,比如将数据实体从关系数据库变换为XML格式。在MOF的框架下,CWM使得通用的数据模型变换引擎成为可能。

1.2.2 三种核心模型

  • 平台无关模型Platform Independent Models(PIM):具有高抽象层次,独立于任何具体实现技术的模型
  • 平台相关模型Platform Specific Models (PSM):为具体的实现技术而打造,可以用这种技术中可用的实现构造来描述系统的模型。一个PIM可以转化成多个PSM
  • 代码Code:系统的源代码实现,每个PSM都会最终转化为源代码

1.3 面向对象OO

  • 面向对象分析Object Oriented Analyzing(OOA)
    • 系统应该提供哪些功能才能满足用户需求

是一种以对象为中心的编程思想,主要工作是理解问题、分析需求并构建业务模型,将显示世界的问题映射到问题域,此阶段必须回答如下问题:

  • 系统由哪些对象构成
  • 每个对象包含了哪些属性和方法
  • 对象之间的关系是什么样的
  • 面向对象设计:Object Oriented Design(OOD)
    • 完善实体类的属性及方法以满足需求

设计阶段需要构建出系统的实现蓝图,OOD从OOA的结果开始,将问题域映射到实现域,核心主要完成以下几个方面的工作:

  • 设计应用控制
  • 设计人机交互界面

以下是OOA和OOD的一个对比,可以参考:

  • 面向对象编程:Object Oriented Programming(OOP)

将面向对象设计OOD之后的抽象,采用面向对象的方式来实现的方法,就叫做面向对象编程。

总体来说:面向对象分析的结果可以作为面向对象设计的模型,而面向对象设计的结果则可以作为面向对象编程的蓝图,应用程序需要由编程才能实现。

1.4 UML图

  • 类图Class Diagram:UML1,描述类、类的特性以及类之间的关系;
  • 对象图(Object Diagram):UML 1非正式图,描述一个时间点上系统中各个对象的一个快照;
  • 复合结构图(Composite Structure Diagram):UML 2.0,描述类的运行时刻的分解;
  • 构件图(Component Diagram):UML 1,描述构件的结构与连接;
  • 部署图(Deployment Diagram):UML 1,描述在各个节点上的部署;
  • 包图(Package Diagram):UML 1非正式图,描述编译时的层次结构;
  • 用例图(User Case Diagram):UML 1,描述用户与系统如何交互;
  • 活动图(Activity Diagram):UML 1,描述过程行为与并行行为;
  • 状态图(State Machine Diagram):UML 1,描述时间如何改变对象生命周期;
  • 顺序图(Sequence Diagram):UML 1,描述对象之间的交互,重点在强调顺序;
  • 通信图(Communication Diagram):UML 1,描述对象之间的交互,重点在于连接
  • 定时图(UML Timing Diagram):UML 2,描述对象之间的交互,重点在于定时
  • 交互纵览图(Interaction Diagram):UML 2,是一种顺序图和活动图的混合

1.5 ORM的三种方式及比较

1.5.1 单表映射Single Table

一棵继承树映射到一个表,主要应用于比较简单的继承树。

1.5.2 类表映射Class Table

一个类映射到一个表,主要应用于比较复杂的继承树,并且抽象类中的属性比较多。

1.5.3 具体表映射Concrete Table

一个具体类映射到一个表,这是目前主要使用的映射方式,对大部分情况使用比较方便,具体实体的查询不需要进行表链接,但是会有冗余字段。

二. 其他相关概念及术语

  • DSL: Domain Specific Language(领域定义语言)
  • UL: Ubiquitous Language(通用语言)
  • DDD: Domain Driven Design(领域驱动设计)
  • MDD: Model Driven Development(模型驱动开发)
  • TDD: Test Driven Development(测试驱动开发)
  • MDA: Model Driven Architecture(模型驱动架构)
  • ER图:Entity Relationship Diagram

免费下载PDF文件

您的公司
您的姓名
您的电话
您的邮箱
下一篇 
预约体验