《系统架构设计》-05-架构模型(Architecture Model)

news2024/9/28 13:19:16

文章目录

  • 1. 概述
    • 1.1 模型
    • 1.2 软件设计领域的架构模型
  • 2. 领域模型(Domain Model)
    • 2.1 概念
    • 2.2 示例
  • 3. 设计模型(Design Model)
    • 3.1 概念
    • 3.2 创建过程
  • 4. 代码模型
    • 4.1 概念
    • 4.2 创建过程
  • 5. 三种模型的关系

1. 概述

1.1 模型

诠释:通过主观意识借助实体或者虚拟表现,构成客观阐述形态和结构的一种表达目的的事物。

1.2 软件设计领域的架构模型

  • 架构模型和模型设计

架构模型本质是对架构本身的一种描述方式,架构设计是一个抽象的过程。

  • 如何设计模型

当我们面对各种业务需求时,实际上就是把现实世界的具体问题转变成抽象的问题,然后对抽象问题进行分析并提炼出抽象的解决方案。过多的细节需要在抽象过程中被剔除。

在这里插入图片描述

2. 领域模型(Domain Model)

2.1 概念

  • 领域:对现实世界问题的一种统称,即是一个组织的业务开展方式。
  • 领域模型的目的:进行业务建模
  • 建模过程
    通过分析业务场景和构建信息模型的方式展现系统对业务的理解和抽象,实现从现实世界的问题到抽象的问题的转变。

2.2 示例

下图是一种领域模型的表现形式,体现了对项目管理领域中项目(Project)、计划(Plan)和任务(Task)及其相关关系在特定业务场景的抽象结果。

在这里插入图片描述

3. 设计模型(Design Model)

3.1 概念

  • 设计模型:
    • 在明确系统边界的前提下,实现系统内部模块和组件的抽象和构建。
    • 设计模型指向领域模型,关注从抽象的问题到抽象的解决方案的转变。
  • 设计模型包括:
    • 边界模型:明确系统边界,抽象系统集成和交互方案,
    • 内部模型:细化边界模型。

3.2 创建过程

  • 从领域模型的领域和边界上下文(Boundary Context)出发,
  • 划分系统的模块并设计相应的端口与连接器。

4. 代码模型

4.1 概念

代码模型实现现实世界的解决方案

4.2 创建过程

我们可以通过领域模型嵌入代码的方式构建代码模型,也可以通过各种设计模式在代码中表达设计意图。

5. 三种模型的关系

三种模型完成了从现实问题到最终解决方案的演进

  • 领域模型:代表领域的固定业务,是客观存在的现实,通常不在控制范围内
  • 设计模型:指向领域模型。
    • 边界模型关注对接口的承偌
    • 内部模型符合边界模型的细节设计
  • 代码模型:提供了完整实现设计,是对设计模型的细化。

在这里插入图片描述


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

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

相关文章

“华为杯”研究生数学建模竞赛2006年-【华为杯】A题:Ad Hoc 网络中的区域划分和资源分配问题(附获奖论文)

赛题描述 Ad Hoc网络是当前网络和通信技术研究的热点之一,对于诸如军队和在野外作业的大型公司和集团来说,Ad Hoc网络有着无需基站、无需特定交换和路由节点、随机组建、灵活接入、移动方便等特点,因而具有极大的吸引力。 在Ad Hoc网络中,节点之间的通信均通过无线传输来完…

黑马Spring学习笔记(三)——Spring整合MyBatis、Junit

一、Spring整合Mybatis 步骤1:项目中导入整合需要的jar包【pom.xml】<!--Spring操作数据库需要该jar包--> <dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>5.3.20</version&g…

前端技术和框架

一、各种技术概述 1.HTML &#x1f9e8;HTML中文称为超文本标记语言&#xff0c;从语义上来说&#xff0c;它只是一种是一种标识性的语言&#xff0c;并不是一种编程语言。 <p>这是一段话</p>通过这个标签可以表示文本的一个段落。而且其中还有还有图片标签、视…

Dvwa及Sqli安装

Dvwa与Sqli安装资源准备Dvwa安装SQLI安装资源准备 链接&#xff1a;https://pan.baidu.com/s/1ZhPTmSgD-VaAevK-JyWtjQ 提取码&#xff1a;2hkd Dvwa安装 首先将Dvwa解压到phpstudy的www目录下&#xff1a; 然后进入到相应的config文件下&#xff0c;会发现一个dist结尾的文…

第三节 流程控制语句

流程控制语句 顺序结构 分支结构 if分支结构&#xff1a; 格式1: if(条件表达式){ 代码 } 格式2&#xff1a; if(条件表达式){ 代码 }else{ 代码 } 格式3&#xff1a; if(条件表达式){ 代码 }else if&#xff08;&#xff09;{ 代码 }else if&#xff08;&#xff09;{ 代码…

SpringCloud(五)MQ消息队列

MQ概念常见消息模型helloworld案例实现实现spring AMQP发送消息实现spring AMQP接收消息工作消息队列实现发布订阅模型Fanout Exchange实现DirectExchange实现TopicExchange实现DirectExchange 和FanoutExchange的差异DirectExchange 和TopicExchange的差异基于RabbitListener注…

浅谈hcip devops考试心得

官网&#xff1a;华为HCIP-Cloud Service DevOps Engineer 今天考过了hcip devops的考试&#xff0c;写两句&#xff0c;对于一些参加考试的朋友留下一点参考: 第一个问题&#xff0c;hcip还需要报班嘛&#xff1f; 我认为这一项是不需要的&#xff0c;有点浪费钱&#xff0c;…

软件测试人员会被替代吗?IT行业哪个方向的前景最好?字节12年测开是这样说的

互联网测试从业12年&#xff0c;前来作答。 逻辑上来说&#xff0c;软件工程最初始只需要两个岗位&#xff0c;一个是产品经理。&#xff0c;一个是研发&#xff08;开发&#xff09;&#xff0c;剩余的 所有岗位都是由他们衍生而来的。 第三个岗位大概率就是测试&#xff0c…

继电器的工作原理、构成和功能介绍

随着电力应用的不断发展&#xff0c;电气设备已经深入到我们的日常生活中&#xff0c;电气自动化技术大量使用在电力系统和生产型企业中&#xff0c;人们在享受电带来方便的同时要注意用电保护。继电器就是为了保护电路而生的&#xff0c;可以提高电路可靠性&#xff0c;保障用…

山洪径流过程模拟及洪水危险性评价

目录 1.洪水淹没危险性评价方法及技术讲解 2.GIS水文信息提取与分析(基于ArcGIS软件) 3.洪水淹没模拟水文分析&#xff1a;洪峰流量估算 4.洪水淹没模拟水力学分析&#xff1a;Hec-RAS实例操作 GIS水文分析&#xff08;ArcHydro、Spatial Anlysist等模块&#xff09;是流域…

从银行数字化转型来聊一聊,火山引擎 VeDI 旗下 ByteHouse 的应用场景

更多技术交流、求职机会&#xff0c;欢迎关注字节跳动数据平台微信公众号&#xff0c;回复【1】进入官方交流群 近日&#xff0c;火山引擎凭借云原生数据分析平台 ByteHouse&#xff0c;成功入围行业媒体 Internet Deep&#xff08;互联网周刊&#xff09;发布的《2022 云原生企…

【Linux】软件包管理器yum和编辑器vim的使用

文章目录1.软件包管理器yum1.1什么是软件包和软件包管理器1.2yum的介绍与使用2.编辑器vim2.1vim的基本概念2.2vim的基本操作2.3vim【Nomal mode】命令集2.4 vim末行模式命令集2.5 简单的vim配置1.软件包管理器yum 1.1什么是软件包和软件包管理器 在Linux下下载软件的方式是下…

数据治理之元数据管理Atlas

数据治理之元数据管理的利器——Atlas 一、数据治理与元数据管理 1.1 背景 为什么要做数据治理&#xff1f; 业务繁多&#xff0c;数据繁多&#xff0c;业务数据不断迭代。人员流动&#xff0c;文档不全&#xff0c;逻辑不清楚&#xff0c;对于数据很难直观理解&#xff0c;…

高阶人生从在职读研开始——中国社科院与美国杜兰大学金融管理硕士

说到学历&#xff0c;好多人都不太在意&#xff0c;感觉学历没什么用。等升职学历被卡时&#xff0c;等你想考公学历达不到时&#xff0c;当你想跳槽更大的平台时&#xff0c;学历会显得尤其重要。当机会来临时&#xff0c;我们应该做好全足的准备&#xff0c;而不是眼瞅着机会…

【CSS文字滚动】CSS实现文字横向循环无缝滚动,鼠标移入暂停移出继续(附实测源码)

CSS如何实现文字横向滚动滚动效果1、垃圾liMarquee&#xff08;最好别用&#xff09;2、css实现文字滚动&#xff0c;且鼠标移入移出暂停和继续HTML源码如下&#xff1a;CSS源码如下&#xff1a;JS源码如下&#xff1a;3、片尾彩蛋CSS实现文字横向循环无缝滚动&#xff0c;鼠标…

为什么文档对 SaaS 公司至关重要?

在过去十年左右的时间里&#xff0c;SaaS的兴起使全球数百家公司成为家喻户晓的公司。但他们并不是仅仅依靠产品的力量到达那里的。客户服务和支持是使一切在幕后顺利进行的原因——其中很大一部分是文档。以正确的风格和正确的位置在您的网站上找到适当的用户文档对于将浏览器…

Docker----------网络network

1. 是什么 1.1docker不启动默认网络 1.ens332.lo3.virbr0 在CentOS7的安装过程中如果有选择相关虚拟化的的服务安装系统后&#xff0c;启动网卡时会发现有一个以网桥连接的私网地址的virbr0网卡(virbr0网卡&#xff1a;它还有一个固定的默认IP地址192.168.122.1)&#xff0c…

大数据技术生态全景一览

大数据技术生态全景一览大数据平台ETL数据接入大数据平台海量数据存储大数据平台通用计算大数据平台各场景的分析运算分布式协调服务任务流调度引擎大数据平台ETL数据接入 大数据有很多的产品&#xff0c;琳琅满目。从架构图上就能看出产品很多。这些产品它们各自的功能是什么…

乐友商城学习笔记(十六)

购物车功能分析 新增 判断用户是否登陆&#xff08;页面&#xff09; 未登录&#xff0c;添加到页面的localstrorage中 登陆&#xff0c;添加到redis中 已经存在该商品的购物车记录&#xff0c;更新数量&#xff0c;否则新增一条商品的购物车记录 查询 ly.store.get(“LY_C…

【打卡】图分析与节点嵌入

背景介绍 图&#xff08;Graphs&#xff09;是一种对物体&#xff08;objects&#xff09;和他们之间的关系&#xff08;relationships&#xff09;建模的数据结构&#xff0c;物体以结点&#xff08;nodes&#xff09;表示&#xff0c;关系以边&#xff08;edges&#xff09;…