当前位置:   article > 正文

软考高级-系统架构师-软件架构设计_软考高级 系统架构设计师

软考高级 系统架构设计师

本章节主要内容如下( 上午综合题可以考到20~26分,其中案例题和论问题都有涉及 ):

在这里插入图片描述



一.软件架构的概念

1.软件架构概念

这部分主要记住以下几点概念:
① 软件架构 为软件系统提供了一个结构、行为和属性的高级抽象 ,由构成系统的元素的描述、这些元素的相互作用、指导元素集成的模式以及这些模式的约束组成。
② 软件架构是 项目干系人进行交流的手段 明确了对系统实现的约束条件,决定了开发和维护组织的组织结构,制约着系统的质量属性。
③ 软件架构 使推理和控制的更改更加简单,有助于循序渐进的原型设计,可以作为培训的基础
软件架构是可传递和可复用的模型 ,通过研究软件架构可能页测软件的质量

在这里插入图片描述

2.软件架构发展史

在这里插入图片描述

3.软件架构的建模

在这里插入图片描述

4.4+1模型

4+1”视图模型从 5 个不同的视角(逻辑视图、进程视图、物理视图、开发视图、场景视图)来描述软件架构。每一个视图只关心系统的一个侧面,5个视图结合在一起才能反应系统的软件架构的全部内容。如下图所示:

在这里插入图片描述

5个视图相对应的功能,关注点和关注人员,如下表所示:

在这里插入图片描述

注:上面内容来源于这篇博文:https://blog.csdn.net/lb1135909273/article/details/109116851?

二.软件架构风格

1.软件架构风格

软件架构风格是描述某一特定应用领域中系统组织方式的惯用模式。架构风格定义一个系统家族,即一个体系结构定义一个词汇表和一组约束。词汇表中包含一些构件和连接件类型,而这组约束指出系统是如何将这些构件和连接件组合起来的。架构风格定义了用于描述系统的术语表和一组指导构建系统的规则,反映了领域中众多系统所共有的结构和语义特性,并指导如何将各个构件有效地组织成一个完整的系统。

最常考的5种软件架构风格如下:

在这里插入图片描述

2.数据流风格

系统对数据进行处理,有着严格的流程( 步骤 ),该风格包含二种不同的子分格即批处理序列和管道-过滤器,二者的区别就是批处理的数据必须是完整的,以整体的方式传递,而管道-过滤器的数据以流的方式进行传递 (有点类似于流媒体)。

在这里插入图片描述

数据流风格的工序流程如下图所示:

在这里插入图片描述

3.调用/返回风格

这种风格使用的非常的多如结构化程序中的函数,面向对象中的方法调用,和层次结构中底层给高层提供的服务就是通过方法进行 调用返回相应结果

在这里插入图片描述

层次结构进行分层后的优缺点:

在这里插入图片描述

4.独立构件风格

构件与构件之间不直接联系,通过事件进行触发,降低耦合性,加强独立性,重点在于 触发事件

在这里插入图片描述

5.虚拟机风格

比如Java的虚拟机,通过将代码放在虚拟机环境上进行运行,这个 环境(自定义组合) 可以在不同的平台上使用,进而实现不同平台上跨平台运行。

在这里插入图片描述

6.厂库风格

公共数据 进行共享和处理,数据库系统就是对存储在磁盘上的数据库文件作为公共数据,可以对这个数据进行相应的处理,也可以理解为将数据存放在工厂中可以进行共享,可以进行相应的加工( 处理 )。

在这里插入图片描述

黑板系统以数据库为基础,黑板作为公共的数据区域,不但对黑板作为数据存取还作为数据传递,共享和控制的机制,黑板系统流程如下图所示:

在这里插入图片描述

7.闭环控制架构风格

比如空调制冷在室温较高的时候空调就会持续制冷将室温控制到一个指定范围,当处于这个范围的时候,空调就不再去制冷了而是去保持室温的状态,当室温再一次高于这个范围的时候,空调将再一次持续制冷控制室内温度这一系列 连续的动作和状态 就是闭环控制架构风格。

在这里插入图片描述

8.C2风格

在这里插入图片描述

9.练习

例1:

在这里插入图片描述

答案:虚拟机风格,数据流风格, 隐式调用, 解释器 ,过程控制

例2:

在这里插入图片描述

答案:黑板,解释器,隐式调用(图形里面是通过相应事件进行触发)

例3:

在这里插入图片描述
答案:B(程序源代码作为一个整体,依次在…),D,A(会同时触发…),B,D(运行环境…)

三.层次架构风格

层次结构的演进过程如下图所示:

在这里插入图片描述

1.二层C/S架构

在这里插入图片描述

2.三层C/S架构

在这里插入图片描述

在这里插入图片描述

3.三层B/S架构

下表中的界面层也叫做表示层,业务逻辑层也可叫做功能层,数据访问层也可叫做数据层。

在这里插入图片描述

B/S架构和C/S架构最大的区别就是B/S架构无需下载客户端软件。

在这里插入图片描述

表示层(界面层)相关技术的发展:

在这里插入图片描述

MVC架构风格:

在这里插入图片描述

MVC的执行:

在这里插入图片描述

MVP架构风格:

在这里插入图片描述

MVVM:
在这里插入图片描述

4.混合型架构风格

在这里插入图片描述

5.基于富互联网应用(RIA)

在这里插入图片描述

6.基于服务的架构(SOA)

在这里插入图片描述
特点:

在这里插入图片描述

关键技术:

在这里插入图片描述
SOAP协议:

在这里插入图片描述

REST技术:

在这里插入图片描述

SOA的实现方式-WebService:

在这里插入图片描述
SOA的实现方式-ESB:

在这里插入图片描述
SOA的实现方式-服务注册表:

在这里插入图片描述

7.微服务

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
微服务的优势:

在这里插入图片描述

微服务面临的挑战:

在这里插入图片描述
微服务与SOA的对比:

在这里插入图片描述
在这里插入图片描述

8.模型驱动架构(MDA)

在这里插入图片描述

在这里插入图片描述

四.架构描述语言(ADL)

在这里插入图片描述
在这里插入图片描述

五特定领域软件架构

在这里插入图片描述
特定领域软件架构(DSSA)-领域分析机制:

在这里插入图片描述
特定领域软件架构(DSSA)-建立过程:

在这里插入图片描述
特定领域软件架构(DSSA)-三层次模型:

在这里插入图片描述

六.基于架构的软件开发方法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

七.软件架构评估

1.质量属性

在这里插入图片描述
在这里插入图片描述

质量属性和设计策略对应表如下( 质量属性题型可能会和设计策略结合起来考 ):

质量属性设计策略
性能优先级队列,队列调度,资源调度
可用性冗余,心跳线,Ping/Echo
安全性追踪审计,限制访问
可修改性信息隐藏,运行时注册,接口-实现分离
可靠性冗余,心跳线
可测试性记录/回放

练习:

在这里插入图片描述
答案:性能,安全性(数据库授权要达到99.9%这是安全性问题,而不是可用性),可修改性,可用性(案例分析题中采用可用性,或者题中提到容错和健壮性时才考虑使用可靠性),可修改性(功能性前面常常不加数字前缀,这里 3人周内 就是数字前缀),性能,可用性

2.软件架构评估

在这里插入图片描述
基于场景的评估:

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

质量效用树:

在这里插入图片描述

八.软件产品线

在这里插入图片描述

在这里插入图片描述

其他模型:

在这里插入图片描述
在这里插入图片描述
软件产品线的建立:

在这里插入图片描述

组织结构:

在这里插入图片描述

九.构件与中间件技术

1.构件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.中间件

在这里插入图片描述

中间件的优点:

在这里插入图片描述
主要的中间件:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

十.Web架构设计

在这里插入图片描述
单台机器到数据库与Web服务器分离:

在这里插入图片描述

应用服务器集群:

在这里插入图片描述

负载均衡:

在这里插入图片描述

负载均衡技术:

在这里插入图片描述
在这里插入图片描述

负载均衡的引入:

在这里插入图片描述

有状态与无状态:

在这里插入图片描述

用缓存缓解读库的压力:

在这里插入图片描述

缓存技术:

在这里插入图片描述

Redis与Memcache的差异:

在这里插入图片描述

Redis的常见难题:

在这里插入图片描述

在这里插入图片描述

CDN(内容分发网络)

在这里插入图片描述

XML与JSON:

在这里插入图片描述
在这里插入图片描述

WEB应用服务器:

在这里插入图片描述

REST(表述性状态传递):

在这里插入图片描述

响应式Web设计:

在这里插入图片描述

中台:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

辨别业务中台和数据中台:

在这里插入图片描述

答案:业务中台,数据中台,业务中台和数据中台

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/363096
推荐阅读
相关标签
  

闽ICP备14008679号