软考系统架构设计师-案例知识点

1、五大动态图的对比

顺序图(序列图、时序图) :一种交互图,由一组对象或角色以及它们之间可能发送的消息构成,强调消息的时间次序。
通信图(UML1中叫做协作图) :一种交互图,强调收发消息的对象或角色的组织结构。顺序图和通信图表达了类似的基本概念。顺序图强调的是时序,通信图强调消息流经的数据结构 ,二者语义上是等价的,可以很方便的进行转换。

定时图(计时图):一种交互图,强调消息跨越不同对象或角色的实际时间 ,而不仅仅是关心消息的相对顺序。

状态图:描述一个状态机,它由状态、转移、事件和活动 组成。状态图给出了对象的动态视图,它对于接口、类或协作的行为建模尤为重要,而且它强调事件导致的对象行为 ,这非常有助于对反应式系统的建模。

活动图:将进程或其他计算的结构展示为一步步的控制流和数据流 。活动图专注于系统的动态视图。对系统的功能建模特别重要,强调对象之间的控制流程。

顺序图强调数据流经顺序、通信图强调流经的数据结构、定时图强调数据流经的实际时间、状态图强调事件导致的对象行为、活动图强调对象之间的控制流程

2、用例之间的关系

包含关系: 当可以从两个或两个以上的原始用例中提取 公共用例的行为 ,或者发现能够使用一个构件来实现某一个用例很重要的部分功能时,应使用包含关系来表示他们,其中这个提取出来的公共用例成为抽象用例。
扩展关系: 如果一个用例明显混合了两种或两种以上的不同的场景 ,即根据情况可能发生多种事情,则可以将这个用例分为一个主用例和一个或多个辅用例进行描述可能更加清晰。
泛化关系: 用例可以被特别列举为一个或多个子用例。例如,购买飞机票既可以通过网上订票,也可以通过电话订票,则订票用例就是电话订票和网上订票的泛化。

3、类之间的关系

关联关系:描述了给定类的单独对象之间语义上的连接。

依赖关系: 有两个元素X,Y,如果修改X,则会引起对另一个元素Y的修改,则称元素Y依赖于元素X。

泛化关系:泛化关系描述了一般事物与该事物的特殊种类之间的关系,也就是父类与子类之间的关系。继承关系是泛化关系的反关系,也就是说子类是从父类继承的,而父类是子类的泛化。箭头指向父类。

聚合关系: 聚合是一种特殊形式的关联,聚合关系表示整体与部分的关系,例如一辆车子包含四个车轮、一个发动机和一个底盘,这就是聚合的一个例子,整体与部分之间有不同的生命周期。空心菱形指向代表整体的类。可聚可散

组合关系 :与整体关系之间有着紧密关系。例如公司与部门之间的关系,他们具有相同的生命周期。缺少了就组不起来了。

实现关系:将说明和实现联系起来。接口是对行为而非实现的说明,而类中则包含了实现的结构,一个或多个类可以实现一个接口。而每个类分别实现接口的操作。

流关系: 将一个对象的两个版本以连续的方式连接起来。它表示一个对象的值、状态和位置的转换。流的种类包括变成和复制两种。

4、负载均衡算法(回顾一下Rabbion)

轮询算法、随机算法、比率算法、优先级算法、最少连接数算法、最快响应时间算法。

5、Memcache与Redis的对比

6、Redis分布式存储方案、Redis集群常见的切片方式

主从、Cluster 客户端分片、Twemproxy、Redis Cluster、Proxy+Redis Cluster。

7、设计模式

8、EJB构件的三种类型,每种bean的职责

Session Bean(会话Bean):维护一个短暂会话,当客户端执行完成后,SessionBean和它的数据会消失。

Entity Bean(实体Bean):维护一行持久稳固的数据,如果客户端或者服务终止,底层的服务会负责Entity Bean的数据存储。

Message-Driven Bean(消息驱动Bean):结合了SessionBean和JMS,允许异步接收数据。

9、MVC架构的三种类型,分别的作用

Model:模型表示待展示的对象。

View:视图表示模型的展示,以及接收用户的输入数据,但它不进行任何业务处理。

Controller:负责把用户的动作转换为针对模型的操作。

10、JavaEE中的有状态构件和无状态构件

有状态构件:会存储数据的操作。

无状态构件:查询操作。

11、什么是响应式WEB设计?

响应式WEB设计是一种开发和设计网页的方式,它的目的是让内容布局能随着用户使用显示器的不同而变化。

响应式WEB设计方式:

(1)弹性网格和布局;

(2)图片;

(3)CSS media query。

12、需求的类别及定义?

(1)操作需求:与用户操作使用系统相关的一些需求。

(2)性能需求:响应时间、准确性、吞吐量、有效性、资源利用率等。可靠性、可用性也属于该类。

(3)安全性需求:系统向合法用户提供服务并组织非授权用户使用服务方面的需求。

(4)文化需求:带有文化背景的系统需求。

13、什么是面向服务的架构SOA?ESB在SOA中的作用与特点(可背)

SOA是一个组件模型,它将应用程序的不同功能单元通过这些服务之间定义的接口和契约联合起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建各种这样的系统中的服务可以一种统一和通用的方式进行交互。

ESB的作用:

1、SOA的一种实现方式, 在面向服务的架构中起到的是总线的作用,将各种服务进行连接与耦合;

2、描述服务的元数据与服务注册管理;

3、在服务请求者和提供者之间传递数据 ,以及对这些数据转换的能力

4、发现、路由、匹配和选择 的能力,以支持服务之间的动态交互**,解耦服务请求者和服务提供者。** 高级一些的能力,包括对安全的支持、服务质量的保证、可管理性和负载均衡等

14、数据流图与流程图的区别

(1)数据流图可以并行,流程图不能并行;

(2)数据流图展示的是数据流,系统流程图展示的是控制流;

(3)数据流程图展示的是全局的处理过程,各个过程遵循不同的计时标准;流程图各个流程遵循相同的计时标准。

DFD数据流程图:表达系统内的数据流动并通过数据流描述系统功能的一种方法,通常会出现4种基本符号,数据流、加工、数据存储和外部实体。

15、解释器风格、管道-过滤器风格、隐式调用风格的对比

(一)解释器风格:包含一个完成解释工作的解释引擎、一个包含将被解释的代码的存储区、一个记录解释引擎当前工作状态的数据结构、一个记录源代码被解释进度的存储结构。解释器通常用来创建一种虚拟机以弥合程序语义与硬件语义之间的差异。其缺点是执行效率较低,典型例子是专家系统。

(二)基于规则的系统:包括规则集、规则解释器、规则/数据选择器及工作内存。

(三)管道/过滤器风格:步骤之间用数据流连接,一个步骤的输出是另一个步骤的输入,每个步骤由一个过滤器实现,步骤之间的数据传输由管道负责,每个步骤处理都有一组输入和输出。管道/过滤器风格的基本构件是过滤器,连接件是数据流传输管道。

优点:

1、构件具有很好的隐蔽性和高内聚、低耦合的特点;

2、允许设计者将整个系统的IO行为看成多个过滤器行为的简单合成;

3、支持软件重用。过滤器间可以自由组合。

4、系统维护简单,可扩展性好。

5、允许对一些属性进行分析,如吞吐量、死锁等。

6、支持并行执行。每个过滤器作为一个单独的任务执行,因此可以与其他过滤器并行执行。

缺点:

1、通常导致进程成为批处理的结构。

2、不适合处理交互的应用。

3、因为数据传输上没有通用标准,因此可能存在重复的解析和合成数据的工作,导致系统性能下降,并增加了编写过滤器的复杂性。

(四)事件驱动体系结构风格:基于事件的隐式调用风格的思想是构件不直接调用一个过程,而是触发或广播一个或多个事件,系统中其他构件的过程在一个或多个事件中注册,当一个事件被触发,这个事件中注册的所有过程被自动调用。这种风格的构件是一些模块,这些模块既可以是一些过程,也可以是一些事件的集合。主要特点是触发者并不知道哪些构件会被这些事件影响,这使得不能假定构件的处理顺序,甚至不知道哪些过程会被调用,因此许多隐式调用的系统也包含显示调用作为构件交互的补充形式。常用场景:编程环境用于集成各种工具、数据库中确保数据的一致性约束、用户界面系统中管理数据、编程器中支持语法检查等。

优点:

1、为软件重用提供了强大的支持。

2、为改进系统带来了方便。

缺点:

1、构件放弃了对系统的控制。

2、数据交换问题。

3、关于正确性的推理存在问题。

16、面向对象方法的对象模型、动态模型、功能模型介绍?

对象模型用于描述系统的数据结构;动态模型描述系统的控制结构;功能模型描述系统的功能。

功能模型表明系统"做什么";动态模型明确规定了什么时候做;对象模型描述谁来做。

三者均可用于软件的需求分析。

17、数据库反规范化设计的方法?

增加冗余列:多个表中具有相同的列属性,常用于避免关联查询。

增加派生列:增加的列可以通过表中的其他属性计算得出,作用是减少查询时的计算量。

重新组表:如果需要经常查询两个表连接之后的数据,则将两个表关联后的结果组成一个新表来减少连接而提高性能。

表分割:在表数据量大的情况下,为了增加查询效率,将表拆分为多个小表。分为水平分割和垂直分割。

18、解释器风格图

基于规则的系统:

19、ATAM架构评估方法

(1)演示阶段:介绍ATAM、介绍业务驱动因素、介绍要评估的体系结构、

(2)调查和分析阶段:确定架构方法、生成质量效用树、分析体系结构方法

(3)测试阶段:头脑风暴和优先场景、分析架构方法

(4)报告阶段:报告ATAM,通常包括一种效用树、一组生成的场景、一组分析问题、一套确定的风险和非风险。

20、Redis主从同步

1.从服务器向主服务器发送同步命令 sync;

2.主数据库接收到同步命令后,会执行 bgsave 命令,在后台生成一个 rdb 文件,并使用一个缓冲区记录从现在开始执行的所有写命令;

3.当主服务器执行完 bgsave 命令后,主服务器会将 bgsave 命令生成的 rdb 文件发送给从服务器;

4.从服务器接收到这个 rdb 文件,然后加载到内存 ;之后主服务器会把刚刚在缓存区的命令同步过来,从服务器就会执行这些命名。(两边就一致了)

5.以上处理完之后,之后主数据库每执行一个写命令,都会将被执行的写命令发送给从数据库。

21、面向服务的架构组件

SOAP:简单对象访问协议。

WSDL:WEB服务描述语言。

UDDI:通用服务发现集成协议。

22、大数据Lambda架构

1、Lambda三个层次的特点

(1)批处理层:存储数据集和生成Batch View

①Map Reduce进行大批量数据处理

②产生批处理结果视图

③结果认为是精准且全量的

④数据处理时延高

(2)加速层:存储实时批处理视图并处理传入的数据流,以便更新这些视图Realtime View。

①只处理最近产生的实时数据

②产生流处理结果视图

③流处理层的数据可能不是准确的也不是全量的

④数据处理时延很低

(3)服务层:响应用户的查询请求,并合并BatchView 和 RealtimeView的结果数据集得到最终的数据集。

①汇总流处理视图&批处理视图

②产生查询视图

Lambda架构的优缺点:

优点:

1、容错性好

2、查询灵活度高

3、易伸缩

4、易拓展

缺点:

1、全场景覆盖带来的编码开销

2、针对具体场景重新离线训练一遍益处不大

3、重新部署和迁移成本很高

23、大数据Kappa架构

1、与Lambda架构的区别

(1)Kappa架构不是Lambda架构的替代而是简化,放弃了对批处理的支持,天然存在时间窗口的概念,更适合实时计算和历史补偿的任务需求。

(2)Lambda支持批处理,更适合于对历史数据进行分析的场景。

2、原理:优化了Lambda架构,删除了批处理,而采用消息队列替换了原来的数据通道,依旧以流处理为主,但数据却在数据湖层面进行了存储,当需要离线分析或者再次计算的时候,则将数据通过消息队列重播一次即可。

24、RestFul API的优点

(1)提供标准的通信方式,使各个服务间可以使用HTTP通信,简化服务间的集成。

(2)使用统一的资源标识方法,如get、post、put、delete等,使服务间的交互更加易于理解。

(3)支持缓存,通过HTTP头信息可以控制缓存行为,提高系统性能。

(4)易于拓展,可以随着业务的发展轻松的添加方法。

25、容器化技术在微服务架构中的应用

(1)环境一致性

(2)资源隔离

(3)快速部署与伸缩

(4)简化运维

(5)提升效率

相关推荐
一条破秋裤4 小时前
智慧农业系统架构分析报告(大脑)
系统架构
枫叶丹48 小时前
【Qt开发】Qt系统(一)-> 定时器 QTimerEvent 和 QTimer
c语言·开发语言·数据库·c++·qt·系统架构
wuhen_n20 小时前
系统架构设计师(三):数据库系统
数据库·系统架构
最后一个bug21 小时前
CPU的MMU中有TLB还需要TTW的快速查找~
linux·服务器·系统架构
BD_Marathon1 天前
Spring系统架构
java·spring·系统架构
最后一个bug1 天前
浅显易懂的讲解MMU是如何使用4级页表把虚拟地址转化为物理地址的~
linux·服务器·开发语言·系统架构·计算机外设
吾日三省Java1 天前
SpringBoot整合Canal:实现MySQL数据实时同步的终极解决方案
spring boot·系统架构
Henry Zhu1232 天前
操作系统原理详解(二):操作系统存储管理
系统架构
Kiyra2 天前
阿里云 OSS + STS:安全的文件上传方案
网络·人工智能·安全·阿里云·系统架构·云计算·json