系统架构设计师教程(清华第2版)<第1章 绪论>解读

系统架构设计师教程 第一章 绪论

  • 1.1 系统架构概述
    • 1.1.1 系统架构的定义及发展历程
    • 1.1.2 软件架构的常用分类及建模方法
    • 1.1.3 软件架构的应用场景
    • 1.1.4 软件架构的发展未来
  • 1.2 系统架构设计师概述
    • 1.2.1 架构设计师的定义、职责和任务
    • 1.2.2 架构设计师应具备的专业素质
  • 1.3 如何成为一名好的系统架构设计师
    • 1.3.1 如何衡量一名优秀架构设计师
    • 1.3.2 从工程师到系统架构设计师的演化

1.1 系统架构概述

   系统架构(System Architecture)是系统的一种整体的高层次的结构表示,是系统的骨架和根基,支撑和链接各个部分,包括组件、连接件、约束规范以及指导这些内容设计与演化的原理。它是刻画系统整体抽象结构的一种手段,也决定了系统的健壮性和生命周期的长短。

1.1.1 系统架构的定义及发展历程

   软件系统架构是指对软件系统整体结构和组成部分的规划和设计,包括不同模块之间的关系、数据流动、处理流程、分层和模块化结构等。软件系统架构的设计可以帮助开发团队更好地理解系统的整体结构,提高系统的可维护性、可扩展性和性能。软件系统架构的发展历程可以大致分为以下几个阶段:1. 单层结构:最早期的软件系统架构采用单层结构,即将所有功能模块都集中在一个程序中实现。这种结构简单直观,但随着软件系统规模的增大和复杂度的提高,单层结构难以满足需求。2. 分层结构:分层结构将软件系统划分为不同的层次,每个层次负责不同的功能。常见的分层结构包括三层架构和MVC架构。分层结构可以提高系统的可维护性和扩展性,同时降低了开发的复杂性。3. 客户端-服务器架构:客户端-服务器架构是一种分布式架构,将客户端和服务器端分开,客户端负责用户界面和用户输入,服务器端负责处理逻辑和数据存储。这种架构可以减轻服务器端的负担,提高系统的性能和扩展性。4. 面向服务的架构(SOA):面向服务的架构将系统划分为多个独立的服务,每个服务可以独立部署和扩展。不同服务之间通过接口进行通信,实现系统的灵活性和可重用性。5. 微服务架构:微服务架构是一种轻量级的面向服务的架构,将系统划分为多个小型独立服务,每个服务可以独立开发、部署和运行。微服务架构提供了更好的可扩展性和弹性,适合大型复杂系统的构建。总的来说,软件系统架构经历了从单层结构到分层结构、客户端-服务器架构、面向服务的架构再到微服务架构的发展过程,不断地提高系统的可维护性、可扩展性和性能,促使软件开发变得更加高效和灵活。

1.1.2 软件架构的常用分类及建模方法

   软件架构通常可以分为四种常用分类:1、分层架构将软件系统分解为不同的层次,每一层都有特定的职责和功能。常见的分层架构包括三层架构(展示层、业务逻辑层和数据访问层)和四层架构(展现层、通讯层、服务层和数据访问层)等。

在这里插入图片描述
2、领域驱动设计(DDD)
以软件应用领域为核心,将系统分解为不同的领域模型和子域,通过领域模型的设计和实现来实现系统功能。
2004 年埃里克·埃文斯(Eric Evans)发表了《领域驱动设计》(Domain-Driven Design–Tackling Complexity in the Heart of Software)这本书,从此领域驱动设计(Domain Driven Design,简称 DDD)诞生。DDD 核心思想是通过领域驱动设计方法定义领域模型,从而确定业务和应用边界,保证业务模型与代码模型的一致性。
DDD是一种设计思想,通过事件风暴使用通用语言对业务进行领域建模,通过限界上下文进行合理的领域拆分,可以使得

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

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

相关文章

上份工作不干了24年5月-6月回顾(面试+软考)需要资料的小伙伴可以关注下

前言: 博主在5月和6月基本没有对博客内容进行更新了,不是博主偷懒,5月份博主在全力准备24年系统分析师的软考,6月份在准备面试,现在对5月和6月进行回顾; 先说下软考系统分析师: 博主实在今年3月…

记录OSPF配置,建立邻居失败的过程

1.配置完ospf后,在路由表中不出现ospf相关信息 [SW2]ospf [SW2-ospf-1]are [SW2-ospf-1]area 0 [SW2-ospf-1-area-0.0.0.0]net [SW2-ospf-1-area-0.0.0.0]network 0.0.0.0 Jul 4 2024 22:11:58-08:00 SW2 DS/4/DATASYNC_CFGCHANGE:OID 1.3.6.1.4.1.2011.5.25 .1…

arm_uart4实验

#include "uart4.h" //UART //初始化 void hal_uart4_init() { //rcc_init //…

前端Debugger时复制的JS对象字符转JSON对象

前端debugger时,复制的对象在控制台输出时是如下格式,需要转换为对象格式来进行验证操作 bridgeId : 4118 createBy : null createTime : "2023-03-24 10:35:26" createUserId : 1 具体实现代码: // 转换transform (text) {l…

openlayers中区域掩膜的实现

概述 在前文完成了mapboxGL中区域掩膜的实现。近日有人问到说在openlayers中如何实现,本文就带大家看看如何在openlayers中实现区域掩膜。 实现效果 实现 1. 实现思路 在地图容器中添加一个canvas,设置其在map之上;监听map的postrender事…

文华财经T9多空波段趋势量化交易策略模型源码

// 定义变量 Vars Numeric STEP1,MVALUE1,SARVAL,C; Numeric SARLINE,COND,ZBMA1,ZBMA2; Begin CCLOSE; STEP13/11; MVALUE120/22; SARVALSAR(4, STEP1, MVALUE1); PlotLine("",IIF(SARVAL>0,SARVAL,InvalidNumeric),RED,Circledot); PlotLine("&q…

AI大模型开发入门:OpenAI API的Hello World

AI大模型时代下,我们也要学点大模型知识了。 前面我们简单实现了将GPT接入微信公众号: [【超详细!】Python微信公众号开发(4)- 手把手教你接入GPT],算是已经用过一点AI的知识了,浅尝辄止。 这还…

[吃瓜教程]南瓜书第5章神经网络

1.M-P神经元 M-P神经元,全称为McCulloch-Pitts神经元,是一种数学模型,用于模拟生物神经元的功能。这个模型是由Warren McCulloch和Walter Pitts在1943年提出的。它是人工智能和计算神经科学领域中非常重要的早期模型。 M-P神经元接收n个输入…

[数据集][目标检测]轮椅检测数据集VOC+YOLO格式13826张1类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):13826 标注数量(xml文件个数):13826 标注数量(txt文件个数):13826 标…

Python学习笔记28:进阶篇(十七)常见标准库使用之质量控制中的代码质量与风格第二部分

前言 本文是根据python官方教程中标准库模块的介绍,自己查询资料并整理,编写代码示例做出的学习笔记。 根据模块知识,一次讲解单个或者多个模块的内容。 教程链接:https://docs.python.org/zh-cn/3/tutorial/index.html 质量控制…

【浦语大模型开源探索】InternLM实战营第二期:技术笔记与全链路解析

本次课程链接在GitHub上: InternLM/Tutorial at camp2 (github.com) 第一次课程录播链接: 书生浦语大模型全链路开源体系_哔哩哔哩_bilibili InternLM2技术报告: arxiv.org/pdf/2403.17297.pdf 一、书生浦语大模型全链路开源体系笔记 Int…

太速科技-FMC209-基于FMC的4路125MAD输入、2路1GDA输出子卡

FMC209-基于FMC的4路125MAD输入、2路1GDA输出子卡 一、板卡概述 本子卡基于FMC连接器实现4路125M采样率AD输出,两路1G采样率DA输出子卡,板卡默认由FMC连接器12V供电,支持外参考时钟,外输入时钟,外触发。 …

交互未来入选“北京市通用人工智能产业创新伙伴计划”模型伙伴

在“开启数智新时代,共享数字新未来”的宏大主题下,2024全球数字经济大会于近日盛大开幕,汇聚全球智慧,共谋数字经济新篇章。大会首日,备受瞩目的人工智能专题论坛率先拉开帷幕,以“应用即未来——大模型赋…

视频太大发不出去怎么处理,视频太大发不了邮件怎么办

在数字化时代,视频已成为我们分享生活、传递信息的重要方式。然而,当遇到视频文件过大,无法发送或分享时,你是否感到困扰?别担心,本文将为你揭秘轻松解决视频太大发不了的问题。 电脑频编辑器可以用于简单的…

图书借阅小程序论文(设计)开题报告

一、课题的背景和意义 近些年来,随着移动互联网巅峰时期的来临,互联网产业逐渐趋于“小、轻、微”的方向发展,符合轻应用时代特点的各类技术受到了不同领域的广泛关注。在诸多产品中,被誉为“运行着程序的网站”之名的微信小程序…

【大数据】—量化交易实战案例(海龟交易策略)

声明:股市有风险,投资需谨慎!本人没有系统学过金融知识,对股票有敬畏之心没有踏入其大门,今天用另外一种方法模拟炒股,后面的模拟的实战全部用同样的数据,最后比较哪种方法赚的钱多。 海龟交易…

LaTeX表格灵活设置列宽

一些基本的插入表格的操作见:https://blog.csdn.net/gsgbgxp/article/details/129457872 遇到问题先查阅《IShort》和刘海洋老师的《LaTeX入门》。 设置表格列宽基础操作(不借助tabularx) 先从一个简单表格开始 \begin{table}[!h]\centeri…

软件确认测试和系统测试包括哪些测试内容?有什么区别?

一、软件确认测试 软件确认测试,顾名思义,是为了确认软件的正确性和完整性而进行的测试过程。它旨在验证软件是否符合用户需求和软件开发规范。测试内容包括: 1、功能确认:通过对软件各项功能进行测试,验证其是否按照…

c语言----队列

很久没有写文章了。因为放假了嘛,给自己稍微放松了一下,所以最近的更新很慢。呜呜下一次一定改。然后咧。今天我想与大家分享的是队列。虽然这个知识点我们应该在讲了堆的实现就应该写的,但是后面忘了,以为自己是写了的。但是昨天…

sql查询练习

1.表的结构 课程表:课程编号cid,课程名称canme,老师tid, 教师表:教师tid,教师姓名tname 分数表:学生student_sid,课程 cours_id,,分数score 学生表&#xff…