mda-模型驱动体系结构 PPT
基于模型驱动的软件开发方法PPT课件

模型驱动的软件体系结构
▪ UML适用于系统开发过程中的不同阶段
需求定义阶段:可以用用况来捕获用户需求。通过用况建模,描述 外部角色及其对系统的功能要求。
分析阶段:用UML类图来描述问题域中的主要概念和机制。在分 析阶段,只对问题域的对象建模,而不考虑定义软件系统中技术细节 的类(如用户接口、数据库)。
什么是模型驱动
▪ 面向功能的软件开发技术
输入
加工处理
输出
Pascal之父、结构化程序设计的先驱Niklaus Wirth最著名的一 本书,书名叫作《算法 + 数据结构 = 程序》
程序是计算机指令的某种组合,控制计算机的工作流程,完 成一定的逻辑功能,以实现某种任务。
算法是程序的逻辑抽象,是解决某类客观问题的数学过程。 数据结构是客观事物自身所具有的结构特点(即逻辑结构)
在计算机中的具体实现(即物理结构),是计算机存储、组织数 据的方式。
软件的实现是针对数据编程的。
什么是模型驱动
▪ 面向对象的软件开发技术
• 将现实世界的实体用类来描述,自然,直观。 • 将数据结构与操作封装在一个类中。 • UML对OOA、OOD扮演了非常重要的角色。
什么是模型驱动
▪ 面向模型的软件开发技术
编程(构造)阶段:其任务是用面向对象编程语言将来自设计阶段的 类转换成实际的代码。在用UML建立分析和设计模型时,应尽量避 免考虑把模型转换成某种特定的编程语言。
测试阶段:单元测试使用类图和类规格说明;集成测试使用部件图 和合作图;系统测试使用用况图来验证系统的行为;验收测试由用户 进行,以验证系统测试的结果是否满足在分析阶段确定的需求。
模型驱动的软件体系结构
▪ MDA
MDA核心技术包括:
applying_mda第二章

第2章模型驱动的企业计算MDA 以新方式整合一系列趋势,从而有助于我们应付企业计算的压力。
基于组件开发、设计模式、中间件、说明性规约、抽象、多层系统、企业应用集成、契约式设计并不是MDA 的新发明,但是MDA 可以扩展并推动这些技术更好地协作。
本章探讨MDA 如何做到这点。
本章所讨论的许多内容都会在第二和第三部分更为深入地探讨。
2.1 将模型中心的思想引入中间层、EAI 和B2Bi 驱动数据库引擎的数据格式的声明,以及驱动GUI 开发工具代码生成器的所见即所得模型的声明,都是MDA 的前驱。
这些说明性的数据和GUI 模型并不仅仅是设计工件,它们是形式化开发工件,直接改善了前端和后端系统开发的可行性变量。
MDA 把这一开发方法也引入了企业系统的中间层,并且引入了EAI 和B2B 集成(B2B integration,B2Bi )的领域。
32应用MDAMDA使用基于标准的建模语言作为形式化开发语言。
形式化模型驱动产生3GL代码、HTML、XML、WSDL、IDL以及其他工件的生成器。
MDA工具允许工程师细调这些工件的产生方式。
有时候MDA使用动态执行引擎(也就是虚拟机)直接执行模型。
作为开发工件的模型我们大多数人都习惯于把软件模型看作设计工件,而把3GL程序看作开发工件。
许多公司把建模人员和编码人员的角色完全分离。
结果就是,模型,比如UML模型,经常是非正式1的,这意味着它们不能被机器处理。
程序员把它们当作“指南”和“说明书”使用,而不是直接作用于编码过程。
于是许多人把它们看作生产过程中较为次要的东西。
MDA使用可以被机器处理的形式化模型。
这样的模型是生产过程的直接部分。
在这样的环境中,建模人员和编码人员的角色区分就不再那么明显了。
建模行为即编程行为。
这并不是说不再需要非正式的建模。
非正式的建模有助于人们相互之间关于构架和设计的交流。
非正式的建模是对UML的良好运用,但是不能驱动代码生成器或者虚拟机。
MDA模型驱动体系结构的实例研究的开题报告

MDA模型驱动体系结构的实例研究的开题报告一、研究背景和意义在软件系统开发过程中,体系结构是非常重要的一部分,它在整个开发过程中起到了指导和约束的作用。
因此,在软件系统开发过程中,如何设计和实现一个优秀的体系结构是一个非常重要的问题。
MDA(Model Driven Architecture)是一种新的软件开发方法,该方法使用了一种新的建模语言UML(Unified Modeling Language)作为系统分析和设计工具,并且将UML 模型作为系统开发的基本架构,从而实现了模型驱动的软件开发。
而MDA模型驱动体系结构则是在MDA模型驱动软件开发方法的基础上,将模型驱动的思想应用到体系结构设计中,并且将UML模型作为体系结构设计的基本元素。
MDA模型驱动体系结构的出现,为软件体系结构设计带来了新的思路和方法。
因此,对于MDA模型驱动体系结构的研究具有重要的意义和价值。
本文将以MDA模型驱动体系结构为基础,通过实例研究来深入探讨该方法的可行性和实用性,为软件体系结构设计提供新的思路和方法。
二、研究内容和方法本文的研究内容主要包括以下三个方面:1、MDA模型驱动体系结构的理论基础:介绍MDA模型驱动体系结构的基本概念和理论,包括MDA模型驱动软件开发方法、UML建模语言以及体系结构设计等方面的内容。
2、MDA模型驱动体系结构的实例分析:以某个软件系统为例,通过分析其业务需求、功能需求以及非功能需求等方面的内容,使用UML语言进行建模,并将这些模型用于体系结构的设计。
3、实例结果分析和评价:对本文所设计的MDA模型驱动体系结构进行实例结果分析和评价,比较其与传统体系结构设计方法的优点和缺点,并探讨其实际应用中可能存在的问题和改进方法。
本文采用文献研究、调研分析和实例研究等多种研究方法。
文献研究主要用于对MDA 模型驱动体系结构的相关文献进行收集和阅读,以便深入理解该方法的基本概念和理论。
调研分析主要用于对软件体系结构设计的现状和存在问题进行调查和分析,以便了解软件体系结构设计的实际应用中可能存在的问题和优化方案。
MDA:模式驱动体系的软件建模

码。
代
软 件 开 发 并 不 是 改 变 活 动 内容 , 是 改 变 除 需 求 分 析 计 而
算
^ Biblioteka 整 个 项 目的 大 部 分 代 码 。 MD 的 主 要 思 路 在 于 将 系 机 A
统 的 模 型 分 为 独 立 于 底 层 实 现 平 台 的 PM 模 型 与 特 总 I 定 于 某 具 体 实 现 平 台 的 P M 模 型 。 并 且 定 义 了 从 S PM 到 P M 模 型 的 转 换 规 范 。软 件 开 发 过 程 的 核 心 I S 部分 就是把 软件设 计 的复杂性 分散 到不 同的层 面上 .
种 实 现 技 术 复 用 ,当 技 术 平 台 发 生 变 迁 时 , I 不 必 PM 做 改 动 ;I 可 以更 加精 确 地 体现 系 统 的本 质 特征 . PM 对 跨 平 台 互 操 作 问 题 进 行 建 模 非 常 容 易 , 为 使 用 与 因
来越 多 。 计算 机 界 面临 着一 系列 的变 化 , 些变 化 使 这
摘
要 :模 型 驱 动 体 系( o eDr e rhtcue MDA) 一 个 新 的 软 件 开 发 框 架 。 本 文 研 究 M DA 的 M d i rA c i tr , v e 是
什么是MDA

1
MDA的优势1
0011 0010 1010 1101 0001 0100 1011
• 生产率: MDA将开发人员的注意力转移到开发PIM上,虽然很多时候仍 然需要做很多复杂的工作定义额外的信息来指导模型的转换。但 是这种工作只需要做一次,并能应用到不同的技术平台上。虽然 定义转换规则的工作量是比较大的,但是它仅仅由高水平的软件 架构师来完成,一旦创建完成,就可以分发到项目组中使用,主 要的开发人员只需要将注意力放在开发PIM上面。由于它们创建 PIM的过程与具体的平台无关,它们可以免于陷入具体的实现细节 当中。这些实现细节可以在从PIM到PSM模型转换的过程中被自动 加入
1
MDA的优势2
0011 0010 1010 1101 0001 0100 1011
• 轻便性 MDA关注的是平台无关的模型,而它天生就具有轻便的特点 。对于多种流行的平台,很多工具将会支持从PIM到此平台的PSM 的转换。对于那些不是很流行的平台,开发人员可以选择支持插 入功能的工具,将为这种平台定义的转换规则嵌入到工具中使用 。 对于将来可能产生的新的技术和平台,软件工业将会分发相 应的转换规则。这能够使得我们迅速地将PIM使用新的技术实现, 并发布到新的平台中。
1
总结
0011 0010 1010 1101 0001 0100 1011
• MDA 还在一个发展的过程中;完整的 MDA 定义还在不 断的演进。狭义上讲,它是关于一个系统的不同的抽 象模型,和在模型之间的定义良好的模型转换。广义 上讲,它是关于抽象的各种级别上的模型,这些抽象 作为基础为软件架构服务,这些架构最终将通过各种 实现技术被实现。此时,MDA 被解释的非常广泛,并 且很多组织(他们的一些工具已经在本文中被提及) 主张在不同的方案中"支持" 或者 "符合" MDA 的标准
MDA_新一代软件互操作体系结构

早在年,为了解决跨平台的软件互操作问题,由软1989件技术供应商、开发者和最终用户共同发起成立了对象管理集团OMG [1]。
这个组织所提出的互操作标准已经成CORBA 为事实上的工业标准。
然而,仅仅依靠孤立的接口标准所能达到的跨平台互操作能力并不能满足需求,跨平台的软件互操作需要一个根本的解决方案。
自从标准制定以来,一直把它作为制订其CORBA OMG 他互操作标准的基础,因此这些标准很自然地可以统一在对象管理体系结构之中。
但年以来,随着一系列不OMA 1997基于的重要标准的发布,对于解决软件互操作CORBA OMG 问题有了新的认识。
建模技术的逐步完善使得软件互操作问题的解决方法不再仅仅局限于统一的接口标准,而是扩展到整个的软件生命周期,包括商务建模、系统设计、组件的构造、组合、集成、发布和管理以及更新[1]。
为了更好地挖掘众多建模标准的潜力,促进和规范建模技术的进一步发展,制定一个清晰的体系结构势在必行。
作为在软件互操作领域最有影响力的组织,于年月发布了模型驱动体系OMG 20017结构。
可以说的初衷是为了解决软件互操作问(MDA)MDA 题,但所带来的影响却将远远超越互操作领域。
概述1 MDA 的基本概念1.1 MDA 中的基本概念有模型、抽象、求精、视图、缩MDA 放、平台。
模型1.1.1 模型是对系统的一部分结构、功能或行为正式规约[1]。
首先,模型是一种系统规约,这种规约可以是对结构的规约也可以是对系统功能或系统行为的规约;其次,这种规约必须是正式的,即必须使用一种严格定义没有歧义的语言。
所以一个模型必须和一种严格定义了语法和语义的建模语言绑定在一起。
根据模型的这种定义,程序代码也是模型。
抽象、求精、视角1.1.2 一个客观系统的规约可以处于不同层面上。
例如,对于一台笔记本电脑。
可以有个规约:一台电脑、一台笔记3"""本电脑、某某牌某某型号的笔记本电脑。
OMG'sModelDrivenArchitecture培训课件.ppt

Middleware
Middleware
A software layer that masks
hetereogeneity
Placed between operating systems and
application components
“Design once, build it on any platform”
Basic concepts of MDA
A model is a formal specification of the
function, structure and/or behaviour of a system
Who are OMG?
OMG’s Milestones
1989
OMG is founded
CORBA 1.0, IDL
1991 1996
UML, MOF, XMI, CWM
CORBA 2.0
1997
MDA 2001
2. MDA Overview
What is the MDA?
An approach to IT system specification
PIM: an example
Platf)
Specifies how the functionality specified
in a PIM is realized on a particular platform
Expressed using UML extended with
Hetereogenity hinders the development
of enterprise distributed systems
领域驱动设计PPT课件

4
MDD/DDD优点
MDD leads to meaningful validationMDD引导有意义的校验 业务验证都已经在更高级别的模型中完成,编程工具只能帮助你 验证代码语言的错误,不能验证业务上的错误。
MDD really enforces architecture MDD增强架构 当使用MDD开发软件应用程序,保证符合选定架构。你可以真正 实现架构标准化, 构建架构原则Constructional architecture principles能够知道设计构建,并且能够反映在代码生成器或解释 器中。
6
MDD/DDD优点
MDD bridges the gap between business and IT MDD在业务和IT之间 架设了桥梁 领域专家(或系统分析师)可以直接参与业务发展进程(见第7点)。 技术专家(软件应用)可以在一个更高的层次定义尽可能和领域概念的 定义声明有关模型。 通过在模型和模型实现之间定义一个重要的转换机制,就可以在业务和IT 技术之间建立一个桥梁,比如使用一个基于model-driven SOA的框架。
MDD/DDD优点
MDD leads to increased quality MDD引导质量提高 因为软件架构是在一个更高模型级别定义,然后通过引擎或框架 转换成代码,这样我们能够让我们最优秀的人员从事引擎和框架 的开发,进而提高平台的质量。 我们在项目中学习到的最佳实践 模式可以被导引到引擎或框架代码产生器中,这样将被重用到所 有使用MDD的项目中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MDA应用案例
内容
MDA简介 MDA开发过程 简单的MDA框架 MDA应用案例 完整的MDA框架 OMG相关标准
MDA开发过程
MDA开发过程
传统开发过程带来的问题
– – – – 生产效率问题:重视代码,维护软件时有问题 可移植性:技术更新换代快 互操作性问题:前端系统和后端系统 维护与文档问题:后期补文档
基本概念
Computation Independent Model: 使用计算无关视 点建立的系统模型
– 被称为领域模型或业务人员的词汇表 – 其用户是业务人员,不了解用以实现需求的建模技术 – 在业务专家和技术专家,业务需求和设计,构建方法 之间建立桥梁
Platform Independent Model: 使用平台无关视点建 立的系统模型
MDA简介
标准化领域模型
– OMG认识到领域模型的重要性,成立了 Domain TaskForce,对特定领域市场所提供的 服务和设施进行标准化 – 包括面向领域的平台独立模型,至少一个平台 相关模型,接口描述文件
MDA简介
MDA对企业计算的主要影响
再次提升编程环境的抽象级别 使用形式化模型驱动代码生成器 基于不同规约语言的元数据集成 在生成器中封装了设计模式的知识 形成按需生产构件的方式 使用DBC来驱动断言检测,异常处理和测试框 架的生成 – 形成了"The Global Information Appliance" – – – – – –
模型变换
基于元模型的变换 基于类型的模型变换
模型变换
基于标记的模型变换 使用模式的模型变换
模型变换
模型合并 使用附加信息的模型变换
模型变换
对平台的理解
内容
MDA简介 MDA开发过程 简单的MDA框架 MDA应用案例 完整的MDA框架 OMG相关标准
MDA框架
模型:以精确定义的语言对系统作出的描述 精确定义的语言:具有精确定义的形式(语法)和 含义(语义)的语言,以适合计算机自动解释 模型的表达能力
MDA简介
Model Driven Architecture
– Model ? 客观事物的抽象表示 – Model-Driven ? 使用模型完成软件的分析,设 计,构建,部署,维护等各开发活动 – Architecture ? 构成系统的部件,连接件及其约 束的规约 – MDA起源于分离系统规约和平台实现的思想 – MDA的主要目标: portability, interoperability, reusability
此前,模型对开发人员来说只短暂存在而 MDA中模型之间进行演化,相当于高层次 的编译过程
基本概念
Architecture: 描述了软件开发中可能使用到的若干模型, 这些模型如何建立,以及它们之间的关系 Viewpoint: 为关注系统的特定部分而使用一套概念和规则 进行抽象的技术 – 计算无关的视点:关注系统需求,忽略系统的结构和 实现技术 – 平台无关的视点:关注系统如何操作,忽略特定平台 的细节 – 平台相关的视点:关注系统如何利用平台进行实现 Platform:通过接口或模式提供一组功能的 系统或技术的集合,使得使用平台的应用 程序不用关心这些功能如何实现
MDA简介
普适服务
– 业务系统一般依赖一组关键服务:目录服务, 事件处理,数据持久化,事务,安全等 – 业务系统可能需要平台的非功能性属性:可扩 展性,实时,容错性,环境限制等 – 在平台独立的模型中提供普适服务的支持,映 射到平台相关的模型后再利用特定平台提供的 服务 – 在平台独立的模型中,以高层抽象的形式看待 服务;在平台相关的模型以及实现中,以本地 代码的形式调用平台提供的服务
敏捷MDA
基于可执行的模型与代码在执行方面一致,敏捷人士提 出了敏捷的MDA方法,即可执行模型以增量或迭代的形 式被快速创建,运行,测试和修改 敏捷与建模的根本差距之一就是"确认的间隔"——不能执 行的模型需要时间和人力转化为代码,模型的准确度, 转化的正确性,客户需求的变化等因素使得最终系统存 在问题;敏捷方法强调短时间内交付小片的可执行代 码,开发结果随时对客户可见,从而缩短了"确认的间隔" 敏捷与建模的差别并没有最初看上去那么大,敏捷方法 中的很多思想在模型的上下文中同样有效,只要将"代码" 替换为"可执行的模型" 模型的语言更接近于客户,使其更容易与开发者交互和 增量,迭代开发
– 表达了某种程度的平台无关性,适用于不同的平台上 – 通用技术是将模型建立在一个技术中立的虚拟机上, 该"平台"提供的功能和服务可以在不同平台上实现
Platform Specific Model: 使用平台相关视点建立 的系统模型,将PIM中的规约联系到平台上如何 实现
模型变换
模型变换:将同一系统的一个模型转换为 另一个模型的过程
MDA应用案例
Rosa系统PIM
MDA应用案例
PIM到关系PSM的变换
– 每个类变换成一 个表 – 当属性的类型不是基本 数据类型而是类时,对 应字段应该包含外键 – 设计到多重性问题,需 要在多一端设置到另一 端的关联;当多对多的 情况,需要设置关联类
MDA应用案例
PIM到EJB PSM的变换
MDA开发过程
MDA开发过程
变换自动完成
相比传统软件开发过程
– 生产效率(模型是焦点,PIM开发者轻松) – 可移植性(PIM到多个PSM的变换) – 互操作性 – 维护与文档
MDA开发过程
模型对开发过程的影响:允许定义机器可 读的应用及数据模型,用以支持灵活的
– 实现:结合基础设施,由设计模型映射生成 – 集成:自动化生成平台之间的桥接器和连接件 – 维护:可以直接回到系统规约——模型阶段进 行维护,然后向下生成系统 – 测试和模拟:模型根据需求进行验证,在基础 设施之上进行测试,模拟系统的行为
– 静态模型和动态模型 – 平台独立模型和平台相关模型
MDA框架
变换(Transformation):模型之间转换的过程
– 变换定义:一组变换规则,描述用源语言表述 的模型 – 如何变换为用目标语言表述的模型 – 变换规则:描述源语言中的一个元素如何进行 变换为目标语言中的一个元素
变换中的输入和输出
MDA简介
MAD产生背景
– OMG 标准化OMA CORBA – OMG 标准化对象建模技术UML, 1995 – OMG 采纳MDA作为第二个软件框架, 2001
MDA不是实现分布式系统的框架,而是在软件开发 中使用模型的指导方法 MDA是从软件工艺迈向软件工程化的一步
MDA简介
以机器为中心的计算 以应用为中心的计算
MDA简介
OMG提出解决上述问题的有效途径—MDA
– 模型的角色 – 软件开发中的难点——分离关注点
– 模型是问题域的抽象,模型中的元素对应问题域中的 概念 – 模型中使用客户熟悉的概念/术语描述问题,避免与计 算机实现相关的细节问题 – 沟通业务和技术的有效途径 – 模型有不同的抽象级别,可以从高层抽象向底层模型 进行映射
MDA简介
MDA的体系结构图
MDA简介
核心部分:OMG的建模技术——UML,CWM, MOF等,可通过UML profiles进行扩充,独立于具 体平台 平台层:将独立于平台的模型映射到各平台,使用 映射标准和工具自动或半自动的执行
– 平台相关的模型一般也采用UML表达,通过UML方言 表达特定平台的元素 – 平台无关模型中的语法和语义信息被映射到平台相关的 模型中
MDA简介
以企业为中心的计算面临的压力
– 应用的复杂性(B2Bi) – 生产成本的压力(需求的变动) – 质量的压力(文档,形式化) – 软件生命期的压力(平台的易变性)
Байду номын сангаас
MDA简介
将以模型为中心的思想引入EAI,B2Bi
– – – – 模型作为开发制品,而非设计制品 模型富含语法抽象和语义抽象 结合Web Service的应用 定义抽象的业务服务 =〉将业务服务模型映射到WSDL
– 粗粒度的构件模型:构件较大,交互频率较 低,每次交互传递大量数据 – EJB数据schema:一组类,属性,关联,在数 据交互时它们被EJB构件作为整体来对待 – EJB数据类:保存EJB数据,是数据模式的一 部分 – EJB数据对象:EJB数据类的实例 – EJB主键类:保存用来区分EJB数据对象的数 据
软件体系结构
(Software Architecture)
四,模型驱动的体系结构 MDA (Model Driven Architecture)
从西西弗斯说起——
现代版西西弗斯 ——项目进展
内容
MDA简介 MDA开发过程 简单的MDA框架 MDA应用案例 完整的MDA框架 OMG相关标准
敏捷MDA
设计时互操作总线:模型具有相同的元模 型时,模型之间的连接非常简单,新增模 型可以直接插在总线上
敏捷MDA
敏捷:创建测试用例,编写代码,使用语 言编译器编译代码,运行测试用例,不断 向用户交付系统的片段 敏捷MDA:创建测试用例,编写可执行的 模型,使用模型编译器编译模型,运行测 试用例,不断向用户交付系统的片段,直 接收到客户的反馈 可执行的模型 vs. 代码 重量级相当 统一过程软件开发 vs. 极限编程 重量级不同
敏捷MDA
2001年,敏捷联盟成立,提出敏捷宣言
– – – – 个体和交互 工作软件 与客户协作 响应变化 胜过 胜过 胜过 胜过 过程和工具 可理解的文档 合同谈判 追随计划
模型的三个层次
– Sketch: 表达系统设计的思想,不必精确和完整,便于 理解和交流,应用广泛 – Blueprint: 描述构造实际系统的文档,将模型作为软件 开发过程中的一阶制品,通过手动或自动化手段可以 转化为实际系统,要求模型中包含足够精确的信息 – Program Language: 可以执行,经过编译和执行能满足 用户各项需求,就像程序设计语言一样,"可执行的模 型"