【系统架构师】-案例考点(一)

1、软件架构设计

主要考点:

质量属性、软件架构风格、软件架构评估、MVC架构、面向服务的SOA架构、

DSSA、ABSD

1.1、质量属性

1、性能:指系统的响应能力,即要经过多长时间才能对某个事件做出响应,或者在某段时间内系统所能处理的事件的个数。如响应时间、吞吐量。设计策略:优先级队列、增加计算资源、减少计算开销、引入并发机制、采用资源调度等。

2、可靠性:是软件系统在应用或系统错误面前,在意外或错误使用的情况下维持软件系统的功
能特性的基本能力。如 MTTF、MTBF。设计策略:心跳、Ping/Echo、冗余、选举。

3、可用性:是系统能够正常运行的时间比例,经常用两次故障之间的时间长度或在出现故障时系统能够恢复正常的速度来表示。如故障间隔时间。设计策略:心跳、Ping/Echo、冗余、选举。

4、安全性:是指系统在向合法用户提供服务的同时能够阻止非授权用户使用的企图或拒绝服务的能力。如保密性、完整性、不可抵赖性、可控性。设计策略:入侵检测、用户认证、用户授权、追踪审计。

5、可修改性:指能够快速的以较高的性能价格比对系统进行变更的能力。通常以某些具体的变更为基准,通过考察这些变更的代价衡量。设计策略: 接口-实现分类、抽象、信息隐藏

6、功能性:是系统所能完成所期望的工作的能力。一项任务的完成需要系统中许多或大多数构件的相互协作。

7、可变性:指体系结构经扩充或变更而成为新体系结构的能力。这种新体系结构应该符合预先定义的规则,在某些具体方面不同于原有的体系结构。当要将某个体系结构作为一系列相关产品的基础时,可变性是很重要的。

8、互操作性:作为系统组成部分的软件不是独立存在的,经常与其他系统或自身环境相互作用。
为了支持互操作性,软件体系结构必须为外部可视的功能特性和数据结构提供精心设计的软件入口。
程序和用其他编程语言编写的软件系统的交互作用就是互操作性的问题,也影响应用的软件体系结构。

软件架构风格是指描述特定软件系统组织方式的惯用模式。组织方式描述了系统的组成构件和这些构件的组织方式,惯用模式则反映众多系统共有的结构和语义。

风险点:是指架构设计中潜在的、存在问题的架构决策所带来的隐患。

敏感点:是指为了实现某种特定的质量属性,一个或多个构件所具有的特性。

权衡点:是影响多个质量属性的特性,是多个质量属性的敏感点。

1.2、架构风格比对

1.3、MVC架构

MVC 强制性地把一个应用的输入、处理、输出流程按照视图、控制、模型的方式进行分离,形成了三个核心模块:控制器、模型、视图。
(1)控制器(Controller):是应用程序中处理用户交互的部分。通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。

(2)模型(Mode1):是应用程序中用于处理应用程序数据逻辑的部分。通常模型对象负责在数据库中存取数据。模型表示业务数据和业务逻辑。

(3)视图(View):是应用程序中处理数据显示的部分。通常视图是依据模型数据创建的。是用户看到并与之交互的界面。视图向用户显示相关的数据,并能接收用户的输入数据,但是它并不进行任何实际的业务处理。

1.4、J2EE体系

客户层组件:J2EE应用程序可以是基于web 方式的,也可以是基于传统方式的.静态的 HTML(标准通用标记语言下的一个应用)页面和Applets 是客户层组件

web 层组件:J2EEweb层组件可以是JSP页面或Servlet。

业务层组件:业务层代码的逻辑用来满足特定领域的业务逻辑处理。

EJB是JavaEE服务器端组件模型,设计目标与核心应用是部署分布式应用程序。简单来说就是把已经编写好的程序(即:类)打包放在服务器上执行。凭借java跨平台的优势,用EB技术部署的分布式系统可以不限于特定的平台。

会话 bean:表示与客户端程序的临时交互,当客户端程序执行完后,会话 bean 和相关数据就会消失

实体 bean:表示数据库的表中一行永久的记录,当客户端程序中止或服务器关闭时,就会有潜在的服务保证实体bean的数据得以保存.

消息驱动 bean:结合了会话bean 和 JMS的消息监听器的特性,允许一个业务层组件异步接收 JMS 消息.

信息系统层:企业信息系统层处理企业信息系统软件包括企业基础建设系统例如企业资源计划(ERP),大型机事务处理,数据库系统,和其它的遗留信息系统,例如,J2EE应用组件可能为了数据库连接需要访问企业信息系统。

JSP+Servlet+JavaBean+DAO

JSP:用于显示、收集数据的部分。作为MVC 中的视图 V。

Servlet:作为业务逻辑层,用于处理复杂的业务逻辑,如验证数据、实例化JavaBean、调用 DAO连接数据库等。作为MVC中的控制器C。在其中会调用Service方法处理服务。

JavaBean用于数据的封装,方便将查询结果在servlet与jsp 页面之间进行传递等。

DAO:用于连接数据库及进行数据库的操作如:查询、删除、更改等。

DAO与JavaBean 合在一起为 MVC中的模型 M。

基本流程:

JSP 发一个数据到 servlet,servlet 收到后做下解析再根据数据调用相应的 service 去服务,service 如果有要调用数据库就通过 DAO跟数据库交互,使用JavaBean 完成封装,返回结果给servlet,servlet 再返回给 JSP。

1.5、面向服务的架构SOA

ESB 特点:

1、SOA 的一种实现方式,ESB 在面向服务的架构中起到的是总线作用,将各种服务进行连接与整合;
2、描述服务的元数据和服务注册管理:
3、在服务请求者和提供者之间传递数据,以及对这些数据进行转换的能力,并支持由实践中总结出来的一些模式如同步模式、异步模式等;
4、发现、路由、匹配和选择的能力,以支持服务之间的动态交互,解耦服务请求者和服务提供沓高级一些的能力,包括对安全的支持、服务质量保证、可管理性和负载平衡等。

ESB的主要功能:

服务位置透明性;

传输协议转换;

消息格式转换;

消息路由;

消息增强;

安全性;

监控与管理。

2、系统开发基础

考察:

UML的图、关系的识别、设计模式识别

数据流图、E-R图、信息安全、项目管理-进度管理-关键路径

2.1、结构化

结构化特点:

自顶向下,逐步分解,面向数据。

三大模:

功能模型(数据流图)、行为模型(状态转换图)、数据模型(E-R图)以及数据字典(数据元素、数据结构、数据流、数据存储、加工逻辑、外部实体)。

2.2、用例建模

用例图:静态图,展现了一组用例、参与者以及它们之间的关系。用例图中的参与者是人、硬件或其他系统可以扮演的角色;用例是参与者完成的一系列操作。

用例之间的关系(包含 include、扩展 extend、泛化),

例如:

登记外借信息用例包含用户登录用例,因为每次如果要登记外借信息,必然要先进行用户登录。

而查询书籍信息的扩展是修改书籍信息,是因为每次查询书籍信息后,发现有错误才会修改,否则不修改,不是必要的操作。

因此,区分用例间的关系是包含还是扩展,关键在于是不是必须操作。

数据流图:

E-R图

进度管理:

PERT(项目评估与评审技术)图是一种图形化的网络模型,描述一个项目中任务和任务之间的关系,每个节点表示一个任务,通常包括任务编号、名称、开始和结束时间、持续时间和松弛时间。

Gantt 图是一种简单的水平条形图,它以一个日历为基准描述项目任务,横坐标表示时间,纵坐标表示任务,图中的水平线段表示对一个任务的进度安排,线段的起点和终点对应在横坐标上的时间分别表示该任务的开始时间和结束时间,线段的长度表示完成该任务所需的时间。

PERT 图主要描述不同任务之间的依赖关系:Gantt 图主要描述不同任务之间的重叠关系。

关键路径:

项目中的最短工期

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

利用AQS(AbstractQueuedSynchronizer)实现一个线程同步器

目录 1. 前言 2. 什么是同步器 3. 同步器实现思路 Semaphore(信号量) 4. 代码实现 4.1. 创建互斥锁类 4.2 编写静态内部类,继承AQS 4.3 内部类实现AQS钩子函数 4.3 封装lock,unlock方法 4.4. 测试 5. 总结 本文章源码仓库:Conc…

FPGA - 基于自定义AXI FULL总线的PS和PL交互

前言 在FPGA - ZYNQ 基于Axi_Lite的PS和PL交互中,介绍了基于基于AXi_Lite的PL和PS交互,接下来构建基于基于Axi_Lite的PS和PL交互。 AXI_GP、AXI_HP和AXI_ACP接口 首先看一下ZYNQ SoC的系统框图,如下图所示。在图中,箭头方向代表…

Python 中整洁的并行输出

原文:https://bernsteinbear.com/blog/python-parallel-output/ 代码:https://gist.github.com/tekknolagi/4bee494a6e4483e4d849559ba53d067b Python 并行输出 使用进程和锁并行输出多个任务的状态。 注:以下代码在linux下可用&#xff0c…

Tcpdump -r 解析pcap文件

当我们使用命令抓包后,想在命令行直接读取筛选怎么办?-r参数就支持了这个 当你使用 tcpdump 的 -r 选项读取一个之前捕获的数据包文件,并想要筛选指定 IP 地址和端口的包时,你可以在命令中直接加入过滤表达式。这些过滤表达式可以…

数据可视化(六):Pandas爬取NBA球队排名、爬取历年中国人口数据、爬取中国大学排名、爬取sina股票数据、绘制精美函数图像

Tips:"分享是快乐的源泉💧,在我的博客里,不仅有知识的海洋🌊,还有满满的正能量加持💪,快来和我一起分享这份快乐吧😊! 喜欢我的博客的话,记得…

基于ThinkPHP框架开发的的站长在线工具箱网站PHP源码(可以作为流量站)

这是一套基于ThinkPHP框架开发的站长在线工具箱网站PHP源码,包含了多种在线工具,可以作为流量站使用。 项 目 地 址 : runruncode.com/php/19742.html 部署教程: 环境要求: - PHP版本需要大于等于7.2.5 - MySQL版…

element-ui合计逻辑踩坑

element-ui合计逻辑踩坑 1.快速实现一个合计 ​ Element UI所提供的el-table中提供了方便快捷的合计逻辑实现: ​ https://element.eleme.cn/#/zh-CN/component/table ​ 此实现方法在官方文档中介绍详细,此处不多赘述。 ​ 这里需要注意&#xff0c…

设备连接IoT云平台指南

一、简介 设备与IoT云间的通讯协议包含了MQTT,LwM2M/CoAP,HTTP/HTTP2,Modbus,OPC-UA,OPC-DA。而我们设备端与云端通讯主要用的协议是MQTT。那么设备端与IoT云间是如何创建通信的呢?以连接华为云IoT平台为例…

React中redux、react-redux、@reduxjs/toolkit状态管理库的使用方式

效果 下载依赖 npm install redux react-redux reduxjs/toolkit --save在src目录下创建文件 创建index.ts文件 import { configureStore } from reduxjs/toolkit import userSlice from ./userReducerconst store configureStore({reducer: {user: userSlice.reducer} }) //…

java实现识别图片上的文字(OCR识别身份证等证件信息)

利用第三方jar包,实现识别图片上的文字。第三方支持地址:Spire.OCR for Java | 专业的图文识别组件,用以读取图片格式中的文本Spire.OCR for Java 是专为 Java 开发者设计的强大OCR库,提供高效的文字识别功能,能够从图…

储存器的专有名词辨析

位:存放一个二进制位字节:8位存放一个二进制数储存单元:一个八位的储存器,叫做一个储存单元储存单元地址:储存单元唯一的固定编号储存单元数据:存放于储存单元的数字储存单元容量:一排能储存单元…

imx6ull设备树

概念 什么是设备树 描述设备树的文件叫DTS,实际上就是在这个DTS文件里面,用树状的结构存储设备之间的关系。在以前这棵树就是设备树。 什么是DTS、DTB、DTC DTS就是我们上面的设备树源码文件、DTB是它的二进制文件、DTC是我们编译DTS的工具&#xff…

echart实现数据传输动态效果

function setDataTransfer(id) {var chart echarts.init(document.getElementById(id)); var items [{level: 1,name: "传感器",label: beijing,value: [20, 10],symbol: "",symbolSize: [30, 30]},{level: 1,symbol: "",name: "物联中心…

imazing64位2.17.6.0新功能介绍以及 iMazing最新版免费激活下载

iMazing for mac是一款可以在苹果电脑Mac os平台上使用的帮助用户管理手机的Mac手机助手,iMazing for mac是能力远超 iTunes 提供的终极的 iOS 设备管理器。IMazing 与你的 iOS 设备 (iPhone、 iPad 或 iPod)相连,使用起来非常的方…

openstack-图形管理 6

安装并配置组件 重启web服务及会话存储服务 图形化登录 删除云主机 使用管理员登录 删除子网网络 删除云主机网络 创建网络 创建云主机 控制节点配置 配置私有网络,配置虚拟子网: 配置ML2插件 配置Linuxbridge(桥接) 配置laye…

ROS仿真小车(二)——添加摄像头雷达传感器

文章目录 前言一、在 Rviz 中显示一个盒状机器人1.1 创建ROS功能包1.2 在 launch 文件中集成 URDF 与 Rviz1.3 在 Rviz 中显示机器人模型1.4 优化 rviz 启动 二、创建一个四轮圆柱状机器人模型2.1 配置urdf和launch文件2.2 URDF优化_xacro2.2.1 配置xacro文件2.2.2 编写 Xacro …

Windows平台下的Oracle 19c补丁升级

Windows平台下的Oracle 19c补丁升级 文章目录 Windows平台下的Oracle 19c补丁升级第一章 概述第二章 安装前备份2.1 软件目录备份2.2 权限备份2.3 备份数据库 第三章 安装前检查3.1 查看数据库版本3.2 升级opatch版本 第四章 安装补丁4.1 设置环境变量4.2 关闭oracle相关服务4.…

c++11 标准模板(STL)本地化库 - 平面类别(std::collate) - 定义字典序比较和字符串的散列(二)

本地化库 本地环境设施包含字符分类和字符串校对、数值、货币及日期/时间格式化和分析,以及消息取得的国际化支持。本地环境设置控制流 I/O 、正则表达式库和 C 标准库的其他组件的行为。 平面类别 定义字典序比较和字符串的散列 std::collate 类 std::collate 封…

VLOOKUP函数使用,为什么会报错“引用有问题”?

VLOOKUP函数的使用非常广泛,在excel2007版之后的软件中,使用VLOOKUP函数也许会遇到这样的场景,明明公式是没有问题的,公式还会报错“引用有问题”。 一、报错场景 输入公式后,回车确认,显示如下报错&…

【论文阅读】Attention is all you need

摘要 主要的序列转换模型是基于复杂的循环或卷积神经网络,其中包括一个编码器和一个解码器。性能最好的模型还通过一种注意力机制将编码器和解码器连接起来。我们提出了一种新的简单的网络架构,Transformer,完全基于注意机制,完全…