系统架构设计师教程知识清单5
第5章 软件架构设计
这部分确实有些难背,建议结合自己的开发理解以及自己常错/的考察范围,记录在单词本/便签本上,隔三差五拿出来看看
软件架构设计生命周期
一般考得不多,SA(结构化分析)本身的概念考得更多
1 需求分析阶段
需求模型
采用SA(结构化分析)模型
使用Use case图描述需求的方法
2 设计阶段
内容:SA模型的描述
SA模型的多视图表示:4+1模型(逻辑、进程、开发、物理、统一场景)
3 实现阶段
内容:基于SA的开发过程支持
4 构件组装阶段
内容:如何支持可复用构件的互联,如何检测并消除体系结构失配
5 部署阶段
体系结构重建的4类:手工体系结构重建、工具支持的手工体系结构重建、通过查询语言来自动建立聚集、使用其他技术
基于架构的软件开发方法
1 ABSD 基于体系架构的软件设计
自顶向下,递归细化
ABSD方法有三个基础:功能的分解、选择体系风格、软件模版
视角与视图:静态视角-> 质量特性;动态视角-> 行为特性
用例和质量场景:用例用来捕获功能需求,同时定义特定场景来捕获质量需求,这些特定的场景成为质量场景,分别有变更场景、性能场景、可靠性场景、交互性场景
2 ABSDM 基于体系架构的开发模型
ABSDM把软件过程划分为体系结构需求、设计、文档化、复审、实现与演化等6个子过程
(1)ABSDM体系结构需求
需求获取
标识构件(分三步:生成类图、对类进行分组、把类打包成构件)
需求评审
(2)ABSDM体系结构设计
提出体系结构模型
映射构件(中间结构)
分析构件相互作用(集成)
产生体系结构(精化)
设计评审
(3)体系结构文档化
输出:体系结构规格说明书、测试体系结构需求的质量设计说明书
(4)体系结构复审
标识潜在风险
需要用户代表+领域专家
(5)体系结构的实现
复审后的文档化的体系结构
分析与设计
构件实现
构件组装
系统测试
体系结构演化
(6)体系结构的演化
需求变化归类
体系结构演化计划
构件变动
更新构件的相互作用
构件组装与测试
技术评审
演化后的体系结构
软件架构风格
管道和过滤器:如经典的MapReduce
数据抽象和面向对象
事件驱动系统:广播
分层系统:网络协议
仓库系统和知识库:数据库、黑板系统
C2风格:构件、连接件
C/S(客户-服务器):C/S有点类似APP,需要下载安装特定应用,B/S典型的就是电脑上打开的B站、淘宝等。
B/S(浏览器-服务器)
在《2022软考系统架构设计师备考经验》中的有图表总结
DSSA 特定领域软件体系结构
1 DSSA基本活动
领域分析,获得领域模型
领域设计,获得DSSA(特定领域软件体系结构)
领域实现,依据上两个阶段成果开发和组织可重用信息
2 DSSA参与人员
领域专家,如用户、有分析、设计经验的软件工程师
提供需求规约、领域字典、样本系统
领域分析人员,如系统分析员
维护领域模型
领域设计人员,如软件设计人员
开发出DSSA
领域实现人员,如程序设计人员
开发构件
3 DSSA的建立过程
(1)定义领域范围(输出用户需求)
(2)定义领域特定的元素(领域字典、词典)
(3)定义领域特定的设计和实现需求约束
(4)定义领域模型和体系结构(产生一般体系结构)
(5)产生、搜集可重用的产品单元(为DSSA增加构件)
4 DSSA三层系统模型

系统架构的评估
1 质量属性
性能 performance:单位时间所处理事务个数,性能测试常需要使用基准测试程序
可靠性 reliability:在应用或系统错误面前,在意外错误使用情况下维持软件功能特性的基本能力。常用MTTF和MTBF描述(比如一个搜索栏能容忍用户的错误输入,给出输入错误或其他提示结果)
可用性 availability:系统能够正常运行的时间比例(比如一个社交网站不会因为某些热点新闻导致服务器超载以致不可访问)
安全性 security
可修改性 modifability: 可维护性、可扩展性、结构重组、可移植性
功能性 functionality:系统所能够完成期望工作的能力
可变性 changeability:体系结构经扩充或变更而成为新体系结构的能力
互操作性 inter-operation:与其他系统或自身环境相互作用能力
2 评估中的重要概念
(1)敏感点与权衡点
敏感点:一个或多个构件(和/或构件之间的关系)的特性
权衡点:影响多个质量属性的特性,是多个质量属性的敏感点(如加密级别同时影响安全性和性能,是一个权衡点)
(2)场景
在进行体系结构评估时,一般首先要精确地得出具体的质量目标,并以之作为判定该体系结构优劣的标准。为了得到这些目标而采用的机制叫做场景。在体系结构评估中,一般采用刺激、环境和响应三方面对场景进行描述。
3 主要评估方法
(1)SAAM (Scenario-based Architecture Analysis Method) 基于场景的体系架构评估方法
评估技术:场景技术
输入问题:问题描述、需求声明和体系结构描述
评估过程:

(2)ATAM(Architecture Tradeoff Analysis Method)体系结构权衡评估方法
主要针对性能、实用性、安全性和可修改性
方法的活动:
ATAM分为4个主要的活动领域(或阶段),分别是场景和需求收集、体系结构视图和场景实现、属性模型构造和分析、折中