MDSF:模型驱动开发(MDD)介绍

简介:

模型驱动开发Model Driven Development  (MDD) 是一种以模型作为主要工件的高级别抽象的开发方法,模型在工具的支持下,被作为核心资产被转换成代码或者可运行配置。现在软件业存在多种MDD开发方法,本篇将对MDD进行概要介绍。

定义

  在过去多年,软件开发面临了多个挑战,新的需求和存在系统不断增长,系统也变得越来越复杂,以至于我们很难及时的构建它们。为了解决这些问题,就出现了很多新的方法,其中最突出的一个就是模型驱动开发。 MDD代表了一套理论和工业化软件开发的方法框架,在软件开发全生命周期中系统的的使用模型作为主要工件,它主要为了解决软件的两个根本危机:复杂性和变更能力 。

   

  使用模型作为文档和规范是有价值的,但是它需要严格的管理方式来确保模型是持续更新的。在实际工作中,我们迫于时间压力经常会出现于实现不一致的模型,这对开发和项目其实是不利的。而MDD的基本思想是让开发中心从编程转移到高级别抽象中去,通过模型转成代码或其他工件来驱动部分或全部的自动化开发

模型是一种抽象的语言

多种模型

   

   模型是一种建模语言,它需要我们自己根据业务和技术需要去设计它,在架构、分析、设计、实现等不同阶段都会存在多种模型, 如企业架构模型、技术架构模型、领域模型、UI模型、数据库建模、业务规则模型、系统部署模型、测试模型等。

  建模的过程是由不同阶段的成员来完成,有些模型之间有引用关系,应用软件通过所有人的建模工作而构建起来。

三个阶段

  1. 建立模型


  2. 建模



  3. 模型转换
       

  模型和建模这两部分内容已经存在很多方法,它们在现在软件开发过程中已经处于重要位置,但是在需要哪些表达模型以及如何使用这些模型存在着差异。传统的模型只是一个设计蓝图,而MDD必须满足额外的要求,这些模型必须是可读的,也就是说必须存在第三个阶段,也就是模型转换:model  to  model  (M2M)  和 model  to  code  (M2C)

优势

  • 提高产能:开发快、降低成本、提高质量
  • 可维护性:高级别模型与技术分类,技术架构的改变意味着只是模型的一种新的转换
  • 一致性:手工编码和架构决策容易出错,MDD可以确保生成的工件是一致的
  • 可重用性:模型、转换和架构都是可以重用的,由于架构和技术问题已经被解决,所以开发新功能的风险也低
  • 改善涉众沟通:模型忽略系统逻辑行为的底层实现,而直接展现问题域,这样可以保证和涉众使用同一种语言进行沟通
  • 改善设计沟通:模型与系统是匹配及时更新的,所以可以通过模型来改善系统设计的讨论和沟通
  • 捕获领域知识:可以加强领域专家对系统的直接影响,通过模型还可以帮助组织进行知识管理
  • Business-IT对齐:关注问题域,关联技术域,一种业务和IT对齐的方法
  • 模型作为一种长期的核心资产:高级别的模型作为核心资产管理起来,只有在业务需求变更时才会进行更改
  • 推迟技术决策:应用开发在早期关注业务逻辑问题,对于技术选择可以推迟到后期
  • 提供及时的文档:通过模型可以生成很多同步的文档,利于与不同涉众进行交流

经济模型

MDD方法相关

一个参考的模型驱动DSL框架

 Eclipse Modeling Project

 

模型驱动开发(MDD)的一些参考资料

MDE - Model Driven Engineering - reference guide

 

参考:Model Driven Development – Future or Failure of Software Development










 本文转自 jingen_zhou 51CTO博客,原文链接:http://blog.51cto.com/zhoujg/517122,如需转载请自行联系原作者


相关文章
|
机器学习/深度学习 自然语言处理 算法
浅述几种文本和图像数据增强的方法
在现实场景中,我们往往收集不到太多的数据,那么为了扩大数据集,可以采用数据增强手段来增加样本,那么平常我们应该怎么做数据增强的呢? 什么是数据增强 数据增强也叫数据扩增,意思是在不实质性的增加数据的情况下,让有限的数据产生等价于更多数据的价值。
|
Java 关系型数据库 MySQL
面试被问分布式事务(2PC、3PC、TCC),这样解释没毛病!
面试被问分布式事务(2PC、3PC、TCC),这样解释没毛病!
973 0
面试被问分布式事务(2PC、3PC、TCC),这样解释没毛病!
|
7月前
|
人工智能 自然语言处理 安全
氛围编程陷阱:为什么AI生成代码正在制造大量"伪开发者"
AI兴起催生“氛围编程”——用自然语言生成代码,看似高效实则陷阱。它让人跳过编程基本功,沦为只会提示、不懂原理的“中间商”。真实案例显示,此类项目易崩溃、难维护,安全漏洞频出。AI是技能倍增器,非替代品;真正强大的开发者,永远是那些基础扎实、能独立解决问题的人。
817 11
氛围编程陷阱:为什么AI生成代码正在制造大量"伪开发者"
|
6月前
|
缓存 Java 大数据
深入理解 Project Valhalla:值类型即将如何重塑 JVM 性能
Project Valhalla 是OpenJDK的关键项目,通过引入值类型、泛型特化等特性,显著提升JVM性能与内存效率,减少对象开销和GC压力,助力Java在高性能计算、大数据等领域实现接近底层语言的运行效率。
894 7
|
存储 JSON Serverless
西游再现,函数计算一键部署 Flux 超写实文生图模型部署
参与体验活动生成西游人物图像,既有机会赢取好礼!本次实验在函数计算中内置了flux.1-dev-fp8大模型,通过函数计算+Serverless应用中心一键部署Flux模型,快速生成超写实图像。首次开通用户可领取免费试用额度,部署过程简单高效。完成部署后,您可以通过修改提示词生成各种风格的图像,体验Flux模型的强大绘图能力。
西游再现,函数计算一键部署 Flux 超写实文生图模型部署
|
开发工具 git
git error 已解决【Another git process seems to be running in this repository, e.g. an editor opened by】
git error 已解决【Another git process seems to be running in this repository, e.g. an editor opened by】
462 2
|
机器学习/深度学习 人工智能 大数据
阿里云大数据&AI 2022案例合集
阿里云2022大数据&AI精选产品案例合集,了解产品最新及最佳实践,助力企业实现降本增效。
阿里云大数据&AI 2022案例合集
|
JSON C# 图形学
Unity——JSON的读取
Unity——JSON的读取
461 0
|
开发框架 前端开发 JavaScript
React、Vue.js 和 Angular主流前端框架和选择指南
在当今的前端开发领域,选择合适的框架对于项目的成功至关重要。本文将介绍几个主流的前端框架——React、Vue.js 和 Angular,探讨它们各自的特点、开发场景、优缺点,并提供选择框架的建议。
521 6
|
消息中间件 存储 NoSQL
Redis Stream: 实时消息处理的利器,让你的数据流畅又可靠!
Redis Stream: 实时消息处理的利器,让你的数据流畅又可靠!
803 0