软件架构设计(六) 软件架构风格-MDA(模型驱动架构)

news2024/12/30 1:42:15

概念

模型驱动架构MDA, 全称叫做Model Driven Architecture。

  • Model:表示客观事物的抽象表示
  • Architecture:表示构成系统的部件,连接件及其约束的规约
  • Model Driven: 使用模型完成软件的分析,设计,构建,部署和维护等 开发活动

MDA起源于分离系统规约和平台实现的思想。之前我们在净室软件工程中也提到过这种思想。

在这里插入图片描述

意思就是我们开发一个系统,基本上跟那个数学公式一样,我们从始至终都通过证明来证明它的正确性,而不是通过测试来被动发现问题。

所以在净室软件工程这种思想之下,推动了模型驱动架构的思想。

基本思想

我们一开始建立起模型,再一步步把这个模型映射,生成代码就得到我们最终需要的软件系统。

当然,事实证明,纯粹按这种思想完成这种系统的话,有一定的难度,会面临一些困难。比如业务逻辑是绕不开的,但是一部分去使用这个思想是没有问题的。

比如目前的可视化操作就已经在应用了,比如我们的mybatis generator就可以帮我们生成浙这些代码。这些其实就是按照模型映射生成的代码。

再比如我们通过模板语法生成对应的controller,service,mapper和前端代码增删改查这类似的功能,也是我们的模型驱动架构。

其实模型驱动架构可能跟现在的低代码平台思想也有着千丝万缕的联系。

主要目标

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/982187.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python入门学习13(面向对象)

一、类的定义和使用 类的使用语法: 创建类对象的语法: ​​​​​​​ class Student:name None #学生的名字age None #学生的年龄def say_hi(self):print(f"Hi大家好,我是{self.name}")stu Student() stu.name &q…

软件系统平台验收测试报告

验收测试 一、验收测试 软件项目验收测试依据招投标文件以及相关行业标准、国家标准、法律法规等对软件的功能性、易用性、可靠性、兼容性、维护性、可移植性和用户文档等进行检测,对软件项目的质量进行科学的评价,为项目验收提供依据。 1、服务内容 …

成功解决OSError: [WinError 1455] 页面文件太小,无法完成操作

最近写了个训练文件,昨天在运行的时候都是好好的,今天一运行就报错了,不得不说,有点点奇怪。 OSError: [WinError 1455] 页面文件太小,无法完成操作。 Error loading "D:\AI\Anaconda\anaconda3\envs\torch1.8\li…

嵌入式学习笔记(16)反汇编工具objdump

2.4.1反汇编的原理&为什么要用反汇编 arm-linux-objdump -D led.elf > led_elf.dis objdump是gcc工具链中的反汇编工具,作用是由编译链接好的elf格式的可执行程序反过来得到汇编源代码 -D表示反汇编 > 左边的是elf可执行程序(反汇编的源&am…

Linux RPM JDK升级

以JDK1.8升级JDK17为例 上传jdk17安装包到linux服务器 检查jdk版本 rpm -qa|grep jdk 删除查询到的jdk rpm -e --nodeps jdk1.8-1.8.0_201-fcs.x86_64 删除完毕后安装新的jdk rpm -ivh jdk-17_linux-x64_bin.rpm 检查jdk版本 java -version

Matlab信号处理3:fft(快速傅里叶变换)标准使用方式

Fs 1000; % 采样频率 T 1/Fs; % 采样周期:0.001s L 1500; % 信号长度 t (0:L-1)*T; % 时间向量. 时间向量从0开始递增,0s~1.499sS 0.7*sin(2*pi*50*t) sin(2*pi*120*t); % 模拟原信号 X S 2*randn(size(t)); …

jenkins快速跑通helloworld任务

jenkins新建helloworld示例 左上角“新建任务” 输入名称,选择第一个创建: 可以选择众多执行脚本,这里选择shell: 随后弹出一个窗口,将下面脚本填入: #!/bin/bashecho start... for i in {1..10}doecho $i…

什么是混合项目管理模式,以及价值

随着工作环境的不断变化,传统的项目管理方法(如瀑布模型)已经不能满足当前的需要,这也引发了对敏捷和瀑布式两种方法论之间优劣的新一轮讨论。瀑布模型是一种较为传统和结构化的项目管理方法,主要用于项目管理和软件开…

CH06_第一组重构(上)

提取函数(Extract Function |106) 曾用名:提炼函数(Extract Function) 反向重构:内联函数(115) 示例代码 function printOwing(invoice) {printBanner();let outstanding calcul…

git撤销还未push的的提交

怎样撤销掉上图中的提交呢 使用以下代码即可提交 git reset --soft HEAD^

如何在Ubuntu 20.04|18.04上安装 FreeSwitch

如何在Ubuntu 20.04|18.04上安装FreeSwitch 什么是 FreeSwitch PBX?FreeSwitch PBX 系统有哪些功能?开始部署部署前准备开始安装freeswitch 安装完成错误及问题FAQ常见配置文件及说明修改默认端口:防火墙配置账号密码配置/添加新用户freeswit…

如何在JavaScript中实现继承?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 原型链继承⭐ 借用构造函数继承(构造函数继承)⭐ 组合继承⭐ 原型式继承⭐ 寄生式继承⭐ 寄生组合式继承⭐ 写在最后 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本…

Java+Swing+mysql高校教材管理系统

JavaSwingmysql高校教材管理系统 一、系统介绍二、功能展示1.用户登陆2.主页3.教材库管理4.出版社管理5.订单管理6.入库管理7.领书管理 三、系统实现1.salary.java 四、其它系统五、获取源码 一、系统介绍 1.实现出版社、教材类型等的管理; 2.实现教材的订购管理&…

LLM大模型推理加速 vLLM;Qwen vLLM使用案例;模型生成速度吞吐量计算

参考: https://github.com/vllm-project/vllm https://zhuanlan.zhihu.com/p/645732302 https://vllm.readthedocs.io/en/latest/getting_started/quickstart.html ##文档 1、vLLM 这里使用的cuda版本是11.4,tesla T4卡 加速原理: Paged…

STM32CubeMX驱动INA226芯片

环境 1、单片机:STM32F042F6P6 2、编译器:KeilMDK 3、配置工具:STM32CubeMX 目标 使用STM32的硬件IIC接口驱动高侧/低侧测量、双向电流/功率监视器INA226。 开始 1、配置STM32F042F6P6的IIC 2、编写INA226的驱动 头文件: #…

Windows11安装配置Git

安装配置Git 1.安装Git1.1下载Git1.2Git的安装1.安装2.安装声明3.安装路径选择4.选择安装组件5.开始菜单文件夹6.选择Git默认编辑器7.决定初始化新项目(仓库)的主干名称8.调整你的path环境变量9.选择SSH执行文件10.配置行尾符号转换11.配置终端模拟器与Git Bash一起使用12.选择…

上海亚商投顾:沪指探底回升 光刻胶概念股全线爆发

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 一.市场情绪 沪指早间弱势震荡,午后反弹拉升翻红,创业板指一度跌超1%,随后跌幅有所收窄…

算法通关村第12关【白银】| 字符串经典问题

一、反转问题 1.反转字符串 思路&#xff1a;双指针&#xff0c;反转数组一个套路 class Solution {public void reverseString(char[] s) {int l 0;int r s.length -1;while(l<r){char c s[l];s[l] s[r];s[r] c;l;r--;}} } 2.k个一组反转 思路&#xff1a;每k个进行…

noetic 怎么下载robotiq_modbus_tcp 从而使用robotiq二指夹爪

1&#xff0c;会科学上网 2&#xff0c; # Modbus TCP rosdep install robotiq_modbus_tcp3&#xff0c;报错 4&#xff0c;去robotiq的功能包里面找两个大爷&#xff08;tmd&#xff09; 分别修改package.xml 本来是python &#xff0c; 然后分别修改成python3 然后参考其他…

jpg格式图片怎么弄?不同格式图片该怎么转换?

在日常生活和工作中&#xff0c;我们经常会遇到需要转换图片格式的情况。本文将介绍如何将jpg格式图片转换为其他格式&#xff0c;以及如何转换不同格式的图片。 jpg格式图片转换的一些问题 jpg是一种常见的图片格式&#xff0c;但在某些情况下&#xff0c;需要将其转换为其他…