案例方向
案例一:架构风格+架构评估
案例二:软件工程系统建模工具
案例三:嵌入式(不做)
案例四:数据库设计与性能优化技术
案例五:Web架构设计(云大物综合题)
架构设计与评估
软件架构设计与生命周期
软件架构(Software Architecture)设计主要关注软件构件的结构、属性和交互作用 ,并通过多种视图全面描述特定系统的架构。
- 需求分析阶段:研究SA模型转换和追踪性。
- 设计阶段:包括SA模型描述、ADL、多视图表示等。
- 实现阶段:研究基于SA的开发过程支持和寻求向实现过渡的途径。
- 构件组装阶段:支持构件互联和解决体系结构失配问题。
- 部署阶段:基于SA模型选择合理部署方案。
- 后开发阶段:涉及动态软件体系结构和体系结构恢复与重建。
基于体系结构(架构)的软件设计
基于体系结构(架构)的软件设计(Architecture-Based Software Design, ABSD)方
法。是体系结构驱动,即指构成体系结构的商业、质量和功能需求的组合驱动的。在
基于体系结构的软件设计方法中,采用视角与视图来描述软件架构,采用用例来描述
功能需求,采用质量场景来描述质量需求。
ABSD方法是一个自顶向下,递归细化的方法,软件系统的体系结构通过该方法得到细
化,直到能产生软件构件和类。
ABSD方法有三个基础:
① 第一个基础是功能的分解。在功能分解中,ABSD方法使用已有的基于模块的内聚和耦
合技术。
② 第二个基础是通过选择体系结构风格来实现质量和商业需求。
③ 第三个基础是软件模板的使用。软件模板利用了一些软件系统的结构。
基于体系结构的开发模型ABSDM





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


软件架构复用
软件产品线是指一组软件密集型系统,它们共享一个公共的、可管理的特性集,满足某个 特定市场或任务的具体需要,是以规定的方式用公共的核心资产集成开发出来的。即围绕核心 资产 库进行管理、复用、集成新的系统。
软件架构复用是系统化的软件开发过程:开发一组基本的软件构件模块,以覆盖不同的需求/体系结构之间的相似性,提高系统开发的效率、质量和性能。
软件架构复用的类型:
- 机会复用:开发过程中,只要发现有可复用的资产,就对其进行复用。
- 系统复用:是指在开发之前,就要进行规划,以决定哪些需要复用。
软件架构复用的对象及形式:
可复用的资产包括:需求、架构设计、元素、建模分析、测试、项目规划、过程+方法+工具、人员、样本系统、缺陷消除。
一般形式的复用包括:函数的复用、库的复用、面向对象开发中的类、接口和包的复用。
软件架构复用的基本过程:

特定领域软件架构DSSA
特定领域软件架构(Domain Specific Software Architecture, DSSA)是在一个特定应用领域中,为一组应用提供组织结构参考的标准软件体系结构。





软件系统质量属性
软件系统质量属性 (Quality Attribute) 是一个系统的可测量或者可测试的属性,用来描述 系统满足利益相关者 (Stakeholders) 需求的程度。

面向架构评估的质量属性

质量属性场景描述

- 刺激源 (Source): 这是某个生成该刺激的实体(人、计算机系统或者任何其他刺激器)。
- 刺 激 (Stimulus): 该刺激是当刺激到达系统时需要考虑的条件。
- 环境 (Environment): 该刺激在某些条件内发生。当激励发生时,系统可能处于过载、 运行或者其他情况。
- 制品 (Artifact): 某个制品被激励。这可能是整个系统,也可能是系统的一部分。
- 响应 (Response): 该响应是在激励到达后所采取的行动。
- 响应度量 (Measurement): 当响应发生时,应当能够以某种方式对其进行度量,以对需求进行测试。
常考质量属性

敏感点、权衡点、风险点和非风险点
- 敏感点是一个或多个构件(和/或构件之间的关系)的特性。
- 权衡点是影响多个质量属性的特性,是多个质量属性的敏感点。
- 风险点是指架构设计中潜在的、存在问题的架构决策所带来的隐患。
- 非风险点是指不会带来隐患,一般以“XXX要求是可以实现(或接受)的”方式表达。
系统架构评估方法

SAAM方法
SAAM 是一种基于场景的架构分析方法,通过场景描述、架构描述和场景交互分析,评估系统架构的质量属性,特别是可修改性,最终进行总体评估和决策。

CBAM 方法建立在 ATAM 方法的基础上,用来对架构设计决策的成本和收益进行建模,帮助项目干系人根据投资回报 (ROI) 选择架构策略。

ATAM方法
架构权衡分析方法 ATAM是一种系统架构评估方法,主要在系统开发之前,针对性能、可用性、安全性和可修改性等质量属性进行评价和折中。ATAM可以分为4个主要的活动阶段,包括需求收集、架构视图描述、属性模型构造和分析、架构决策与折中,整个评估过程强调以属性作为架构评估的核心概念。
ATAM方法的阶段:

架构演化
体系结构演化分类方法
- 按照软件架构的实现方式和实施粒度分类:基于过程和函数的演化、面向对象的演化、基于组件的演化和基于架构的演化。
- 按照研究方法将软件架构演化方式分类:第1类是对演化的支持,如代码模块化的准则、可维护性的指示(如内聚和耦合)、代码重构等;第2 类是版本和工程的管理工具,如CVS 和COCOMO ;第3 类是架构变换的形式方法,包括系统结构和行为变换的模型,以及架构演化的重现风格等;第4类是架构演化的成本收益分析,决定如何增加系统的弹性。
- 针对软件架构的演化过程是否处于系统运行时期:静态演化、动态演化。
软件架构演化时期

软件架构静态与动态演化

软件架构演化原则

可靠性设计
软件可靠性定义
软件可靠性(Software Reliability)是软件产品在规定的条件下和规定的时间区间完成规定功能的能力。

软件可靠性定量描述

广义的可靠性测试与狭义的可靠性测试

软件可靠性测试的目的

软件可靠性建模

软件可靠性管理

软件可靠性设计技术

软件可靠性测试内容

可靠性测试用例设计
测试用例要能够反映实际的使用情况,优先测试最重要的和最频繁使用的功能。设计测试用例,针对组合功能或特定功能,编写成相关文档。测试用例组成如图:

可靠性测试的实施

软件可靠性评价

软件工程系统建模工具
结构化方法

结构化分析步骤:
① 分析业务情况,做出反映当前物理模型的数据流图
② 推导出等价的逻辑模型的DFD ;
③ 设计新的逻辑系统,生成数据字典和基元描述;
④ 建立人机接口,提出可供选择的目标系统物理模型的DFD ;
⑤ 确定各种方案的成本和风险等级,据此对各种方案进行分析;
⑥ 选择一种方案;
⑦ 建立完整的需求规约。
数据流图建模过程:
① 明确目标,确定系统范围
② 建立顶层DFD图
③ 构建第一层DFD 分解图
④ 开发DFD 层次结构图
⑤ 检查确认DFD 图
面向对象方法
基于uml的面向对象需求分析过程大致分为以下几个步骤:
① 利用用例及用例图表示需求。
• 从业务需求描述出发获取执行者和场景;对场景进行汇总、分类、抽象,形成用例;确定执行者与用例、用例与用例图之间的关系,生成用例图。
② 利用包图及类图表示目标软件系统的总体框架结构。
• 根据领域知识、业务需求描述和既往经验设计目标软件系统的顶层架构;从业务需求描述中提取“关键概念” ,形成领域概念模型;从概念模型和用例出发,研究系统中主要的类之间的关系,生成类图。
面向对象的分析OOA 大致上遵循如下5 个基本步骤:
① 确定对象和类。
② 确定结构。结构是指问题域的复杂性和连接关系。类成员结构反映了泛化-特化关系,整体-部分结构反映整体和局部之间的关系。
③ 确定主题。主题是指事物的总体概貌和总体分析模型。
④ 确定属性。
⑤ 确定方法。

类之间的关系


面向对象的设计过程可以分为:
- 设计用例实现方案:UML的交互图(顺序图、协作图)适于用例实现方案的表示。该设计方法包含如下三个步骤:
(1)提取边界类、实体类和控制类。
(2)构造交互图。UML交互图,以交互图作为用例的精确实现方案。
(3)根据交互图精化类图。
在UML交互图中,对每个类的对象都规定了它必须响应的消息以及类的对象之间的消息传递通道。 - 设计技术支撑方案:在许多软件项目中,应用功能往往都需要一组技术支撑机制为其提供服务。例如,数据持久存储服务、安全控制服务、分布式事务管理服务、并发与同步控制服务和可靠消息服务等。
- 设计用户界面
- 精化设计模型:之前的设计模型可能是粗粒度的,这一步对设计模型进行更加详细的设计。
类的分类

UML图







数据库设计与性能优化技术
数据库安全性技术
1、数据库安全性技术主要有:用户标识和鉴别、存取控制(数据授权)、密码存储和传输、审计、视图 与物化视图、存储过程。
2、视图是保存在数据库中的SELECT查询,其内容由查询定义,因此,视图不是真实存在的基础表,而是 从一个或者多个表中导出的虚拟的表。同真实的表一样,视图包含一系列带有名称的列和行数据,但视图中的行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。视图优点有: 视点集中、简化操作、定制数据、合并分割数据、安全性。
3、物化视图。在物化视图中数据查询结果被固化起来,物化视图也可以称为快照。
4、存储过程。是数据库所提供的一种数据库对象,通过存储过程定 义一段代码,提供给应用程序调用来 执行。 从安全性的角度考虑,更新数据时,通过提供存储过程让第三方调用,将需要更新的数据传入 存储过程,而在存储过程内部用代码分别对需要的多个表进行更新,从而避免了向第三方提供系统的 表结构,保证了系统的数据安全
数据库完整性技术
触发器是一种特殊的存储过程,当数据发生变化时,触发器会产生某种动作。使用触发器有助于强制保持数据库的数据完整性。


反规范化技术
优点:避免进行表之间的连接操作,可以提高数据操作的性能。
缺点:数据的重复存储,浪费了磁盘空间;可能出现数据的完整性问题,为了保障数据的一致性,增加了数据维护的复杂性,会降低修改速度。
反规范化技术的类型:

反规范化设计中,解决数据不一致性问题的常见方法有:触发器、事务机制保证、应用保证、批处理脚本。
分片技术
范围分片:根据分片键(Sharding Key)的范围将数据划分到不同的分片节点上。
列表分片:某些数据取值本身是可以“枚举”的,则可以利用来作为分片。
哈希分片:按照数据的某一特征(key )来计算哈希值,并将哈希值与系统中的节点建立映射关系,从而将哈希值不同的数据分布到不同的节点上。

一致性哈希分片:将数据按照特征值映射到一个首尾相接的Hash 环上,同时也将节点(按照IP 地址或者机器名Hash )映射到这个环上。对于数据,从数据在环上的位置开始,顺时针找到的第一个 节点即为数据的存储节点。一致性Hash在增加或者删除节点的时候,受到影响的数据是比较有限的,只会影响到Hash环上相应的节点,不会发生大规模的数据迁移。
主从复制读写分离
主从复制是设置不同的主/从数据库分别负责不同的操作。让主数据库负责数据的写操作,从数据库负 责数据的读操作。通过角色分担的策略,分别提升读写性能,有效减少数据并发操作的延迟。
引入主从复制机制所带来的好处:
① 避免数据库单点故障、提高可用性:主服务器实时、异步复制数据到从服务器,当主数据库宕机时,可在从数据库中选择一个升级为主服务器,从而防止数据库单点故障。
② 提高查询效率:根据系统数据库访问特点,可以使用主数据库进行数据的插入、删除及更新等写操作,而从数据库则专门用来进行数据查询操作,从而将查询操作分担到不同的从服务器以提高数据库访问效率。
主从同步过程:主从数据库之间通过 binary log(二进制日志)进行数据的同步。具体过程如下:① 从库连接主库,请求binglog同步。②dump读取binlog。③发送binlog中的日志信息(数据库更新事 件)。④将接到的日志信息存放到relay log。⑤读取relay log中的日志信息。⑥将数据库更新事件在 存储引擎中执行。
binlog的三种模式:①基于SQL语句的复制②基于行的复制。③混合模式mysql主从同步的同步模式:①全同步②半同步③异步

Base理论:
基本可用(BasicallyAvailable):指分布式系统在出现不可预知故障的时候,允许损失部分可用性。允许分区失败的情形出现。
软状态(Softstate)硬状态数据库状态必须一直保持数据库一致性。软状态状态可以有一段时间不同步。
最终一致性(Eventuallyconsistent)系统中所有的数据副本,在经过一段时间的同步后,最终能够达到一个一致的状态。
Nosql数据库

NoSQL数据库通常具有以下基本特点:数据模型灵活、高可扩展性、 高性能、低一致性、 适用于大数据和实时数据处理等

Redis
特点:
redis用作缓存组件时,其基于内存的读写特性,比基于磁盘读写的数据库性能要高很多,适合缓存高频热点的数据,来提高读性能。这样可以降低对数据库服务器的查询请求,提高系统性能。














Web架构设计(云大物综合题)
层次式体系结构




SOA
SOA主要协议和规范



SOA设计原则:无状态、单一实例、明确定义的接口、自包含和模块化、粗粒度、服务之间的松 耦合性、重用能力、互操作性、兼容和策略声明。
SOA的实现方式有:服务注册表、企业服务总线
企业服务总线ESB 的核心功能如下:
1.提供位置透明性的消息路由和寻址服务。
2.提供服务注册和命名的管理功能。
3.支持多种消息传递范型(如请求/响应、发布/订阅等)。
4.支持多种可以广泛使用的传输协议。
5.支持多种数据格式及其相互转换。
6.提供日志和监控功能。
微服务

API网关在微服务中的作用:
(1)封装系统架构:封装了整个系统的架构,为客户端提供统一的接口。
(2)路由和转发:根据请求的URL、头部信息或请求体内容,将请求路由到相应的微服务实例。
(3)负载均衡:对请求进行负载均衡,将请求分配到多个微服务实例上。这有助于提高系统的可伸缩性和可用性。
(4)聚合响应:对于需要多个微服务协同完成的请求,API网关可以并行调用这些服务,并聚合它们的响应返回给客户端。
(5)认证与授权:在请求到达微服务之前,API网关可以执行身份验证和授权,确保只有合法的请求才能通过。
(6)限流与熔断:通过限流和熔断机制,API网关可以保护微服务免受流量洪峰和故障的影响,提高系统的稳定性和可用性。
(7)协议转换:充当协议转换器的角色,将来自客户端的请求转换为微服务可以理解的协议,并将微服务的响应转换回客户端可以理解的协议。
(8)缓存:API网关可以对常见的请求进行缓存,减少对后端微服务的调用,提高系统的性能和响应速度
云原生


云原生关键技术:
Docker容器基于操作系统虚拟化技术,共享操作系统内核、轻量、没有资源损耗、 秒级启动,极大提升了系统的应用部署密度和弹性。更重要的是,Docker 提出了创 新的应用打包规范一-Docker 镜像,解耦了应用与运行环境,使应用可以在不同计 算环境一致、可靠地运行。
容器编排标准Kubernetes的能力:资源调度、应用部署与管理、自动修复、服务发 现与负载均衡、弹性伸缩、声明式API、可扩展性架构、可移植性
无服务器技术:全托管的计算服务、通用性、自动弹性伸缩、按量计费
服务网格:服务网格(ServiceMesh)旨在将那些微服务间的连接、安全、流量控制和可观测等通用功能下沉为平台基础设施,实现应用与平台基础设施的解耦。


大数据
Lambda架构常用技术



文档下载
链接: https://pan.baidu.com/s/1_zQa0IgZxGWoPwms1bGZnA?pwd=fhn3 提取码: fhn3
评论区