模型驱动开发Model Driven Development (MDD) 是一种以模型作为主要工件的高级别抽象的开发方法,模型在工具的支持下,被作为核心资产被转换成代码或者可运行配置。现在软件业存在多种MDD开发方法,本篇将对MDD进行概要介绍。
定义
在过去多年,软件开发面临了多个挑战,新的需求和存在系统不断增长,系统也变得越来越复杂,以至于我们很难及时的构建它们。为了解决这些问题,
就出现了很多新的方法,其中最突出的一个就是模型驱动开发。
MDD代表了一套理论和工业化软件开发的方法框架,在软件开发全生命周期中系统的的使用模型作为主要工件,它主要为了解决软件的两个根本危机:复杂性和变更能力
。
使用模型作为文档和规范是有价值的,但是它需要严格的管理方式来确保模型是持续更新的。在实际工作中,我们迫于时间压力经常会出现于实现不一致的模型,这对开发和项目其实是不利的。而MDD的基本思想是让开发中心从编程转移到高级别抽象中去,通过模型
转成代码或其他工件来驱动
部分或全部的自动化开发
。
模型是一种抽象的语言
多种模型
模型是一种建模语言,它需要我们自己根据业务和技术需要去设计它,在架构、分析、设计、实现等不同阶段都会存在多种模型, 如企业架构模型、技术架构模型、领域模型、UI模型、数据库建模、业务规则模型、系统部署模型、测试模型等。
模型驱动开发方法中,模型作为first class除了生成代码之外,还可以生成很多其他非代码工件,以下为一些从模型生成工件的通用例子:
三个阶段
-
建立模型
-
建模
-
模型转换
模型和建模这两部分内容已经存在很多方法,它们在现在软件开发过程中已经处于重要位置,但是在需要哪些表达模型以及如何使用这些模型存在着差
异。传统的模型只是一个设计蓝图,而MDD必须满足额外的要求,这些模型必须是可读的,也就是说必须存在第三个阶段,也就是模型转换:model
to model (M2M) 和 model to code (M2C)
优势
-
提高产能
:开发快、降低成本、提高质量
-
可维护性
:高级别模型与技术分类,技术架构的改变意味着只是模型的一种新的转换
-
一致性
:手工编码和架构决策容易出错,MDD可以确保生成的工件是一致的
-
可重用性
:模型、转换和架构都是可以重用的,由于架构和技术问题已经被解决,所以开发新功能的风险也低
-
改善涉众沟通
:模型忽略系统逻辑行为的底层实现,而直接展现问题域,这样可以保证和涉众使用同一种语言进行沟通
-
改善设计沟通
:模型与系统是匹配及时更新的,所以可以通过模型来改善系统设计的讨论和沟通
-
捕获领域知识
:可以加强领域专家对系统的直接影响,通过模型还可以帮助组织进行知识管理
-
Business-IT对齐
:关注问题域,关联技术域,一种业务和IT对齐的方法
-
模型作为一种长期的核心资产
:高级别的模型作为核心资产管理起来,只有在业务需求变更时才会进行更改
-
推迟技术决策
:应用开发在早期关注业务逻辑问题,对于技术选择可以推迟到后期
-
提供及时的文档
:通过模型可以生成很多同步的文档,利于与不同涉众进行交流
经济模型
MDD方法相关
模型驱动开发(MDD)的一些参考资料
MDE - Model Driven Engineering - reference guide
参考:Model Driven Development – Future or Failure of Software Development
分享到:
相关推荐
模型驱动开发(MDD,Model-Driven Development)是一种先进的软件开发方法,它是模型驱动体系架构(MDA,Model-Driven Architecture)的核心组成部分。MDA是由OMG(Object Management Group)推动的一种概念框架,...
模型驱动开发(Model-Driven Development,MDD)是指一种软件开发方式,它主要关注于创建和利用模型来指导软件的设计和实现。在模型驱动开发中,模型不仅仅是一个简单的辅助工具,而是成为开发过程中的中心元素。...
模型驱动开发(MDD)是一种先进的软件开发方法,旨在通过使用模型来抽象和管理软件复杂性,从而提高生产力和质量。然而,MDD在实际应用中并未达到预期的效果,主要面临一些误解和挑战。 首先,关于MDD的一个挑战是...
Agile模型驱动开发是一种在软件工程领域广泛应用的高级开发方法,它结合了敏捷开发的灵活性与模型驱动架构(MDD)的效率。在"Agile模型驱动开发BorCon China- Raising the level"这个主题中,我们探讨的是如何在中国...
在IT行业中,模型驱动的开发(Model Driven Development, MDD)是一种先进的软件工程方法,它将业务逻辑和系统架构的表示与实现分离,通过模型的抽象和转换来提高开发效率和代码质量。在.NET平台上,这样的框架可以...
- **开发平台的结构**:本文介绍的模型驱动开发平台由开发环境和实现环境两部分组成。其中,目标环境可以与开发环境位于同一台机器上,也可以位于不同的硬件平台上。通过TCP/IP协议连接两者。 - **开发环境的功能**...
模型驱动开发(Model Driven Development, MDD)就是利用UML模型作为软件开发的主要载体,通过自动化工具将模型转换为实际代码,降低了代码编写错误的风险。 在证券研发项目中,RUP与UML的结合应用通常遵循以下步骤...
而模型驱动开发(Model-Driven Development, MDD)提供了一种全新的软件开发范式,它将系统设计和实现的重心放在对系统的抽象描述上,而非传统的编写代码。在嵌入式系统领域,这种模式能够提供更高效、更可靠的开发...
模型驱动开发(Model Driven Development, MDD)是一种先进的软件开发方法,它强调将软件开发过程中的各种概念抽象为模型,这些模型可以更好地表达系统的需求、设计和实现。自动化测试在MDD中扮演着关键角色,因为它...
PowerDesigner是一款强大的建模工具,它支持模型驱动开发(Model Driven Development, MDD),适用于系统分析、设计以及数据库建模等多个领域。这款工具由Sybase公司开发,自1989年以来不断演进,提供了一系列丰富的...
- **模型驱动开发(Model-Driven Development, MDD)**:一种基于模型的软件开发方法,它强调在软件开发的早期阶段创建并利用各种模型来指导整个开发过程。 - **模型到代码的转化**:通过将抽象的业务模型转换为...
--真正的模型驱动开发。目前的建模工具很多,不过个人的观点来看,基本都跑偏了。没办法真正应用模型驱动来有效开发。废话少说。下面的就是MDA(KAYA)建模工具。左侧是需要用到的元素,简单说来包括1.Product(产品...
在模型驱动开发(Model Driven Development,MDD)中,UML模型被视为软件开发的核心,而不是代码本身。通过模型,开发者可以更抽象地思考问题,减少错误,并能自动化生成代码。 1. **用例图**:描绘了系统的外部...
对模型驱动基本原理和在软件/信息系统、企业工程或企业架构...模型驱动开发(MDD)是MDM在开发系统中的应用。MDD仍然不能摆脱在传统的开发或定制中遇到的困境。模型驱动系统(MDS)是MDM的一个基本应用。MDM/MDS是在NEI