前言:
由于距离2022年系统架构师考试还有几天,我紧急把本次重点押题的内容准备一份,希望可以帮助到需要的同学,希望本次考试可以成功上岸
DSSA领域软件架构案例
- 软件架构对于一个软件项目的开发来说有着重要意义,Kruchten曾提出了著名的“4+1”视图模型,该模型通过逻辑视图、进程视图、物理视图、开发视图、场景视图来描述软件架构,这五个视图结合在一起才能反映系统的软件架构;
- 软件重用不仅仅包括代码、模板、设计模式和构件的重用,还应包括系统架构的重用。一个通用的软件架构,实现系统架构的重用,注意的事项有:
- 一个严格定义的问题域、解决域。既要对该系统的问题域、解决域进行严格的定义,不能跨越系统边界
- 具有普遍性,使其可以用于领域中某个特定应用的开发。即设计出来的软件架构部分或全部能够应用于某个行业的系统
- 对于整个领域的合适程度的抽象。主要考虑抽象出来的模块,组件的粒度是否合适,是否适合于行业的部门
- 具备领域固定的,典型的在开发过程中可重用的元素
- 遵循特定领域软件架构设计的创建步骤,创建过程主要包括定义领域范围、定义领域特定的元素、定义领域特定的设计和实现需求约束、定义领域模型和架构、产生、搜集可重用的产品单元。并且本过程是并发的、递归的、反复的。
- 定义领域的范围,本阶段的重点是确定系统中涉及的问题是否属于该行业,以及本过程何时结束。主要输出行业中应用需求要满足的一系列用户需求
- 定义领域特定元素,本阶段的目标是编译领域字典和领域术语的同义词词典,即编译属于行业的词典
- 定义领域特定的设计和实现需求约束:本阶段的目标是描述解空间中有差别的特性。不仅要识别出约束,并且要记录对设计和实现决定造成的后果,还要记录对处理这些问题时产生的所有问题的讨论
- 定义领域模型和架构:本阶段的目标是产生一般的架构,并说明构成他们的模块或构件的语法和语义
- 产生、搜集可重用的产品单元;本阶段的目标是是DSSA增加构件是的它可以被用来产生问题领域中的新领域
架构评估案例
体系架构评估是整个体系结构设计中,非常重要的一个环节,体系结构评估可以只针对一个体系结构,也可以针对一组体系结构。在体系结构评估过程中,评估人员所关注的是系统的质量属性。
- 所有的评估方法所普遍关注的质量属性有:功能性、可靠性、安全性、性能、可用性、可修改性可变性、互操作性;
- 敏感性和权衡点是是关键的体系结构决策。敏感性是一个或多个构件(和、或构件之间的关系)的特性。研究敏感点可使设计人员或分析人员明确在搞清楚如何实现质量目标时应注意什么。权衡点是影响多个质量属性的特性。
- 软件架构师
- 定义:负责软件体系结构以及在相互竞争的质量需求间进行权衡的人
- 所关心的问题:对其他风险承担者提出的质量需求的缓解和调停
- 开发人员:
- 定义:设计人员或程序人员
- 所关心的问题:体系结构描述的清晰与完整、各个部分的内聚性与受限耦合、清楚的交互机制
- 项目经理:
- 定义:负责配置资源、保证开发进度
- 所关心的问题:体系结构层次清晰,便于组建小组;任务划分结构、进度标志和最后期限等
- 客户
- 定义:系统购买者
- 所关心的问题:开发的进度、总体的预算、系统的有用性、满足需求的情况
- 简要说明目前架构评估主要有SAAM和ATAM,说明使用这两种方法进行架构评估的步骤和阶段
- SAAM分析评估体系结构的过程包括五个步骤
- 场景开发
- 体系结构描述
- 单个场景评估
- 场景交互
- 总体评估
- ATAM被分为九个步骤
- 描述ATAM方法
- 描述业务动机
- 描述体系结构
- 确定体系结构方法
- 生成质量属性效用树
- 分析体系结构方法
- 讨论和分级场景
- 分析体系结构方法
- 描述评估结果
数据库设计案例
- 读写分离的概念叙述:读写分离,主从复制策略。其中读写分离设置物理上不同的主、从服务器,让主服务器负责数据的写操作,从服务器负责数据的读操作,从而有效减少数据并发操作的延迟,但却带来了数据不一致的风险。因此,需要采用主从复制策略保持数据的一致性
- Mysql数据库中,主从复制是通过binarylog来实现主从服务器的数据同步,Mysql数据库支持三种负责类型分别是:基于SQL语句的复制、基于行的复制、混合模式复制
- 关系型数据库与NoSQL数据库的区别
- 数据一致性:关系数据库是实时一致性、NoSQL数据库是弱一致性
- 数据类型:关系数据库是结构化数据、NoSQL数据库是非结构化数据
- 事务:关系型数据库是高事务性、NoSQL数据库是弱事务性
- 水平扩展:关系型数据库是弱、NoSQL数据库是强
- 数据容量:关系型数据库是有限数据、NoSQL数据库是海量数据
- 简要说明数据同步问题的三种方法:
- 通过定时任务机制做定期数据更新
- 通过触发器完成数据同步
- 通过数据库插件完成数据同步
数据流图案例:
- 流程图与数据流图之间的区别:
- 数据流图中的处理过程可并行;系统流程图在某个时间点只能处于一个处理过程
- 数据流图展现系统的数据流;系统流程图展现系统的控制流
- 数据流图展现全局的处理过程,过程之间遵循不同的计时表准;系统流程图中处理过程遵循一致的计时表准
UML建模案例:
- 用例图的三种关系
- extend,拓展关系,如果一个用例明显地混合了两种或两种以上的不同场景,即根据情况可能会发生多种,则可以将这个用例分为一个基本用例和一个或多个拓展用例,关系图指向为扩展用例指向基本用例。例如:创建和打开就是一对扩展关系,创建成功之后,可以直接保存关闭之后,如果想要进行后续修改工作,就需要打开地址簿,由扩展用例指向基本用例
- include,属于用例图的三种关系之一,表示的是包含关系;描述为:当可以从两个或两个以上用例中能够提取公共行为的时候,应该使用包含关系来表示它们。其中这个提取出来的公共用例称之为抽象用例,而把原始用例称为基本用例和基础用例;例如:创建、修改和保存就是一对包含关系,在创建和修改它们都有公共的行为保存,提取出来称之为抽象用例,用包含关系来表示它们。