系统架构师考点--系统架构设计(中)

大家好。今天继续总结一下系统架构设计的一些考点。

一、软件架构复用

软件产品线是指一组软件密集型系统,它们共享一个公共的、可管理的特性集,满足某个特定市场或任务的具体需要,是以规定的方式用公共的核心资产集成开发出来的。即围绕核心资产库进行管理复用、集成新的系统。

软件架构复用的类型包括机会复用系统复用。机会复用是指开发过程中,只要发现有可复用的资产,就对其进行复用。系统复用是指在开发之前,就要进行规划,以决定哪些需要复用。

可复用的资产包括:需求、架构设计、元素、建模与分析、测试、项目规划、过程方法和工具、人员、样本系统、缺陷消除。

复用的基本过程主要包括3个阶段:首先构造/获取可复用的软件资产,其次管理这些资产(构件库),最后针对特定的需求,从这些资产中选择可复用的部分,以开发满足需求的应用系统。

二、特定领域软件架构

DSSA就是专用于一类特定类型的任务(领域)的、在整个领域中能有效地使用的、为成功构造应用系统限定了标准的组合结构的软件构件的集合。​

DSSA的三个基本活动

领域分析:这个阶段的主要目标是获得领域模型(领域需求)。识别信息源即整个领域工程过程中信息的来源,可能的信息源包括现存系统、技术文献、问题域和系统开发的专家、用户调查和市场分析、领域演化的历史记录等,在此基础上就可以分析领域中系统的需求,确定哪些需求是领域中的系统广泛共享的,从而建立领域模型。

领域设计:这个阶段的目标是获得DSSA。DSSA描述在领域模型中表示的需求的解决方案,它不是单个系统的表示,而是能够适应领域中多个系统的需求的个高层次的设计。建立了领域模型之后,就可以派生出满足这些被建模的领域需求DSSA。

领域实现:这个阶段的主要目标是依据领域模型和DSSA开发和组织可重用信息这些可重用信息可能是从现有系统中提取得到,也可能需要通过新的开发得到。

DSSA的四种角色人员

领域专家:包括该领域中系统的有经验的用户、从事该领域中系统的需求分析设计、实现以及项目管理的有经验的软件工程师等。提供关于领域中系统的需求规约和实现的知识,帮助组织规范的、一致的领域字典,帮助选择样本系统作为领域工程的依据,复审领域模型、DSSA等领域工程产品等等。

领域分析人员:由具有知识工程背景的有经验的系统分析员来担任。控制整个领域分析过程,,进行知识获取,将获取的知识组织到领域模型中。

领域设计人员:由有经验的软件设计人员来担任。根据领域模型和现有系统开发出DSSA,并对DSSA的准确性和一致性进行验证。

领域实现人员:由有经验的程序设计人员来担任。根据领域模型和DSSA,开发构件。

建立DSSA的过程

定义领域范围:领域中的应用要满足用户一系列的需求。

定义领域特定的元素:建立领域的字典,归纳领域中的术语,识别出领域中相司和不相同的元素。

定义领域特定的设计和实现需求的约束:识别领域中的所有约束,这些约束对领域的设计和实现会造成什么后果。

定义领域模型和架构:产生一般的架构,并描述其构件说明。

产生、搜集可复用的产品单元:为DSSA增加复用构件,使可用于新的系统。

以上过程是并发的、递归的、反复的、螺旋型的。

三层次模型

领域开发环境:领域架构师决定核心架构,产出参考结构、参考需求、架构领域模型、开发工具。
领域特定的应用开发环境:应用工程师根据具体环境来将核心架构实例化。

应用执行环境:操作员实现实例化后的架构。

在这里插入图片描述

例题:
在这里插入图片描述

答案:C、C、C、D、B

三、基于架构的软件开发

ABSD方法是架构驱动,强调由业务质量和功能需求的组合驱动架构设计。它强调采用视角和视图来描述软件架构,采用用例和质量属性场景来描述需求进一步来说,用例描述的是功能需求,质量属性场景描述的是质量需求(或侧重于非功能需求)。

使用ABSD方法,设计活动可以从项目总体功能框架明确就开始,这意味着需求获取和分析还没有完成,就开始了软件设计。

ABSD方法有三个基础:第一个基础是功能的分解,使用已有的基于模块的内聚和耦合技术。第二个基础是通过选择架构风格来实现质量和业务需求。第三个基础是软件模板的使用,软件模板利用了一些软件系统的结构。

ABSD方法是递归的,且迭代的每一个步骤都是清晰定义的。因此,不管设计是否完成,架构总是清晰的,有助于降低架构设计的随意性。

基于架构的软件开发过程可分为以下六步:
在这里插入图片描述
(1)架构需求:重在掌握标识构件的三步,如下左图.

(2)架构设计:将需求阶段的标识构件映射成构件,进行分析,如下右图。

(3)架构(体系结构)文档化:主要产出两种文档,即架构(体系结构)规格说明,测试架构(体系结构)需求的质量设计说明书。文档是至关重要的,是所有人员通信的手段,关系开发的成败。
在这里插入图片描述
(4)架构复审:由外部人员(独立于开发组织之外的人,如用户代表和领域专家等)参加的复审,复审架构是否满足需求,质量问题,构件划分合理性等。若复审不过,则返回架构设计阶段进行重新设计、文档化,再复审。

(5)架构实现:用实体来显示出架构。实现构件,构件组装成系统如下左图。

(6)架构演化:对架构进行改变,按需求增删构件,使架构可复用,,如下右图。
在这里插入图片描述

例题:
在这里插入图片描述
答案:B、C、C、A
好了,今天就总结到这里了。大家一定要多准备准备这块内容。
不畏山高路远,不惧风高浪急。加油!

最后依旧是请希望大家能给作者点个关注,谢谢大家!各位老板有钱的捧个人场,没钱的也捧个人场,谢谢各位老板!

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

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

相关文章

SpringBoot 日志:从基础到高级的全面指南

📚 SpringBoot 日志:从基础到高级的全面指南 🔍 📚 SpringBoot 日志:从基础到高级的全面指南 🔍摘要引言正文内容一、日志概述 📜二、日志使用 📝2.1 打印日志 📣2.2 日志…

IIS解析漏洞~ IIS7.漏洞分析

IIS解析漏洞 文件解析漏洞是由于中间件错误的将特殊格式的文件解析成可执行网页文件(脚本),配合文件上传漏洞进行GetShell的漏洞! 1.2:IIS7.X 在IIS7.0和IIS7.5版本下也存在解析漏洞,在默认Fast-CGI开启状况下,在一个文…

DM集群的高可用的配置方式(多语言)

一、介绍 强调以下:dm_svc.conf必须放置到应用服务器上才行,放到其他服务器上识别不到。 文章中有的框架可能没写到并不代表不支持,有没提到的可文章下方留言。 1.dm_svc.conf的作用: dm_svc.conf文件主要是为了当DM数据库集群…

PHP健身微信小程序系统源码

🏋️‍♀️健身新潮流!解锁“健身微信小程序”的全方位塑形秘籍 📱开篇:掌中健身房,随时随地动起来 你还在为找不到合适的健身场地或教练而烦恼吗?是时候告别这些束缚,拥抱“健身微信小程序”…

如何在数据埋点中发现和修复数据上报逻辑错误

如何发现和处理数据埋点中的逻辑错误 在大数据分析中,数据埋点是至关重要的一环。然而,当我们遇到数据上报逻辑错误时,该如何应对呢?本文将为你揭示解决这一棘手问题的有效方法。 目录 如何发现和处理数据埋点中的逻辑错误什么是数据上报逻辑错误?如何发现数据上报逻辑错误…

S32G3系列芯片Serial Boot功能详解!

《S32G3系列芯片——Boot详解》系列——S32G3系列芯片Serial Boot功能详解!★★★ 一、Serial Boot模式概述二、串行下载协议2.1 基于UART和CAN的下载协议概述2.2 基于FlexCAN的Serial Boot2.2.1 IO配置2.2.2 时钟配置2.2.3 通信波特率2.2.4 基于FlexCAN的Serial Bo…

定义和使用自己的子程序——函数的介绍

定义和使用自己的子程序——函数的介绍 1.函数基础语法1.1.基础语法1.2.例题1——距离函数题目描述输入格式输出格式输入输出样例输入 #1输出 #1 提示 2.void类型3.变量作用域和参数传递3.1.局部变量和全局变量3.2.形式参数和实际参数3.3.例题2——歌唱比赛题目描述输入格式输出…

计算机基础(Windows 10+Office 2016)教程 —— 第6章 电子表格软件Excel 2016(下)

电子表格软件Excel 2016 6.4 Excel 2016的公式与函数6.4.1 公式的概念6.4.2 公式的使用6.4.3 单元格的引用6.4.4 函数的使用6.4.5 快速计算与自动求和 6.5 Excel 2016的数据管理6.5.1 数据排序6.5.2 数据筛选6.5.3 分类汇总6.5.4 分组显示6.5.5 合并计算 6.6 Excel 2016的图表6…

【RabbitMQ】通配符模式(Topics)

一、基本概念 生产者(Producer):发送消息到RabbitMQ交换机的程序。生产者定义消息的路由键,用于标识消息的目的地。交换机(Exchange):接收生产者发送的消息,并根据路由键和绑定规则…

一款.NET开源、跨平台的DASH/HLS/MSS下载工具

前言 今天大姚给大家分享一款.NET开源(MIT License)、免费、跨平台的DASH/HLS/MSS下载工具,并且支持点播和直播(DASH/HLS)的内容下载:N_m3u8DL-RE。 网络流媒体传输协议介绍 DASH DASH是一种基于HTTP的…

2024年8月1日(前端服务器的配置以及tomcat环境的配置)

[rootstatic ~]# cd eleme_web/ [rootstatic eleme_web]# cd src/ [rootstatic src]# ls views/ AboutView.vue HomeView.vue [rootstatic src]# vim views/HomeView.vue [rootstatic src]# nohup npm run serve nohup: 忽略输入并把输出追加到"nohup.out" 构建项目…

零基础入门转录组数据分析——机器学习算法之boruta(筛选特征基因)

零基础入门转录组数据分析——机器学习算法之boruta(筛选特征基因) 目录 零基础入门转录组数据分析——机器学习算法之boruta(筛选特征基因)1. boruta基础知识2. boruta(Rstudio)——代码实操2. 1 数据处理…

机器学习之贝叶斯方法

机器学习之贝叶斯方法 1. 贝叶斯定理基础1.1 贝叶斯定理公式1.2 先验概率 (Prior Probability)1.3 后验概率 (Posterior Probability)1.4 似然 (Likelihood)1.5 证据 (Evidence)1.6 贝叶斯定理的应用实例 2. 贝叶斯方法的基本概念2.1 条件概率 (Conditional Probability)2.2 全…

Python SDK 使用Azure Document intelligence报错(404) Resource not found

最近项目需要使用到Azure Document intelligence,于是去做POC,但是发现最简单的demo跑的时候都会报这个错,解决了一下午终于搞定了,记录下。 首先是官方文档:Quickstart: Document Intelligence (formerly Form Recognizer) clien…

反序列化漏洞vulhub靶场serial

环境搭建 下载 https://download.vulnhub.com/serial/serial.zip 解压出来就是这种 你会得到一个这样的文件,这里使用VMware新建一个虚拟机,这里记录比较重要的几部分。 这里就是使用我们刚才下过来的。 漏洞过程详解 1.信息收集 打开靶机&#xff0…

IDEA切换分支,会影响当前在跑的项目吗?

说明:本文测试,在IDEA中运行项目,然后切换分支,是否会影响当前正在跑的项目 准备工作 首先,创建一个Git项目,接口如下: import org.springframework.web.bind.annotation.GetMapping; import…

13. 文本框和单选题

属性说明type指定元素的类型。text、password、checkbox、radio、submit、reset、file、hidden、image和button,默认为textname指定表单元素的名称value元素的初始值。type为radio时必须指定一个值size指定表单元素的初识宽度,当type为text或password时&…

3.Java面试题之AQS

1. 写在前面 AQS(AbstractQueuedSynchronizer)是Java并发包(java.util.concurrent)中的一个抽象类,用于实现同步器(如锁、信号量、栅栏等)。AQS提供了一种基于FIFO队列的机制来管理线程的竞争和…

【RabbitMQ】路由模式(Routing)

一、基本概念 生产者(Producer):发送消息到交换机的程序。在发送消息时,需要指定一个路由键。交换机(Exchange):接收生产者发送的消息,并根据路由键将消息路由到与之匹配的队列。在…

1.kafka面试题之零拷贝

1. 写在前面 Kafka 是一个高性能的分布式消息系统,它使用了多种优化技术来提高数据传输效率,其中之一就是 “零拷贝”(Zero Copy)。零拷贝技术可以显著减少数据在内存中的复制次数,从而提高 I/O 操作的效率&#xff0…