赞
踩
本章节主要内容如下( 上午综合题可以考到20~26分
,其中案例题和论问题都有涉及 ):
这部分主要记住以下几点概念:
① 软件架构为软件系统提供了一个结构、行为和属性的高级抽象
,由构成系统的元素的描述、这些元素的相互作用、指导元素集成的模式以及这些模式的约束组成。
② 软件架构是项目干系人进行交流的手段
明确了对系统实现的约束条件,决定了开发和维护组织的组织结构,制约着系统的质量属性。
③ 软件架构使推理和控制的更改更加简单,有助于循序渐进的原型设计,可以作为培训的基础
。
④软件架构是可传递和可复用的模型
,通过研究软件架构可能页测软件的质量
4+1”视图模型从 5 个不同的视角(逻辑视图、进程视图、物理视图、开发视图、场景视图)来描述软件架构。每一个视图只关心系统的一个侧面,5个视图结合在一起才能反应系统的软件架构的全部内容。如下图所示:
5个视图相对应的功能,关注点和关注人员,如下表所示:
注:上面内容来源于这篇博文:https://blog.csdn.net/lb1135909273/article/details/109116851?
软件架构风格是描述某一特定应用领域中系统组织方式的惯用模式。架构风格定义一个系统家族,即一个体系结构定义一个词汇表和一组约束。词汇表中包含一些构件和连接件类型,而这组约束指出系统是如何将这些构件和连接件组合起来的。架构风格定义了用于描述系统的术语表和一组指导构建系统的规则,反映了领域中众多系统所共有的结构和语义特性,并指导如何将各个构件有效地组织成一个完整的系统。
最常考的5种软件架构风格如下:
系统对数据进行处理,有着严格的流程(
步骤
),该风格包含二种不同的子分格即批处理序列和管道-过滤器,二者的区别就是批处理的数据必须是完整的,以整体的方式传递,而管道-过滤器的数据以流的方式进行传递 (有点类似于流媒体)。
数据流风格的工序流程如下图所示:
这种风格使用的非常的多如结构化程序中的函数,面向对象中的方法调用,和层次结构中底层给高层提供的服务就是通过方法进行
调用
并返回相应结果
。
层次结构进行分层后的优缺点:
构件与构件之间不直接联系,通过事件进行触发,降低耦合性,加强独立性,重点在于
触发事件
。
比如Java的虚拟机,通过将代码放在虚拟机环境上进行运行,这个
环境(自定义组合)
可以在不同的平台上使用,进而实现不同平台上跨平台运行。
对
公共数据
进行共享和处理,数据库系统就是对存储在磁盘上的数据库文件作为公共数据,可以对这个数据进行相应的处理,也可以理解为将数据存放在工厂中可以进行共享,可以进行相应的加工(处理
)。
黑板系统以数据库为基础,黑板作为公共的数据区域,不但对黑板作为数据存取还作为数据传递,共享和控制的机制,黑板系统流程如下图所示:
比如空调制冷在室温较高的时候空调就会持续制冷将室温控制到一个指定范围,当处于这个范围的时候,空调就不再去制冷了而是去保持室温的状态,当室温再一次高于这个范围的时候,空调将再一次持续制冷控制室内温度这一系列
连续的动作和状态
就是闭环控制架构风格。
例1:
答案:虚拟机风格,数据流风格, 隐式调用
, 解释器
,过程控制
例2:
答案:黑板,解释器,隐式调用(图形里面是通过相应事件进行触发)
例3:
答案:B(程序源代码作为一个整体,依次在…),D,A(会同时触发…),B,D(运行环境…)
层次结构的演进过程如下图所示:
下表中的界面层也叫做表示层,业务逻辑层也可叫做功能层,数据访问层也可叫做数据层。
B/S架构和C/S架构最大的区别就是B/S架构无需下载客户端软件。
表示层(界面层)相关技术的发展:
MVC架构风格:
MVC的执行:
MVP架构风格:
MVVM:
特点:
关键技术:
SOAP协议:
REST技术:
SOA的实现方式-WebService:
SOA的实现方式-ESB:
SOA的实现方式-服务注册表:
微服务的优势:
微服务面临的挑战:
微服务与SOA的对比:
特定领域软件架构(DSSA)-领域分析机制:
特定领域软件架构(DSSA)-建立过程:
特定领域软件架构(DSSA)-三层次模型:
质量属性和设计策略对应表如下( 质量属性题型可能会和设计策略结合起来考
):
质量属性 | 设计策略 |
---|---|
性能 | 优先级队列,队列调度,资源调度 |
可用性 | 冗余,心跳线,Ping/Echo |
安全性 | 追踪审计,限制访问 |
可修改性 | 信息隐藏,运行时注册,接口-实现分离 |
可靠性 | 冗余,心跳线 |
可测试性 | 记录/回放 |
练习:
答案:性能,安全性(数据库授权要达到99.9%这是安全性问题,而不是可用性),可修改性,可用性(案例分析题中采用可用性,或者题中提到容错和健壮性时才考虑使用可靠性),可修改性(功能性前面常常不加数字前缀,这里 3人周内
就是数字前缀),性能,可用性
基于场景的评估:
质量效用树:
其他模型:
软件产品线的建立:
组织结构:
中间件的优点:
主要的中间件:
单台机器到数据库与Web服务器分离:
应用服务器集群:
负载均衡:
负载均衡技术:
负载均衡的引入:
有状态与无状态:
用缓存缓解读库的压力:
缓存技术:
Redis与Memcache的差异:
Redis的常见难题:
CDN(内容分发网络)
XML与JSON:
WEB应用服务器:
REST(表述性状态传递):
响应式Web设计:
中台:
辨别业务中台和数据中台:
答案:业务中台,数据中台,业务中台和数据中台
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。