系统架构设计师-软件架构设计(1)

2023-10-27

目录

一、软件架构的概念

        1、架构的本质

        2、架构的作用

二、架构发展历史

三、架构的 “4 + 1” 视图

        1、逻辑视图(Logical View)

        2、开发视图(Development View)

        3、进程视图(Process View)

        4、物理视图(Physical View)

        5、场景视图(Scenarios View)

四、架构描述语言ADL


一、软件架构的概念

        软件架构 = 软件体系结构

        架构设计就是需求分配,即将满足需求的职责分配到组件上

         

        1、架构的本质

                (1)软件架构为软件系统提供了一个结构、行为和属性的高级抽象

                (2)软件架构风格是特定应用领域的惯用模式,架构定义一个词汇表和一组约束

        2、架构的作用

                (1)软件架构是项目干系人进行交流的手段

                (2)软件架构是可传递和可复用的模型,通过研究软件架构可能预测软件的质量。

                (3)软件架构使推理和控制的更改更加简单,有助于循序渐进的原型设计,可以作为培训的基础。

二、架构发展历史

        

三、架构的 “4 + 1” 视图

        4+1架构视图,也称为4+1视图模型,是一种软件架构设计方法,通常用于描述大型复杂软件系统不同视角。它由Philippe Kruchten于1995年提出,并在Rational Software Corporation(现在是IBM公司)的Rational Unified Process(RUP)中得到广泛应用。

        4+1架构视图包括以下五个视图: 

                这五个视图互相关联,共同描述了一个系统的不同方面,从而帮助软件工程师和系统架构师更好地理解和设计复杂的软件系统。每个视图都强调一些特定的关注点,从而形成一个完整的架构视图。

        1、逻辑视图(Logical View)

                描述系统功能、组件和它们之间的关系。它主要关注系统的静态结构,包括类、接口、包、模块等,并用于表示系统的组织结构、模块划分和关系。最终用户相关。

        2、开发视图(Development View)

                描述系统的软件开发过程。他关注软件的开发、构建和部署过程,包括开发环境、版本控制、构建工具、编译器等,并用于表示系统的开发过程、构建过程和开发环境。编程人员相关。

        3、进程视图(Process View)

                描述系统的并发性和分布性。它关注系统在运行时的行为,包括系统的运行时进程、线程、节点、通信方式等,并用于表示系统的并发性、分布性、通信和同步方式系统集成人员相关。

        4、物理视图(Physical View)

                描述系统的部署和配置。它关注系统在物理计算资源上的部署,包括硬件、网络、服务器、存储等,并用于表示系统的部署拓扑、配置和资源分配系统工程人员相关。

        5、场景视图(Scenarios View)

                 描述系统在不同场景下的使用场景。它关注系统的用例、用户交互和系统行为,包括用户界面、用户场景、用户需求等,并用于系统的功能需求、用户交互和系统行为

四、架构描述语言ADL

        ADL是一种形式化的语言,它在底层语义模型的支持下,为软件系统的概念体系结构建模提供了具体语法和概念框架。

        如:Aesop、MetaH、C2、Rapide、SADL、Unicon等。

                例:Unicon:

                

         ADL的三个基本元素:

        (1)构件:计算或数据存储单元

        (2)连接件:用于构件之间交互建模的体系结构构造块及其支配这些交互的规则。

        (3)架构配置:描述体系结构的构件与连接件的链接图。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

系统架构设计师-软件架构设计(1) 的相关文章

  • 软件工程复习10:软件设计与实现

    作者 非妃是公主 专栏 软件工程 个性签 顺境不惰 逆境不馁 以心制境 万事可成 曾国藩 专栏地址 软件工程专栏地址 专栏系列文章 软件工程复习01 软件工程概述 软件工程复习02 个人技术 软件工程复习03 个人软件流程 软件工程复习04
  • 选择软件外包公司需要注意哪些方面

    每个行业中不同公司的实力都是良莠不齐 特别是IT软件外包公司更是如此 当我们一旦将整个项目交付对方之后 项目的成败就全看软件外包公司的表现 风险极大 那么 我们该如何选择一家靠谱的深圳软件外包公司 选择软件外包公司需要注意哪些方面 北京木奇
  • 程序的链接

    程序的链接是一个非常实际的问题 他建立在很实际的问题之上 不从程序员的角度去思考问题 则是从软件的角度去思考如何复用错综复杂的代码 因为 这个问题的本质是我们没有给底层的硬件一个完整的可按顺序执行的程序 我们在前几章虽然讨论了指令流的问题
  • 系统架构设计师之软件架构风格

    系统架构设计师之软件架构风格
  • 系统架构设计师 8:系统质量属性与架构评估

    软件系统属性包括功能属性和质量属性 软件架构重点关注的是质量属性 为了精确 定量地表达系统的质量属性 通常会采用质量属性场景的方式进行描述 在确定软件系统架构 精确描述质量属性场景后 就需要对系统架构进行评估 软件系统架构评估是在对架构分析
  • 个人技术总结——uview-plus下的Http请求基本使用及相关使用

    这个作业属于哪个课程 软件工程 23年春季学期 这个作业要求在哪里 软件工程实践总结 个人技术总结 这个作业的目标 个人技术总结 其他参考文献 构建之法 CSDN社区 uni app官方文档 uview plus官方文档 目录 一 写在前面
  • Go 语言输出文本函数详解

    Go语言拥有三个用于输出文本的函数 Print Println Printf Print 函数以其默认格式打印其参数 示例 打印 i 和 j 的值 package main import fmt func main var i j stri
  • CMake 教程:常用命令及其使用方法

    CMake是一个跨平台 开源的构建工具 它可以自动生成Makefile或者Visual Studio等IDE的工程文件 它能够帮助开发者更方便地管理项目的构建过程 提高项目构建的效率 在本文中 我们将介绍CMake常用的命令以及对应的用法
  • Python 简介和用途

    什么是Python Python是一种流行的编程语言 由Guido van Rossum创建 并于1991年发布 它用于以下领域 网页开发 服务器端 软件开发 数学 系统脚本编写 Python能做什么 Python可用于在服务器上创建Web
  • 【车载开发系列】Flash支持的安全功能

    车载开发系列 Flash支持的安全功能 这里写目录标题 车载开发系列 Flash支持的安全功能 一 FlashMemory概念 二 Flash Memory特性 1 包括代码闪存和数据闪存 2 闪存编程方法 3 支持BGO 后台地面操作 4
  • 网盘系统设计:万亿 GB 网盘如何实现秒传与限速?

    Java全能学习面试指南 https javaxiaobear cn 网盘 又称云盘 是提供文件托管和文件上传 下载服务的网站 File hostingservice 人们通过网盘保管自己拍摄的照片 视频 通过网盘和他人共享文件 已经成为了
  • MES系统工单进度查询:提升生产控制与监控

    在MES系统中 工单进度查询是一个至关重要的功能 它为企业提供了实时 准确地追踪和监控生产工单进度的能力 一 MES系统工单进度查询的重要性 1 实时监控生产进度 通过工单进度查询 企业能够随时了解每个工单的进展情况 包括已完成的工序 正在
  • DEVOPS 持续部署的例子:IMVU

    持续部署的例子 IMVU IMVU是一家社交娱乐公司 它的产品允许用户以一种3D阿凡达式的体验互相连接起来 本节内容改编自一位IMVU工程师所写的博客 IMVU采用了持续集成 开发人员尽早提交并经常提交 每次提交都触发测试套件的执行 IMV
  • 《系统架构设计师教程(第2版)》第2章-计算机系统基础知识-07-系统性能

    文章目录 1 性能指标 1 1 计算机的性能指标 1 2 路由器的性能指标 了解即可 1 3 交换机的性能指标 了解即可 1 4 网络的性能指标 1 5 操作系统的性能指标 1 6 数据库管理系统的性能指标
  • 【EI会议征稿】第四届计算机网络安全与软件工程国际学术会议(CNSSE 2024)

    第四届计算机网络安全与软件工程国际学术会议 CNSSE 2024 2024 4th International Conference on Computer Network Security and Software Engineering
  • 68 | 软件工程的宏观视角

    软件工程 今天开始 我们进入第六章 谈谈软件工程 我理解的架构师的职责其实是从软件工程出发的 也许大家都学过软件工程 但如果我们把软件工程这门课重新看待 这门学科到底谈的是什么 是软件项目管理的方法论 无论如何 软件工程是一门最年轻的学科
  • 【软件测试】学习笔记-高效提交Bug

    本篇文章介绍如何才能写出一份高效的软件缺陷报告 测试工程师需要利用对需求的理解 高效的执行力以及严密的逻辑推理能力 迅速找出软件中的潜在缺陷 并以缺陷报告的形式递交给开发团队 缺陷报告是测试工程师与开发工程师交流沟通的重要桥梁 也是测试工程
  • Docker 安全必知:最佳实践、漏洞管理与监控策略

    容器安全是实施和管理像 Docker 这样的容器技术的关键方面 它包括一组实践 工具和技术 旨在保护容器化应用程序及其运行的基础架构 在本节中 我们将讨论一些关键的容器安全考虑因素 最佳实践和建议 容器隔离 隔离对于确保容器化环境的强大性和
  • C# 介绍、应用领域、入门、语法、输出和注释详解

    什么是 C C 发音为 C Sharp 是一种由 Microsoft 创建的面向对象的编程语言 运行在 NET Framework 上 源于 C 家族 与流行的语言如 C 和 Java 相近 首个版本发布于 2002 年 而最新版本 C 1
  • 如何打赢稳定性之战?

    文章目录 前言 为什么总会出现问题呢 如何证明你的稳定性做的有效果 既是持久战 也是防御战 1 提前建筑好防御工事 2 以攻为守 3 找外部支援和配合 前言 随着23年年末期间 各大厂争先恐后的出现的各种线上

随机推荐

  • Kotlin协程的简单用法:1、GlobalScope(不建议使用);2、lifecycleScope、viewModelScope(建议使用);

    1 协程 Coroutine 协程 就像非常轻量级的线程 线程是由系统调度的 线程切换或线程阻塞的开销都比较大 而协程依赖于线程 但是协程挂起时不需要阻塞线程 协程是由开发者控制的 所以协程也像用户态的线程 非常轻量级 一个线程中可以创建任
  • android--调用系统浏览器,Android 调用系统浏览器

    正常调用系统默认浏览器 Intent intent new Intent intent setAction android intent action VIEW Uri content url Uri parse url intent se
  • 2.8 C++ 友元机制 2.9 运算符重载

    书接上回 对类内的 非 静态成员函数 定义了指针 那么 通过这两种指针来调用这两个函数 应该写法如下 include
  • Opencascade 1:在win10上编译Opencascade

    Opencascade 1 在win10上编译Opencascade 提示 超简单的Opencascade安装编译方法 注意 本文是学习了AAA的视频后的总结思考 文章目录 Opencascade 1 在win10上编译Opencascad
  • 【故障解决】Linux机器经常会出现ipv6无法访问自己网关,要重启机器才可以修复问题。-20201119

    1 故障现象 有几台业务虚机 经常会出现ipv6无法访问自己网关 要重启机器才可以修复 2 解决过程 虚拟化层排查下来 虚拟化平台 宿主机 网络负载 没看出什么问题 但查看故障机器系统日志 var log messages里的信息 发现一直
  • 上线这么久的InsCode,你们用过了嘛?(内含源码)

    前言 作者主页 雪碧有白泡泡 个人网站 雪碧的个人网站 推荐专栏 java一站式服务 前端炫酷代码分享 uniapp 从构建到提升 从0到英雄 vue成神之路 解决算法 一个专栏就够了 架构咱们从0说 数据流通的精妙之道 文章目录 前言 3
  • vtkImageData算法坐标计算取整处理

    医学影像处理项目中 处理vtkImageData数据时经常涉及到一类问题 给了一个空间坐标或者位置 如何计算对应像素索引或者距离 从原理上 是这样一个公式 pixel num floor postion1 postion0 spacing
  • 大型企业IT运维的特点(18年7月)

    大型企业的IT系统一般都是流程设计复杂 用户会有较多的抱怨 不好用 变更太频繁 这样的现象 主要原因是在大型企业里面 业务以管理和控制为主 控制节点多 必然会让大家感到复杂 首先问一个问题 不要流程 可不可以 当然不可以 公司就是 流程 执
  • 【Qt】QtCreator中『设计』按钮是灰色的怎么办?

    在QtCreator中 对于xxx qml xxx ui qml文件都是可以通过 设计 打开的 只是xxx qml很多时候是没有任何2D或者3D显示效果的 但是如果在新安装QtCreator的时候没有安装对应插件 xxx qml xxx u
  • 青春有你-Java基础篇(2.5)

    Java基础篇 2 5 2 Java基础知识 泛型 泛型与继承 类型擦除 泛型中 KTVE object 等的含义 泛型各种用法 List lt Object gt List
  • 【教程】支持WebDAV的网盘TeraCloud+Zotero同步应用

    目录 0 TeraCloud网盘简介 1 注册操作步骤 2 开启WebDAV 3 WebDAV应用举例 Zotero文献管理软件 4 总结 0 TeraCloud网盘简介 TeraCloud是一个日本品牌的网盘 支持WebDAV 这极大地方
  • RIDE屏蔽INFO级别的日志输出

    RIDE屏蔽INFO级别的日志输出 最近参与自动化测试项目 项目测试内容包括软硬件 内容较复杂 每执行一个测试用例就输出了数万条INFO类型日志 严重影响测试人员查看日志 也影响了用例执行速度 因此需要减少不必要的日志输出 粗略看了一下 修
  • 在线作答编程——输入输出测试

    在线作答编程 输入输出测试 进行了总结 转载请注明链接 有问题请及时联系博主 Alliswell WP 问题描述 在线作答编程 需要自己处理输入输出 建议你进行在线oj输入输出练习 https ac nowcoder com acm con
  • 列举做副业月入3W+的公众号大佬

    3分享一些我平时关注的优秀号主 由深耕技术多年的老兵运营 与你分享技术干货 成长经验 很多时候大家不是不努力 而是缺乏对应的学习方法 以及高手指点 这些公众号也有很多干货资料 帮助你学习 表哥有话讲 国内最大的数据从业者分享平台 20W程序
  • 分析我关于路由协议的一些技术感想

    1 OSPF是在IP包里的 五种不同类型的OSPF包 Hello LSR LSU LSAck DD 又是由再进一层的ospf packetheader进行区分的 ABR一般都会有一个接口在Area0中 且对于不同的Area有不同的LSDB
  • “跨国视频造假窝点”曝光!这个大规模数据集,帮AI揪出99%换脸视频

    乾明 郭一璞 发自 凹非寺 量子位 报道 公众号 QbitAI 上回说到 奥巴马deepfake怼川普 斯嘉丽怒斥网友假视频 deepfake 视频造假神器 把一个人的脸庞 转移到另一个的身上 让假新闻轻松传播到全网 这下 不管是政要还是明
  • nginx基础学习(七):nginx+keepalived搭建主备nginx高可用服务

    目前最后一篇关于nginx的文章 这篇文章是做一个知识的了解 在实际生产中基本不使用 因为这种方式有更好的替代方案 但是为什么要说一下呢 面试的时候问到nginx的内容肯定都会问关于nginx的宕机问题 然后如何去防治 提高nginx服务的
  • unity三种图片格式

    本文转载自 http blog csdn net caption deng article details 52366907 ARGB 是一种色彩模式 也就是RGB色彩模式附加上Alpha 透明度 通道 常见于32位位图的存储结构 RGB
  • 爬虫基础—Session和Cookie

    个人简介 作者简介 大家好 我是W chuanqi 一个编程爱好者 个人主页 W chaunqi 支持我 点赞 收藏 留言 愿你我共勉 若身在泥潭 心也在泥潭 则满眼望去均是泥潭 若身在泥潭 而心系鲲鹏 则能见九万里天地 文章目录 第1章
  • 系统架构设计师-软件架构设计(1)

    目录 一 软件架构的概念 1 架构的本质 2 架构的作用 二 架构发展历史 三 架构的 4 1 视图 1 逻辑视图 Logical View 2 开发视图 Development View 3 进程视图 Process View 4 物理视