软考高级:系统设计 - MDA 模型 AI 解读

news2024/9/27 9:49:13

========== 生活化例子 ==========

想象一下,你要建造一栋房子。建房子需要三个阶段:

  1. CIM (概念阶段):这是你想象中的房子。你大概知道房子需要几间卧室、厨房、卫生间,但是还没有详细的设计图。就像在脑海中有个大概的想法:我要建个温馨的家。

  2. PIM (平台无关模型):这个阶段就像你找了建筑师,把你的想法变成了图纸。这些图纸没有考虑具体建房子用的材料或者工具,只是明确房子该怎么建。比如,卧室要多大、窗户放在哪,图纸是标准化的,不管你用什么建筑材料,它都能适用。

  3. PSM (平台相关模型):这是建房子前最后的阶段。建筑师根据图纸,选择具体的材料和施工工具,比如用什么品牌的水泥、木材、电线等。这个阶段的设计很具体,直接对接施工队,开始动工。

========== 概念讲解 ==========
在这里插入图片描述

MDA 模型中的 CIM (Computation Independent Model, 计算无关模型)PIM (Platform Independent Model, 平台无关模型)PSM (Platform Specific Model, 平台相关模型) 是软件开发中常用的三种模型,用来描述软件系统在不同阶段的设计和实现。

  1. CIM (计算无关模型):这是软件开发的概念阶段,主要聚焦于业务需求和功能逻辑,不涉及技术细节。CIM 描述了系统要做什么、解决哪些问题,比如用户的需求、系统的业务流程等。这个阶段不关心技术实现,而是理解客户想要什么。

  2. PIM (平台无关模型):这一阶段转向技术实现的逻辑设计,但不考虑特定平台的技术限制。PIM 描述了系统的结构和行为,但不具体说明在哪个平台上实现,也不依赖特定的编程语言或数据库。例如,定义了系统要有的模块、模块之间的接口,但没有提到是用 Java 还是 Python 开发。

  3. PSM (平台相关模型):这个阶段就是要具体到技术实现。PSM 基于 PIM 的设计,考虑了特定平台的要求,例如要在 Windows 上开发,还是用 MySQL 作为数据库。这个模型包含了具体的代码结构、技术栈选择等,是可以直接转换为程序代码的详细设计。

========== 简单记法 ==========

记住MDA模型的三个层次,可以用这样一句话:

“概念先想清,设计不依赖,最后平台定。”

  • CIM:先想清楚概念,明确业务需求;
  • PIM:设计时不依赖具体平台;
  • PSM:最后根据平台来具体实现。

通过这句话,你可以快速记住每个阶段的重点!

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

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

相关文章

Spring Boot应用:电子商务平台开发

第2章 关键技术简介 2.1 Java技术 Java是一种非常常用的编程语言,在全球编程语言排行版上总是前三。在方兴未艾的计算机技术发展历程中,Java的身影无处不在,并且拥有旺盛的生命力。Java的跨平台能力十分强大,只需一次编译&#xf…

2024年9月26日--- Spring-AOP

SpringAOP 在学习编程过程中,我们对于公共方法的处理应该是这样的一个过程,初期阶段如下 f1(){Date now new Date();System.out.println("功能执行之前的各种前置工作"now)//...功能代码//...功能代码System.out.println("功能执行之前…

局域网广域网,IP地址和端口号,TCP/IP 4层协议,协议的封装和分用

前言 在古老的年代,如果我们要实现两台机器进行数据传输, A员工就得去B员工的办公电脑传数据(B休息,等A传完),这样就很浪费时间 所以能不能不去B的工位的同时,还能传数据。这时候网络通信就出来…

springboot异常(三):异常处理原理

🍅一、BasicErrorController ☘️1.1 描述 BasicErrorController是Springboot中默认的异常处理方法,无需额外的操作,当程序发生了异常之后,Springboot自动捕获异常,重新请求到BasicErrorController中,在B…

JS设计模式之桥接模式:搭建跨越维度的通路

引言 在软件开发中,我们经常遇到需要对不同的抽象类进行不同的实现的情况,而传统的对象嵌套并不是一个优雅且可扩展的解决方案,因此这正是桥接模式的用武之地。桥接模式通过将抽象与实现分离,使得它们可以独立变化,从…

前缀和(5)_和为k的子数组

个人主页:C忠实粉丝 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 C忠实粉丝 原创 前缀和(5)_和为k的子数组 收录于专栏【经典算法练习】 本专栏旨在分享学习算法的一点学习笔记,欢迎大家在评论区交流讨论💌 目录 1. 题目…

列表控件QListWidget

显示模式 有两种显示模式,列表模式和图标模式 // 获取和设置显示模式 QListView::ViewMode viewMode() const void setViewMode(QListView::ViewMode mode) QListView::ViewMode有两个取值 QListView::ListMode 列表模式 QListView::IconMode 图标模式 交替背…

《银河战星:僵局》风灵月影修改器使用指南,轻松驾驭宇宙战场

在策略射击游戏《银河战星:僵局》中,合理利用风灵月影修改器能极大提升你的游戏体验。 以下是简明操作步骤,助你迅速上手,遨游星际: 1.下载安装: 首先,确保从正规渠道获取风灵月影修改器&…

冒泡排序-C语言

1.问题&#xff1a; 从小到大对10个数进行排序&#xff0c;要求使用冒泡排序实现。 2.解答&#xff1a; 排序规律有两种&#xff1a;一种是“升序”&#xff0c;从小到大&#xff1b;另一种是“降序”&#xff0c;从大到小。 3.代码&#xff1a; #include<stdio.h>//头…

保护您的网络:入侵检测系统 IDS 终极指南

IDS 和 IPS&#xff1a;了解异同-CSDN博客 IDS(入​​侵检测系统) 和 IPS(入​​侵防御系统) 之间的区别-CSDN博客 即便是今天&#xff0c;互联网仍与黑客肆意横行的网络无异。 但不必害怕&#xff01;我们有解决您问题的完美解决方案&#xff1a;入侵检测系统 I DS。 IDS就…

本地打开打包后的dist文件报错的解决方法

出现问题 本地直接打开dist文件夹会报错&#xff0c;报错信息类似于&#xff1a; Access to script at file:///D:/assets/index.9cb0ffcc.js from origin null has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: chrome, ch…

TypeScript基础语法与面对对象

TypeScript 基础语法 TypeScript 与面向对象 面向对象是一种对现实世界理解和抽象的方法。TypeScript 是一种面向对象的编程语言。面向对象主要有两个概念&#xff1a;对象和类 对象&#xff1a;对象是类的一个实例&#xff08;对象不是找个女朋友&#xff09;&#xff0c;有…

【优选算法】(第四篇)

目录 三数之和&#xff08;medium&#xff09; 题目解析 讲解算法原理 编写代码 四数之和&#xff08;medium&#xff09; 题目解析 讲解算法原理 编写代码 三数之和&#xff08;medium&#xff09; 题目解析 1.题目链接&#xff1a;. - 力扣&#xff08;LeetCode&…

接口返回动态列名及动态列数据结构

接口返回动态列名及动态列数据结构代码方案 在开发过程中&#xff0c;有时我们需要处理动态表头和动态列数据的问题。特别是在一些数据统计或报表类需求中&#xff0c;列名和数据都可能随着时间或条件发生变化。本文将结合实际代码和表格展示&#xff0c;详细说明如何在接口中…

微信阅读网站小程序+ssm论文ppt源码调试讲解

第2章 开发环境与技术 微信阅读网站小程序的编码实现需要搭建一定的环境和使用相应的技术&#xff0c;接下来的内容就是对微信阅读网站小程序用到的技术和工具进行介绍。 2.1 MYSQL数据库 本课题所开发的应用程序在数据操作方面是不可预知的&#xff0c;是经常变动的&#xf…

Linux中的tr命令详解

1&#xff0c; 将小写字母转换为大写字母&#xff1a; echo "hello" | tr a-z A-Z但是限定字母的范围的话&#xff0c;是什么输出你们知道吗&#xff1f; echo "hello" | tr a-l A-L2&#xff0c;删除特定字符&#xff1a; 比如&#xff0c;删除所有的数…

【吊打面试官系列-MySQL面试题】MySQL锁的优化策略?

大家好&#xff0c;我是锋哥。今天分享关于【MySQL锁的优化策略?】面试题&#xff0c;希望对大家有帮助&#xff1b; MySQL锁的优化策略? 1、读写分离 2、分段加锁 3、减少锁持有的时间 4.多个线程尽量以相同的顺序去获取资源不能将锁的粒度过于细化&#xff0c;不然可能会…

算法工程师重生之第十六天(二叉搜索树的最小绝对差 二叉搜索树中的众数 二叉树的最近公共祖先 )

参考文献 代码随想录 一、二叉搜索树的最小绝对差 给你一个二叉搜索树的根节点 root &#xff0c;返回 树中任意两不同节点值之间的最小差值 。 差值是一个正数&#xff0c;其数值等于两值之差的绝对值。 示例 1&#xff1a; 输入&#xff1a;root [4,2,6,1,3] 输出&#x…

语义元分割学习:一种用于少量样本无线图像分类的TinyML方案

论文标题&#xff1a;Semantic Meta-Split Learning: A TinyML Scheme for Few-Shot Wireless Image Classification 中文标题&#xff1a;语义元分割学习&#xff1a;一种用于少量样本无线图像分类的TinyML方案 作者信息&#xff1a; Eslam Eldeeb, Mohammad Shehab, Hirley…

nvm,一款nodejs版本管理工具

背景 在工作中&#xff0c;我们可能同时在进行2个或者多个不同的项目开发&#xff0c;每个项目的需求不同&#xff0c;进而不同项目必须依赖不同版本的NodeJS运行环境&#xff0c;这种情况下&#xff0c;对于维护多个版本的node将会是一件非常麻烦的事情&#xff0c;nvm就是为…