模型驱动的软件开发

var code = "101bf004-9dce-484e-8a4d-b93313008a31"

1.模型驱动的软件开发

开发者主要的工作是创建和维护一系列描述系统不同方面、不同抽象层次的精确模型,而最终的可运行代码(全部或大部分)可以从这些模型自动或半自动地生成。

1-1 传统开发 (Code-Centric) VS 模型驱动开发 (Model-Driven)

特性传统开发 (Code-Centric)模型驱动开发 (Model-Driven)
核心工件源代码模型 (PIM, PSM)
抽象层次较低(直接面对代码和技术细节)较高(PIM 层专注业务,技术细节后置)
代码来源手动编写为主自动生成为主(从模型转换而来)
设计文档通常滞后、不一致,易过时模型即设计,与实现(生成的代码)保持高度一致
变更影响业务或技术变更常需修改大量分散的代码业务变更主要在 PIM 修改;技术迁移主要调整转换规则/生成器
参与者主要是开发人员业务专家、架构师、开发人员在模型层更紧密协作
设计师 画蓝图 -> 工人(程序员)根据蓝图的理解,手动搬砖砌墙(写代码)建筑师用专业的建模工具画出一套机器可读的数字蓝图(模型)-> 代码生成器 根据蓝图,直接、自动地生产出建筑构件(代码)。
需要部署到多个异构平台的系统(一次建模,多平台生成)

它的核心工作流(以OMG的MDA为经典框架)通常包括:

  1. 计算无关模型:只描述业务领域和需求,不关心技术。

  2. 平台无关模型:描述系统的架构、逻辑,但不依赖任何具体技术(如Java或.NET)。

  3. 平台相关模型:在PIM基础上,绑定到具体技术平台(如Java EE, .NET)的细节。

  4. 代码生成:通过转换规则,将PSM自动转换为特定平台、特定编程语言的代码

2. 什么是模型?

在软件工程和MDSD的上下文中,模型对现实或构想中某个系统(或系统的一部分)的、有目的的、简化的、形式化的抽象表示

  • 模型会刻意忽略掉与当前目的无关的细节。

  • 在MDSD中,模型通常使用定义良好的建模语言来表达,如UMLSysML 或领域特定语言。

  • 表示:模型通常使用图形、文字或两者的结合来表示。UML的类图、序列图就是典型的图形化模型。

2-2 模型在软件开发中的常见类型:

  • 结构模型:描述系统的组成部分及其静态关系。例如:UML类图实体关系图组件图

  • 行为模型:描述系统的动态行为。例如:UML状态机图活动图序列图

  • 架构模型:描述系统的宏观结构和设计决策。例如:部署图包图

posted @ 2025-12-24 11:17  geekChen01  阅读(0)  评论(0)    收藏  举报  来源