笔记 | 软件工程06-2:软件设计-软件体系结构设计

1 软件体系结构的概念

image.png

1.1 软件体系结构的设计元素

image.png

1.2 不同的抽象层次

image.png

1.3 软件体系结构的不同视图

image.png

1.3.1 软件体系结构的逻辑视图:包图

image.png

1.3.2 软件体系结构的逻辑视图:构件图

image.png

1.3.3 软件体系结构的开发视图

image.png

1.3.4 软件体系结构的部署视图

image.png

1.3.4.1 描述性部署图

image.png

1.3.5 软件体系结构的运行视图

image.png

1.3.6 描述软件体系结构的三类UML图
1.3.6.1 包图

image.png

包的定义

image.png
包的作用

image.png

1.3.6.2 构件图

image.png

构件及接口

image.png

从上述描述来看:一个端口包括了多个接口

构件和接口的表示

image.png

一个圆圈“○”表示的是供给接口,一个半括号“(”表示的是需求接口

1.3.6.3 部署图

image.png

描述性部署图

描述性部署图的节点:

image.png
描述性部署图的边:
image.png

实例性部署图

实例性部署图与描述性部署图之间的关系可类比为对象图与类图之间的关系。实例性部署图中节点的命名方式为“节点名: 类型名”,其中类型名为描述性部署图中的节点名

部署图的建模原则

image.png

1.4 软件设计模式

image.png

1.4.1 不同抽象层次的设计模式
1.4.1.1 体系结构风格 - 面向整个软件系统

image.png

常用软件体系结构风格:

image.png|425

1.4.1.1.1 分层体系结构模式

image.png

应用实例:TCP/IP分层通信协议

image.png

合理地设计抽象层次和组织软构件是关键

分层体系结构模式的约束

image.png

分层体系结构模式的特点

松耦合,可替换,可复用,标准化

1.4.1.1.2 管道与过滤器风格

image.png
image.png

管道与过滤器风格的约束

image.png

示例:编译器

image.png

管道与过滤器风格的特点

  1. 自然地解决具有数据流特征的软件需求
  2. 可独立地更新、升级过滤器来实现软件系统的扩展和进化
1.4.1.1.3 知识库风格

image.png

应用实例:现代编译器

image.png

基于仓库风格的软件研发环境Eclipse

image.png

知识库风格的特点

image.png

1.4.1.1.4 黑板风格

image.png
image.png
image.png
黑板风格的约束

image.png
典型应用实例:AI如NLP、语音处理、模式识别、图像处理等

黑板风格的特点

image.png
image.png

1.4.1.1.5 MVC风格

image.png
MVC风格的约束

image.png

1.4.1.1.6 SOA风格

image.png
image.png
SOA风格的特点

image.png

1.4.1.1.7 消息总线风格

image.png
image.png

2 软件体系结构设计

2.1 软件体系结构设计的任务

image.png

软件体系结构设计示意图:
image.png

2.2 软件体系结构设计的目标

image.png

2.3 软件体系结构设计 vs 软件需求

image.png

2.4 软件体系结构设计 vs 详细设计

image.png

2.5 软件体系结构设计的重要性和关键性

2.6 软件体系结构设计的过程

image.png

2.6.1 设计初步的软件体系结构

image.png
image.png

2.6.2 辨识关键软件需求

image.png

根据关键需求选择合适体系结构风格

2.6.3 不同体系结构风格适合的应用

image.png

2.6.4 重用开源软件及已有软件资产

image.png

2.6.5 将软件资产集成到体系结构设计中

image.png

2.6.6 精化软件体系结构

image.png

确定公共基础设施及服务:

image.png

设计其所需的基础服务:

image.png

确立设计元素

image.png
1. 确定子系统及其接口
1. image.png
2. 评估和改进所确立的子系统
image.png
3. 确定子系统的接口
image.png
2. 确定构件及其接口
1. image.png
3. 确定关键设计类及其接口
1. image.png

2.6.7 设计部署模型

image.png

2.7 整合体系结构设计

image.png
image.png

2.7.1 整合体系结构设计的结果
  1. 设计元素的职责划分更为明确
  2. 系统与外部接口、相关设计元素间的接口和协作更为清晰
  3. 整体体系结构设计方案更为优化

2.8 优化体系结构设计

image.png

2.9 软件体系结构设计的原则

image.png

3 文档化和评审软件体系结构设计

3.1 撰写软件体系结构设计文档

image.png

3.2 评审软件体系结构设计

image.png

3.3 软件体系结构设计的输出

image.png

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

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

相关文章

02眼电识别眼动--软件V1.0

对应视频链接点击直达 01项目点击下载,可直接运行(含数据库) 02眼电识别眼动--软件V1.0 对应视频链接点击直达构思结语其他以下是废话 构思 对于软件,主要就是接收数据、处理数据、储存和显示数据。 这是主要页面,…

【第2章】Vue快速上手

文章目录 前言一、第一个Vue程序二、Open in Browser插件1.安装2. 使用3. 界面 总结 前言 这里我们来实现我们的第一个程序。 一、第一个Vue程序 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name&quo…

java版UWB高精度实时定位系统源码springboot+vue

UWB人员定位系统&#xff0c;实现人员的自动识别、位置定位、区域报警等功能。该系统能高效记录人员信息&#xff0c;出入信息及位置信息&#xff0c;并能灵活的查询及管理历史轨迹&#xff0c;可极大提高信息安全度&#xff0c;有效弥补了视频监控的不足。使人员管理实现信息化…

【端午惊喜】2024年6月6日 docker 国内镜像源集体失效

文章目录 概述中科大镜像源阿里镜像源其他镜像源可用的镜像源写在最后 概述 大家都知道使用docker hub官方镜像需要魔法&#xff0c;虽然大部人有魔法&#xff0c;但是网速也是很慢&#xff0c;还有部分同学没有&#xff0c;全靠国内各大厂商的镜像源&#xff0c;可是端午6.6大…

一个公用的数据状态修改组件

灵感来自于一项重复的工作&#xff0c;下图中&#xff0c;这类禁用启用、审核通过不通过、设计成是什么状态否什么状态的场景很多。每一个都需要单独提供接口。重复工作还蛮大的。于是&#xff0c;基于该组件类捕获组件跳转写了这款通用接口。省时省力。 代码如下&#xff1a;…

LabVIEW程序内存泄漏分析与解决方案

维护他人编写的LabVIEW程序时&#xff0c;若发现程序运行时间越长&#xff0c;占用内存越大直至崩溃&#xff0c;通常是内存泄漏导致的。本文从多角度分析内存泄漏的可能原因&#xff0c;包括数组和字符串处理、未释放的资源、循环中的对象创建等&#xff0c;并提供具体的解决方…

【ARM Coresight Debug 系列 -- ARMv8/v9 软件实现断点地址设置】

请阅读【嵌入式开发学习必备专栏 】 文章目录 ARMv8/v8 软件设置段带你断点地址软件配置流程代码实现 ARMv8/v8 软件设置段带你 在ARMv8/9架构中&#xff0c;可以通过寄存器 DBGBVR0_EL1 设置断点。这个寄存器是一系列调试断点值寄存器中的第一个DBGBVRn_EL1&#xff0c;其中n…

http接口上传文件响应413:413 Request Entity Too Large

目录 一、场景简介二、异常展示三、原因四、解决 一、场景简介 1、服务端有经过nginx代理 2、上传文件超过5M时&#xff0c;响应码为413 3、上传文件小于5M时&#xff0c;上传正常 二、异常展示 三、原因 nginx限制了上传数据的大小 四、解决 扩大nginx上传数据的大小 步…

大模型生成短视频

最近看到一个开源项目可以通过AI生成短视频&#xff0c;然后尝试了下&#xff0c;感觉还不错&#xff0c;下面是具体步骤。 项目名叫moneyprinterTurbo&#xff0c;它本意是对接到Youtube&#xff0c;自动生成视频并上传到Youtube获取流量赚钱&#xff0c;所以项目名叫moneypri…

CISP究竟适合谁?这四类人没跑了

在信息技术飞速发展的现在&#xff0c;网络安全已经成为了一个不可忽视的话题。 CISP&#xff0c;即注册信息安全专业人员&#xff0c;是网络安全领域内一项备受认可的专业认证。 但CISP究竟适合谁考呢&#xff1f;这不仅是一个技术问题&#xff0c;更是一个职业规划的问题。…

修改onnx模型中间节点命名(包含输入、输出重命名)

来源&#xff1a;Paddle2ONNX Paddle2ONNX/tools/onnx/README.md at develop PaddlePaddle/Paddle2ONNX GitHub 依赖&#xff1a;import onnx python rename_onnx_model.py --model model.onnx --origin_names x y z --new_names x1 y1 z1 --save_file new_model.onnx 其中 …

Windows 10 找不到Microsoft Edge 浏览器

下载链接 了解 Microsoft Edge 手动下载浏览器 问题说明 一般来说&#xff0c;windows10系统应该是自带浏览器edge的&#xff0c;但有的电脑就是没有找到edge浏览器&#xff0c;可能系统是精简过的&#xff0c;可能是被卸载了。如下&#xff0c;控制面板确实没找到程序。 ​ …

修改SubVI的LabVIEW默认搜索路径

在启动顶级VI后&#xff0c;LabVIEW可能会遇到找不到subVI的情况。这通常是由于subVI的路径发生了变化或没有被正确配置。 LabVIEW默认搜索路径 默认情况下&#xff0c;LabVIEW会按以下顺序搜索文件位置&#xff08;*表示LabVIEW将搜索子目录&#xff09;&#xff1a; <t…

基于SSM+Jsp的交通事故档案管理系统

开发语言&#xff1a;Java框架&#xff1a;ssm技术&#xff1a;JSPJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包…

3.Nginx配置文件基本介绍

nginx配置文件所在路径&#xff1a;/usr/local/nginx/conf/nginx.conf nginx配置文件有三块&#xff1a; 1.全局块 从配置文件开始到events块之间的内容&#xff0c;主要会设置一些影响nginx服务器整体运行的配置指令。 配置运行nginx服务器的用户(组)允许生成的worker pro…

hadoop和hbase对应版本关系

https://hbase.apache.org/book.html#configuration

Vulnhub-DC-3

joomla3.7.0的提权 靶机IP:192.168.20.136 kaliIP:192.168.20.128 网络有问题的可以看下搭建Vulnhub靶机网络问题(获取不到IP) 信息收集 首先nmap扫端口和版本&#xff0c;dirsearch跑下目录&#xff0c;wappalyzer也可以用下 发现服务器用的ubuntu&#xff0c;JoomlaCMS等…

Activiti7 Maven笔记

通过maven完成BPMN的创建,定义流程,部署流程,完成流程等操作 代码整合创建maven项目添加log4j日志配置添加activiti配置文件创建数据库 activitijava类编写程序生成表如果代码运行,没有生成表,可能是没有读取到activiti的配置文件 Activiti数据表介绍类关系图工作流引擎创建默认…

【C语言】一篇带你高强度解析精通 字符串函数和内存函数 (万字总结大全,含思维导图)(建议收藏!!!)

【 库函数】——字符串函数和内存函数 目录 思维导图&#xff1a; 一&#xff1a;字符串函数 1.1&#xff1a;字符串常规函数 1.1.1&#xff1a;长度不受限制的字符串函数 1.1.1.1&#xff1a;strlen函数 1.1.1.2&#xff1a;strcpy函数 1.1.1.3&#xff1a;strcat函数 …

[word] word如何清除超链接 #媒体#笔记#知识分享

word如何清除超链接 办公中&#xff0c;少不了使用word&#xff0c;这个是大家必备的软件&#xff0c;今天给大家分享下word如何清除超链接的操作办法&#xff0c;一起来学习下吧&#xff01; 1、清除所有超链接 按下组合键CtrlshiftF9&#xff0c;就可以将网上复制带有超链…