20分
1、软件架构为软件系统提供一个结构、行为、属性的高级抽象。由构建的描述、构建的相互作用(连接件)、指导架构集成的模式、模式的约束。
2、软甲架构设计的最终目的是 架构层级的复用
3、大多数原子构件永远不会被单独部署,尽管可以单独部署;大部分原子构件都属于一个构件家族,一次部署往往涉及整个家族。
4、构件:
独立部署的资源
第三方组装单元
没有外部可见状态
可以包含多个类元素,但一个类元素只能属于一个构件
5、对象:
一个实例单元
外部可见状态
封装了自己的状态和行为。
6、软件架构风格:描述某一特定应用领域中系统组织方式的惯用模式。定义了一个架构定义、一个词汇表(包含一些架构和连接类型)、一组约束(指出了系统是如何将这些构件和连接件组合起来)。
反应了领域中众多系统所共有的结构和语义特性。
7、风格:
数据流风格:传统编译器
批处理:一批作为一组同时执行完后才能下一批。
管道-过滤器:前一个输出是后一个输入。
调用/返回风格
主程序/子程序:
面向对象:通过函数和过程的调用来交互
层次结构:下层对上层服务
独立构件风格
进程通信:进程间消息传递:点对点、异步或同步、远程调用(RPC)
事件驱动(隐式调用):事件触发时响应
虚拟机风格
解释器:解释引擎、包含被解释代码的存储区、一个记录解释引擎当前工作状态的数据结构,以及一个记录源代码被解释执行的数据结构。
基于规则的系统:人工智能领域、决策支持
仓库风格:数据为中心
数据库系统:
超文本系统:互联网领域
黑板系统:知识源、黑板、控制:语音识别、知识推理。
闭环控制
反馈循环机制
C2
通过连接件绑定在一起的按照一组规则运作的并行构件网络;都有一个顶部和一个底部;构件与构件间必须通过连接件连接
8、层次架构风格
C/S架构:
两层--胖架构
三层--瘦架构
B/S架构:
三层
MVC:视图->控制器->模型->视图
控制器:处理用户交互
模型:处理应用程序数据逻辑部分
视图:数据显示、客户交互
MVP:controller换成presenter(呈现)
MVVM: presenter换成ViewModel
9、面向服务的架构风格SOA
协议:
UDDI:服务注册/查找
WSDL:服务描述:服务能做什么、怎么访问服务、服务位于哪个协议的哪个地址
SOAP:服务连接,基于XML协议,包括:封装、编码规则、SOAP/RPC、绑定;简单、可扩展
WEB Service:服务提供者、服务注册中心、服务请求者。
服务注册表:服务注册、服务位置、服务绑定。
ESB:企业服务总线:消息的转发、解释、路由
10、架构复用
机会复用/系统复用
获取/构造可以复用的软件资产、管理资产、针对特定需求选择可复用部分
10、DSSA 特定领域软件架构
专用于一类特定类型的任务,软件构件集合。
垂直域、水平域
三个基本活动:领域分析(获取领域模型、领域需求)、领域设计(获取DSSA)、领域实现。
四种角色:领域专家、领域分析人员、领域设计人员、领域实现人员。
五个过程:定义领域范围、定义领域特定元素、定义设计和约束、定于模型和架构、产生搜集可复用的产品单元。
三层次模型:领域开发环境、领域特定的应用开发环境、应用执行环境。
11、ABSD:架构驱动
视角和视图来描述软件架构、采用用例和质量属性场景来描述需求
自顶向下
六个过程:
架构需求:(系统质量目标、系统商业目标、系统开发人员商业目标),生成初始逻辑模型
[
架构设计:标识构件映射成构件,分析构件间的相互作用,产生体系结构,设计评审
架构文档化:架构规格说明书、测试架构需求的质量设计说明书
架构复审:外部人员复审
]
架构实现:用实体显示出架构,实现构件,构件组装成系统。
架构演化:对架构进行改变,按需求增删构件,使架构可复用。
12、质量属性
性能:系统响应能力,5s内返回结果;响应时间、吞吐量;增加计算资源、减少计算开销、资源调度、并发。
可靠性:基本上同可用性。发生错误时正常运行。心跳、冗余、选举、ping/echo
可用性:重要。系统能够正常运行的时间比例。两次故障之间的时间长度。出现故障时恢复正常的速度。
安全性:给合法用户提供服务,阻止非法用户服务。入侵检测、追踪审计、用户认证、用户授权
可修改性:以较高性价比快速修改。抽象、信息隐藏、接口-实现分类
功能性:系统所能完成所期望的工作的能力。
可变性:架构的可扩展性。
互操作性:与其他系统进行交互,接口。
13、质量属性场景:面向特定质量属性的需求
刺激源、【刺激】、 【环境】、 制品、 【响应】、 相应度量。
用户 操作 生产环境 操作对象(系统) 操作完成 操作的评估
14、架构评估
敏感点:实现某种特定的质量属性、一个或多个构件所具有的特性。一个质量属性
权衡点:两个及两个质量属性的特性。多个质量属性的敏感点。
风险点:可能出现问题的操作。
15、SAAM:基于场景的架构分析方法
16、ATAM:架构权衡分析法
活动领域:场景和需求收集、体系结构视图和场景实现、属性模型构造和分析、折中。以属性为核心,主要针对:性能、可用性、安全性、可修改性。
效用树:树根-质量属性-质量分类-质量属性场景(叶子节点)。