一. 核心概念及术语
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文件
您的公司
您的姓名
您的电话
您的邮箱
上一篇
建模语言之UI模型组件
下一篇