当前位置:网站首页>【系统架构】-什么是MDA架构、ADL、DSSA
【系统架构】-什么是MDA架构、ADL、DSSA
2022-06-25 22:36:00 【华为云】
MDA
MDA是Model Driven Architecture 的缩写,也叫模型驱动架构,起源于分离系统规约和平台实现的思想,MDA的主要目标是:Portability(可移植性),Interoperability(互通性),Reusability(可重用性)
先有一个平台独立模型(PIM),通过工具将平台独立模型映射为平台相关模型(PSM),再由平台相关模型生成代码。
MDA和核心模型:
- 平台独立模型(PIM):具有高抽象层,独立于任何实现技术的模型
- 平台相关模型(PSM):为某种特定实现技术量身定做,让你用这种技术中可用的实现构造来描述系统的模型。PIM会被变成一个或多个PSM
- 代码Code:用源代码对系统的描述(规约),每个PSM都将被变成代码。
就是能通过一套通用程序生成另外一套程序或应用
ADL
ADL是一种形式化语言,它在底层语义模型的支持下,为软件系统的概念体系结构建模提供了具体化语法和概念框架。
ADL三个基本元素:
构件:计算或数据存储单元
连接件:用于构件之间交互建模的体系结构构造块及其支配这些交互的规则
架构配置:描述体系结构的构件和连接件的连接图
ADL 建模用,一些伪代码
DSSA
DSSA(Domain Specific Software Architecture)特定领域软件架构,可以看做开发产品线的一个方法或理论,目标就是支持一个特定领域中多应用的生成。
必备特征:
- 一个严格定义的问题域或解决域
- 具有普遍性,使其可以用于领域中某个特定应用的开发
- 对整个领域的合适程序的抽象
- 具备该领域固定的、典型的在开发过程中的可复用元素
领域分析机制:
- 领域专家:有经验的用户、从事该领域中系统的需求分析、设计、实现以及项目管理的有经验的软件工程师等。领域专家的主要任务包括提供关于领域中系统的需求规约和实现的知识。
- 领域分析人员:领域分析人员应由具有知识工程背景的有经验的系统分析员来担任
- 领域设计人员:领域设计人员应由有经验的软件设计人员来担任
- 领域实现人员:领域实现人员应由有经验的程序设计人员来担任
三层次模型:
作者热门文章推荐:
Java面试题专栏:
《从Java面试题看源码》-LongAdder、LongAccumulator是个什么东西?
《从Java面试题来看源码》-LinkedBlockingQueue 源码分析
《从Java面试题看源码》-有哪些并发队列?及ConcurrentLinkedQueue 源码分析
《从Java面试题看源码》-看完Kafka性能优化-让你吊打面试官
《从Java面试题看源码》-默认线程池阻塞队列为什么用LinkedBlockingQueue
边栏推荐
- Core ideas of SQL optimization
- 深圳台电:联合国的“沟通”之道
- Idea set the template of mapper mapping file
- 把控元宇宙产业的发展脉络
- Why do we need to make panels and edges in PCB production
- Multi-Instance Redo Apply
- Simulink求解器综合介绍
- Correct writing methods of case, number and punctuation in Chinese and English papers
- Causes and solutions to the phenomenon of PCBA monument in SMT patch processing
- Things / phenomena / things / things / situations / appearances
猜你喜欢
flink报错:No ExecutorFactory found to execute the application
EBS r12.2.0 to r12.2.6
Apache基金会正式宣布Apache InLong成为顶级项目
Comprehensive introduction to Simulink solver
小红书微服务框架及治理等云原生业务架构演进案例
1-10vmware builds customized network architecture
机器视觉:照亮“智”造新“视”界
从进程的角度来解释 输入URL后浏览器会发生什么?
【ROS进阶篇】第一讲 常用API介绍
Run the test program using rknn-toolkit-lite2 for rk3568 development board
随机推荐
[TSP problem] solving traveling salesman problem based on Hopfield neural network with matlab code
Some basic uses of mongodb
Why is it best to use equals for integer comparisons
SQL中只要用到聚合函数就一定要用到group by 吗?
How product managers control the progress of product development
Methods of modifying elements in JS array
使用coe_load_sql_profile.sql固定执行计划
mtb13_Perform extract_blend_Super{Candidate(PrimaryAlternate)_Unique(可NULL过滤_Foreign_index_granulari
Setting up a cluster environment under Linux (2) -- installing MySQL under Linux
渲云携手英特尔,共创云渲染“芯”时代
使用VS2022编译Telegram桌面端(tdesktop)
渗透工具-Burpsuite
Qt之自定义带游标的QSlider
Graduation season | fitting the best self in continuous exploration
Drag the mouse to rotate the display around an object
Should group by be used whenever aggregate functions are used in SQL?
SSL unresponsive in postman test
1-10Vmware构建自定义的网络架构
Cloud rendering and Intel jointly create the "core" era of cloud rendering
1-10vmware builds customized network architecture