软考高级-系统架构师-软件架构设计
本章节主要内容如下( 上午综合题可以考到20~26分
,其中案例题和论问题都有涉及 ):
目录:
- 一.软件架构的概念
- 1.软件架构概念
- 2.软件架构发展史
- 3.软件架构的建模
- 4.4+1模型
- 二.软件架构风格
- 1.软件架构风格
- 2.数据流风格
- 3.调用/返回风格
- 4.独立构件风格
- 5.虚拟机风格
- 6.厂库风格
- 7.闭环控制架构风格
- 8.C2风格
- 9.练习
- 三.层次架构风格
- 1.二层C/S架构
- 2.三层C/S架构
- 3.三层B/S架构
- 4.混合型架构风格
- 5.基于富互联网应用(RIA)
- 6.基于服务的架构(SOA)
- 7.微服务
- 8.模型驱动架构(MDA)
- 四.架构描述语言(ADL)
- 五特定领域软件架构
- 六.基于架构的软件开发方法
- 七.软件架构评估
- 1.质量属性
- 2.软件架构评估
- 八.软件产品线
- 九.构件与中间件技术
- 1.构件
- 2.中间件
- 十.Web架构设计
一.软件架构的概念
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设计:
中台:
辨别业务中台和数据中台:
答案:业务中台,数据中台,业务中台和数据中台
软考高级-系统架构师-软件架构设计相关推荐
- 软考高级-系统架构师-软件架构设计练习题
目录: 1.第一部分习题 2.第二部分习题 1.第一部分习题 例1: 答案:C 例2: 答案:C A:选项 B:选项这里的测试并不是真正的在代码中运行而是使用实例进行验证 C:选项,架构复审人员需要外 ...
- 【转载】软考高级系统架构师论文,到底该如何写
前言 2020年参加了软考高级系统架构师的考试,那是我在考场上第一次写论文,2小时2500字+,最后得分56. 拿到成绩后写了一篇关于七天复习考过系统架构师的文章,作为一个自学者,深知网上系统架构师的 ...
- 软考高级-系统架构师-案例分析-案例题1
软考高级-系统架构师-案例分析题1必做部分主要考点就是质量属性,架构风格,软件架构评估,非功能需求.除了2013年(ESB总线),2014年(设计模式和MVC)没有考以外基本上都涉及到了,下面是我总结 ...
- 软考高级-系统架构师-案例分析-案例题2
案例题2~5都是选做题,选2道题进行回答,历年第二题主要考查了结构化设计(流程图,数据流图),面向对象(概念,UML等),数据库技术,WEB技术,分布式技术其中结构化设计,面向对象和数据库技术出现频率 ...
- 软考高级系统架构师是什么来头?考上了就能当架构师了吗
什么是软考 计算机技术与软件专业技术资格(水平)考试(以下简称计算机软件资格考试)是原中国计算机软件专业技术资格和水平考试(简称软件考试)的完善与发展.计算机软件资格考试是由国家人力资源和社会保障部. ...
- 软考高级 系统架构师考试经验分享(2021年一次性通过)
简介 笔者从事前端开发工作,是2021年11月6号第一次参加的系统架构设计师考试.很幸运一次性通过.分数不算太高,分别是 51/50/46. 下面笔者来分享下系统架构设计师的考试经验.希望能对准备考试 ...
- 软考高级系统架构师_考试介绍_以及考点_以及如何备考---备考笔记003
了解就可以了 了解就可以了 这个要知道,跟项目管理师是一样的考试时间 软考高级的考试标准程度很高 软考网站这个需要知道,收藏一下.
- 软考高级-系统架构师-第五章软件架构设计
本篇博文目录: 一.软件架构设计 1.软件架构的定义 2.体系结构设计(SA)与生命周期 (1) 需求分析阶段 (2) 设计阶段 (3) 实现阶段 (4) 构建组装阶段 (5) 部署阶段 (6) 后开 ...
- 软考高级-系统架构师-案例分析-架构设计
本篇博文目录: 考点分析 一.软件架构风格 1.基本概念 2.真题案例分析 二.质量属性与架构评估 1.基本概念 2.案例分析 三.Web架构综合考查 1.Web服务器技术演变 (1) 负载均衡技术 ...
最新文章
- response设置content-type
- C 线程池(不稳定的方案)
- oracle java数据类型转换函数_Oracle基础——单行函数(类型转换函数)
- C#项目打包,并自动安装SQL数据库(转)
- 小程序promise封装post请求_额外话题: post请求的数据序列化小问题
- WebService简单示例
- 进程池和线程池 concurrent.futures import ProcessPoolExecutor,ThreadPoolExecutor
- FullPage.js – 轻松实现全屏滚动(单页网站)效果
- TiledMap简介
- 多元时间序列预测 —— 向量自回归(VAR)
- su联合推拉使用方法_12个最实用的SU建模技巧
- 【Unity2D】实现人物死亡动画+代码
- win8 cn_windows_8_x86_dvd_915414.iso 安装密钥
- 用Python爬中国银行指定日期九点三十分汇率
- c盘压缩卷压缩不了怎么办 c盘压缩卷只能压缩一半的解决方法
- React Native入门-实战解析(上)
- 软件企业必备的认证资质证书
- R: 更改行名及矩阵数据提取的易错点——下标出界
- 火车头采集器百度知道聚合采集插件说明文档!
- 计算机网络:IEEE 802.11无线局域网