【真题笔记】09-12年系统架构设计师要点总结
在09-12年真题练习中,对错题+模棱两可的考点进行重点记录与内容延申。
4+1 视图
UML 4+1 视图
1
用例(用户):显示外部参与者观察到系统功能;
4
进程(系统集成):程序执行时并发状态;
部署(系统操作):软件到硬件映射;
实现(程序员):源代码及其执行代码,描述模块组织与管理;
逻辑(设计+测试人员):从系统静态结构/动态行为角度显示系统内部如何实现功能,描述对象模型与对象间关系。
架构 4+1 视图
1
场景视图
4
进程视图(系统集成人员);
物理视图(系统工程人员);
开发视图(编程人员);
逻辑视图(最终用户):功能需求的确定
ps: 这里一定要注意逻辑视图在不同4+1视图中的代表意思,在UML中,逻辑视图表示类与对象,主要是系统设计、测试人员;由用例视图表示需求确定,主要是最终用户。而在架构中,逻辑视图表示需求确定,主要是最终用户。
场景
在进行体系结构评估时,一般首先要精确地得出具体的质量目标,并以之作为判定该体系结构优劣的标准。为得出这些目标而采用的机制叫作场景。场景是从风险承担者的角度对与系统的交互的简短描述在体系结构评估中,一般采用刺激(stimulus)、环境(environment)、响应(response) 三方面来对场景进行描述。
DSSA(特定领域架构)
DSSA以一个特定问题领域为对象,形成由领域参考模型、参考需求、参考架构等组成的开发基础架构。基本活动如下:
领域架构师:领域开发环境
- 分析:建模
- 设计:DSSA
- 实现:可复用
- 专家:知识
应用工程师:领域特定应用开发环境
操作员:应用执行环境
从功能覆盖的范围角度理解DSSA中领域的含义
有两种方法:
- 垂直域:定义了一个特定的系统族,导出在该领域中可作为系统的可行解决方案的一个通用软件架构;
- 水平域:定义了在多个系统和多个系统族中功能区域的共有部分,在子系统级上涵盖多个系统(族)的特定部分功能。
ps:在特定领域架构中,垂直域关注的是与行业相关的,聚焦于行业特性的内容,而水平域关注的是各行业共性部分的内容。注意不要反了!
集成系统
应用集成
环境集成
- 界面集成
- 控制集成
- 数据集成
数据库管理
需求分析
概念:ER
逻辑:范式
物理
设计模式
解释器:用户->对象实例 / 行为 / 动态;
黑板:专家知识积累 / 自然语言处理、语音处理、模式识别、图像处理;
过程:主张设计值 / 范围;
现代编译器使用数据共享风格,传统编译器使用管道过滤器风格(传统编译器要注意,其实应该是数据流架构,包含管道过滤器风格和顺序批处理,如果2个选项都有,且强调数据整体处理,就选择顺序批处理);
现代编译器的集成开发环境一般采用数据仓库(即以数据为中心的架构风格)架构风格进行开发,其中心数据是程序的语法树;
桥接模式:多维度问题,如电脑不同品牌+类型,区分电脑的问题。特点是将抽象部分与它的实现部分分离,使它们都可以独立地变化;
外观模式:定义一个接口,不同DB使用;
中介者模式:支持多者数据交互,且2者独立;
访问者模式:不改变数据结构下作用元素新操作;
命令模式:用不同请求队列或日志参数化其他对象 / 撤销+重做操作。
操作符
运算符
综合布线
综合布线分6个系统:
工作区子系统:终端设备-> 插座;
水平子系统:各个楼层接线间的配线架->工作区信息插座,作用是将干线子系统线路延申到用户工作区;
管理子系统:设置在楼层的接线间内,由各种交连设备(双绞线跳线架、光纤跳线架)以及集线器和交换机等交换设备组成;
垂直干线子系统:各楼层间互连系统;
设备室子系统:设备间设备;
建筑群子系统:各建筑物间。
ps:水平子系统和干线子系统都是线缆,管理子系统是各种交联设备,是干线子系统和水平子系统的桥梁。
备份
安全备份:完整备份;
增量备份:与上一次备份比,差异的备份;
差异备份:与上一次完整备份比,差异备份。
数据库集成
单表:用主动记录;
多表:用数据映射。
工作流技术
工作流技术:通过配置实现灵活、动态定制系统的功能协作。
软件质量保证
质量审计(包括软件评审);
过程分析。
需求管理+需求开发
需求管理:用于查找、记录、组织、跟踪需求变更的系统化方法,而不是需求开发,包括变更控制、版本控制、需求跟踪、需求状态跟踪;
需求开发:需求获取、需求分析、需求定义、需求验证。
结构化方法
结构化方法:自顶向下,逐步求精。开发周期长,难适应需求变化。通过顺序、分支、循环三种基本的控制结构可以构造出任何单入口单出口的程序。;
面向对象的自底向上,结构化自顶向下。
企业战略数据模型
数据库模型 :描述日常义务中的数据;
数据仓库模型:为高层决策提供信息。
事务数据库+主题数据库
事务数据库:会孤岛,就平时执行事务;
主题数据库:就Vn中那几张物化表,把表根据主题进行2次成表。
系统设计
外部设计:又称概要设计,设计各部分功能、接口、相互关联;
内部设计:又称详细设计,设计一个具体模块的实现。
原型开发
快速原型开发(又称抛弃式原型法):用原型获取要求,然后将原型抛弃;
演化式原型开发:原型逐步进化至目标。
静态分析
控制流阶段:找出并突出显示那些带有多重出口,或入口的循环,以及不可达到代码段;
数据使用分析阶段:突出程序中变量使用情况;
接口分析阶段:检查子程序和过程说明及它们使用的一致性;
信息流阶段:找出输入 / 输出变量之间关系;
路径分析阶段:找出所有可能路径并画出此路径中执行的语句。
架构风格+设计模式+软件架构设计
- 架构风格:从全局考虑,独立于实际问题的通用组织结构。定义了一类架构所共有的结构和语义特征,主要包括架构定义、架构词汇表、架构约束。同时,体系结构风格定义一个系统家族,即一个体系结构定义一个词汇表和一组约束,其中词汇表包含一些构件和连接件类型,而这组约束指出系统是如何将这些构件和连接件组合起来的。
- 设计模式:解决某一特定局部问题,是一种局部解决实际方案的应用,如内存垃圾的回收机制。同时,设计模式可以按照2个准则来分类:
一、按设计模式的目的划分:包括创建型、结构型、行为型三大类别。其中,创建型模式采用抽象类所定义的接口,封装了系统中对象如何创建、组合等信息;结构型模式主要用于如何组合已有的类和对象以获得更大的结构;行为模式主要用于对象之间的职责及其提供服务的分配方式。
二、按设计模式的范围划分,分为类设计模式和对象设计模式。 - 软件架构设计:是软件开发过程中的一个重要环节,它涉及多个活动,旨在确保软件系统的结构、行为和属性满足既定的需求和目标。软件架构设计主要关注软件组件的结构、属性、交互作用。其中,结构指的是组件之间的组织方式;属性定义了组件的特性和行为;交互作用则是指组件之间如何相互作用以完成系统的整体功能。软件架构设计通过多种视图来全面描述特定系统的架构。
ps:
- Prototype(原型模式):用原型实例指定创建对象的类型,并且通过拷贝这个原型来创建新的对象。允许对象在不了解创建对象的确切类以及如何创建细节的情况下创建自定义对象。
- Abstract Factory(抽象工厂模式):提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。
- Builder(构建器模式):将一个复杂类的表示与其构造相分离,使得相同的构建过程能够得出不同的表示。
- Singleton(单例模式):保证一个类只有一个实例,并提供一个访问它的全局访问点。
软件架构评估
敏感点:一个或多个构件的特性;
权衡点:影响多个质量属性的特性,是多个质量属性的敏感点;
风险点:架构设计中潜在的、存在问题的架构决策所带来的隐患。
非风险点
SNMPV3
-
把对网络协议的安全威胁分
1.1 主要
修改信息
假冒
1.2 次要
修改报文流
消息泄露 -
不必防护安全威胁
拒绝服务
通信分析
软件开发集成机制
环境信息库:存储与系统开发有关信息,并支持信息交流与共享;
过程控制与信息服务器:实现过程集成和控制集成的基础;
环境用户界面:它的统一性与一致性是开发重要特征。
隐形调用 / 显性调用
隐形调用比显性调用灵活性提高,性能降低。
存储技术(DAS / NAS / SAN)
DAS:I/O请求直发存储设备,依赖服务器,不跨平台;
NAS:不再通过I/O附属于某服务器/客户端,直接用网络接口与网络相连,有自己的文件管理系统;
SAN:通过光纤通道连接存储阵列,FC SAN 网络介质光纤通道,IP SAN 使用标准以太网,没文件管理系统。
域名服务
提供域名服务包括:本地缓存、本地域名服务器、权限域名服务器、顶级域名服务器、根域名服务器。
本地缓存是内存中一块区域,不用数据库。
纠错
前向纠错:接收端使用纠错码自动纠错;
后向纠错:发现错误后,接收方请求发送方重新传输整个数据。