【软考——系统架构师】UML 建模与架构文档化

news2024/9/25 15:26:07

在这里插入图片描述
🔎这里是【软考——系统架构师】,关注我考试轻松过线 👍如果对你有帮助,给博主一个免费的点赞以示鼓励
欢迎各位🔎点赞👍评论收藏⭐️

文章目录

  • UML 基础
  • UML 软件开发过程
  • 系统架构文档化
    • 送书福利

在这里插入图片描述

UML 基础

  • UML 的四种类型图特点及对应的视图:
    (1)用例图:从外部用户角度描述系统功能,并指出功能执行者。
    (2)静态图:显示了系统的静态结构,特别是存在事物的种类的内部结构相互之间的关系,静态图包括类图、对象图、包图。
    (3)行为图:描述系统的动态模型和组成对象间的交互关系,包括交互图、状态图、活动图。
    (4)实现图:描述软件实现系统的组成和分布状况。包括构件图、部署图。
  • 用例和用例图
    (1)用例图展现了一组用例、参与者以及它们之间的关系。
    (2)编写用例需识别的元素:1)参与者;2)用例间关系;3)用例图;4)用例之间的描述。
  • 类图和对象图
    (1)类与类之间的关系:1)关联;2)聚集;3)组合;4)泛化;5)依赖。
    (2)建立类图步骤:1)研究分析问题领域确定系统需求;2)确定类,明确类的含义和职责、确定属性和操作;3)确定类之间的关系。
    (3)对象图:表示在某一时刻一组对象以及他们之间的关系,可以看作是类图在系统某一时刻的实例。
    (4)类图在系统的整个生命周期都是有效的,对象图只在系统的某一时间段存在。
  • 包图: 是一种维护和描述系统总体结构的模型的重要建模工具,描述系统的分解结构,表示包以及包之间的关系,展现系统模块之间的依赖关系。
  • 交互图: 描述对象之间的消息传递,包括:(1)顺序图,又称时序图,用于显示对象之间的交互;(2)协作图,描述系统的行为。
  • 状态图: 对类图的补充,一个对象在其生命期的动态行为。
  • 活动图: 系统的工作图和并发行为。
  • 构件图: 一组构件以及它们之间的相互关系。
  • 部署图: 也称配置图、实施图,可以用来显示系统中计算节点的拓扑结构和通信路径与节点上运行的软构件等,用于理解分布式系统。

UML 软件开发过程

基于 UML 进行需求分析。从业务需求描述出发获取执行者和场景,对场景进行汇总、分类、抽象,形成用例,确定执行者与用例、用例与用例之间的关系,生成用例图。如下图为基于银行自助取款业务背景的用例图:
在这里插入图片描述
面向对象的设计
(1)设计用例步骤:1)提取边界类、实体类和控制类;2)构造交互图;3)根据交互图精化类图。如图 6-3 描述了面向对象的软件设计过程,图 6-4 为基于银行自助取款业务的顺序图:
在这里插入图片描述
在这里插入图片描述

系统架构文档化

  1. “4+1”视图包括: 逻辑视图(Logical View)、过程视图(Process View)、物理视图(Physical View)、开发视图(Development View)、场景。
  2. 逻辑架构: 设计的对象模型(使用面向对象的设计方法时)。支持功能性需求,采用抽象、封装或继承的原理,用来识别遍布系统各个部分的通用机制和设计元素。
  3. 进程架构: 捕捉设计的并发和同步特征。考虑一些非功能性的需求,如性能和可用性。在几种层次的抽象上进行描述,每个层次针对不同问题。
  4. 开发架构: 描述了在开发环境中软件的静态组织结构。用模块和子系统来表达,显示了“输出”和“输入”关系。
  5. 物理架构: 描述了软件到硬件的映射,反映了分布式特性。主要关注系统非功能性需求,如可用性、可靠性、性能和可伸缩性。
  6. 场景: 架构的描述,即所做的各种决定,可以围绕着这四个视图来组织,然后由一些用例(Use Cases)或场景(Scenarios)来说明,从而形成了第五个视图。

送书福利

内容介绍:
《Spring Cloud微服务快速上手》介绍了当下最主流的属于Spring生态的微服务框架,它继承了Spring Boot的优点,开发部署都非常简单。本书内容全面,介绍了微服务架构的发展历程,包含Spring Cloud Netflix和Spring Cloud阿里巴巴的组件,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等。在解读核心组件的实现原理的同时,配以案例进行实践。本书内容包含微服务架构和云原生架构,读者在掌握微服务之后,可以进一步掌握云原生知识。

在这里插入图片描述

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

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

相关文章

【2.27】动态规划、MySQL锁,基础篇、Redis

执行一条 select 语句,期间发生了什么? MySQL 执行流程是怎样的? MySQL 的架构共分为两层:Server 层和存储引擎层。 Server 层负责建立连接、分析和执行 SQL。MySQL 大多数的核心功能模块都在这实现,主要包括连接器&…

MyBatis - 07 - MyBatis的各种查询功能

文章目录项目 结构SelectMapper接口SelectMapper.xmlSelectMapperTest测试类测试结果1、查询一个实体类对象(1.根据id查询用户信息)2、查询一个list集合(2.查询所有用户信息)3、查询单个数据(3.查询用户信息的总记录数…

Datawhale统计学习方法打卡Task05

学习教材《统计学习方法(第二版)》李航 学习内容:第5章 决策树 第五章 决策树 决策树是一种基本你的分类与回归方法。决策树模型呈树形结构,在分类问题中,表示基于特征对实例进行分类的过程。通过ID3和C4.5介绍特征…

测试开发工程师,年薪100W不过分吧

在说测试开发工程师的薪资待遇之前,咱们要先了解软件测试岗位是用来做什么的,岗位是否重要,只有你知道了这些,才能判断这个岗位是否有价值!软件测试是依据需求分析和测试用例,运用手工和自动化的手段来验证…

mysql中用逗号隔开的字段作查询用(find_in_set的使用)

mysql中用逗号隔开的字段作查询用(find_in_set的使用) 场景说明 在工作中,经常会遇到一对多的关系。想要在mysql中保存这种关系,一般有两种方式,一种是建立一张中间表,这样一条id就会存在多条记录。或者采用第二种方式&#xff…

[音视频] wav 格式

wav 格式结构 WAV文件遵循RIFF规则,其内容以区块(chunk)为最小单位进行存储。WAV文件一般由3个区块组成:RIFF chunk、Format chunk和Data chunk。另外,文件中还可能包含一些可选的区块,如:Fact…

javascript尾递归优化

JS中的递归 我们来看一个阶乘的代码 function foo( n ){if(n < 1){return 1;}return n * foo( n - 1 ); }foo(5); // 120下面分析一下&#xff0c;代码运行过程中,执行上下文栈是怎么变化的 这个代码是在全局作用域中执行的&#xff0c;所以在foo函数得到执行之前&#x…

ubuntu下用i686-w64-mingw32交叉编译支持SDL、Openssl的ffmpeg库

前言 本篇博客是基于前两篇关于ffmpeg交叉编译下&#xff0c;进行再次编译操作。ubuntu下ffmpeg的交叉编译环境搭建可以参看以下我的这篇博客&#xff1a;https://blog.csdn.net/linyibin_123/article/details/108759367 &#xff1b; ubuntu下交叉编译openssl及交叉编译支持o…

【微信小程序】-- WXML 模板语法 - 事件绑定 -- tap input (十)

&#x1f48c; 所属专栏&#xff1a;【微信小程序开发教程】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &…

模电学习8. 三极管推挽电路

模电学习8. 三极管推挽电路一、推挽的概念二、三极管基本的推挽电路1. 上N下P型电路(1) 原理图(2) 电流分析2. 上P下N型(1) 原理图(2) 电流分析三、电路仿真分析1. 测试原理图2. 简要分析三、三极管的交越失真2. 处理方式三、三极管推挽电路的缺点一、推挽的概念 在电路中&…

Android性能优化(三)—— 绘制优化

运行的 Android 手机&#xff0c;虽然配置在不断的提升&#xff0c;但是仍然无法和 PC 相比&#xff0c;无法做到 PC 那样拥有超大内存以及高性能的 CPU。因此在开发 Android 应用程序时也不可能无限制的使用 CPU 和内存&#xff0c;如果对 CPU 和 内存使用不当也会造成应用的卡…

Tomcat的部署详解(基于Centos7.9))

文章目录Tomcat的部署1.1 安装jdk1.2、安装Tomcat1.3 Tomcat的目录结构1.4 Tomcat管理Tomcat web管理功能Tomcat配置文件TomcatTomcat&#xff1a;一种web服务器 Tomacat是由Apache推出的一款免费开源的Servlet容器&#xff0c;可实现JavaWeb程序的装载。 Tomcat服务器是一个…

大数据处理各组件概念及作用

一、数据采集&#xff1a; 1.1 Flume集群&#xff1a;数据采集工具&#xff0c;如写脚本将不同源端的数据采集后进行数据存储&#xff0c;或推送至Kafka等&#xff1b; 1.2 FTP集群&#xff1a;文件传输工具&#xff1b; 1.3 Kafka集群&#xff1a;消息队列&#xff0c;未避免…

UEFI启动的七阶段笔记

研究起点是CPU收到ResetVector信号后&#xff0c;开始执行第一行代码&#xff0c;一直到计算机关机/重启/崩溃&#xff0c;被划分为七个不同阶段。 1. SEC安全阶段 最早开始运行的固件代码&#xff0c;很大部分是汇编语言开发的。 主要负责四件事&#xff1a; 处理平台所有的…

纯手动搭建大数据集群架构_记录007_搭建Zookeeper3.5.7集群_集群配置_集群脚本---大数据之Hadoop3.x工作笔记0168

然后我们来搭建一下zookeeper集群,这个集群,以后不管是搭建Hadoop高可用,还是nifi集群,还是 hive 集群,hbase集群,spark集群,kettle集群,sqoop集群,都是基础 [root@hadoop122 ~]# cd /opt/software/ [root@hadoop122 software]# ll 总用量 479040 -rw-r--r--. 1 root root 9…

时间颗粒度选择(通过选择时间范围和颗粒度展示选项)

<template><div><el-time-selectplaceholder"起始时间"v-model"startTime":picker-options"startPickerOptions"change"changeStartTime"></el-time-select><el-time-selectplaceholder"结束时间&quo…

【Python】python深拷贝与浅拷贝详解(必须掌握)

深拷贝和浅拷贝是python必须要掌握的内容&#xff0c;无论你是面试开发、测试、运维等职位&#xff0c;只要是python&#xff0c;深拷贝与浅拷贝是面试官常问的一个重要知识点。 &#xff08;关注“测试开发自动化” 弓中皓&#xff0c;获取更多学习内容&#xff09; 文章目录一…

软件测试如何进行需求分析,你真的学会了吗?

目录 前言 从宏观的角度看需求文档 从细节的角度看需求文档 1&#xff09;结构化项目流程 2&#xff09;确认影响模块 3&#xff09;考量综合因素 需求的测试成本与质量风险 总结感谢每一个认真阅读我文章的人&#xff01;&#xff01;&#xff01; 重点&#xff1a;配…

Win11安卓应用自动化测试的准备

前言 APP的自动化测试&#xff0c;前提从ADB连接设备&#xff0c;启动APK应用开始。Win 11自带的WSA的APP的测试&#xff0c;要完全自动化&#xff0c;需要解决几个问题。 1、 启动WSA 此项有两步&#xff1a; i 启动WSA服务 Python程序来启动服务&#xff0c;可以直接调用…

DP1621国产LCD驱动芯片兼容替代HT1621B

目录DP1621简介DP1621芯片特性DP1621简介 DP1621是点阵式存储映射的LCD驱动器芯片&#xff0c;可支持最大128点&#xff08;32SEG * 4COM&#xff09;的 LCD屏&#xff0c;也支持2COM和3COM的LCD屏。单片机可通过3/4个通信脚配置显示参数和发送显示数据&#xff0c;也可通过指…