100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 软考高级-系统架构师-软件架构设计

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

时间:2023-09-09 11:03:41

相关推荐

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

本章节主要内容如下(上午综合题可以考到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个视图相对应的功能,关注点和关注人员,如下表所示:

注:上面内容来源于这篇博文:/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.质量属性

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

练习:

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

2.软件架构评估

基于场景的评估:

质量效用树:

八.软件产品线

其他模型:

软件产品线的建立:

组织结构:

九.构件与中间件技术

1.构件

2.中间件

中间件的优点:

主要的中间件:

十.Web架构设计

单台机器到数据库与Web服务器分离:

应用服务器集群:

负载均衡:

负载均衡技术:

负载均衡的引入:

有状态与无状态:

用缓存缓解读库的压力:

缓存技术:

Redis与Memcache的差异:

Redis的常见难题:

CDN(内容分发网络)

XML与JSON:

WEB应用服务器:

REST(表述性状态传递):

响应式Web设计:

中台:

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

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。