导图社区 软考架构设计师脑图
软考架构设计师脑图思维导图:包含软件工程,单一职责原则:设计摸底单一的类,开放-封闭原则:对扩展开放,对修改封闭,依赖导致原则:要依赖于抽象,而不是具体的实现;针对接口编程,不要针对实现编程等等
编辑于2022-04-18 16:19:18软考架构师
软件工程
软件开发方法
结构化法
1用户至上 2严格区分工作阶段,每个阶段有任务与成果 3强调系统开发过程的整体性和全局性 4系统开发过程工程化文档资料标准化 5自顶向下逐步分解 典型的结构化方法的产物:瀑布模型 需求不明确的项目不能用瀑布模型
原型法
适用于需求不明确的开发 包括抛弃型原型和进化型原型
面向对象方法
更好的复用性 关键在于建立一个全面、合理、统一的模型 分析、设计、实现撒个阶段,界限不明确
面向服务方法
SO方法有三个主要的抽象级别:操作、服务、业务流程 SOAD分为三个层次,基础设计层(底层服务构建)、应用结构层(服务之间的接口和服务级协定)和业务组织层(业务流程建模和服务流程编排) 服务建模:分为服务发现,服务规约和服务实现三个阶段。
逆向工程
净室软件工程
软件开发模型
瀑布模型
增量模型与螺旋模型
V模型
构建组装模型
构建标准有CORBA,COM/DCOM/EJB
统一过程也叫UP
软件开发模型-敏捷开发方法
xp极限编程
在一些对于费用控制严格的公司使用,被认为是非常有效的
cockburn的水晶系列方法
用最少的几率约束仍然能够成功的方法,也就是说虽然水晶系列不如XP那样的产出效率,但是会有更多的人能够接受并遵循它
开放式源码
程序开发人员在地域上分布很广 突出特点就是查错排障的高度并行性
SCRUM
FDD
在FDD中一个迭代周期一般是两周 开发人员分两类,首席程序员和“类”程序员(class owner)首席是协调者经验丰富,类程序员主要是源码编写
ASD方法
核心是三个非线性的重叠的开发阶段 猜测,合作与学习
需求工程
软件需求是指用户对系统在功能,行为,性能,设计约束等方面的期望。 软件需求是指用户解决问题或者达到目标所需的条件或能力,是系统或系统部件要满足合同,标准,规范或者其他正式规定文档所需具有的条件或能力,以及反映这些条件的或能力的文档说明
需求开发
需求获取
需求分类
业务需求
用户需求
系统需求
性能需求
设计约束
基本需求
期望需求
兴奋需求
获取方法
搜集资料
联合讨论会
用户访谈
现场观摩
参加业务实践
阅读历史文档
抽样调查
需求分析
SA
功能模型 DFD分层数据流图 1数据流 2加工 3数据存储 4外部实体 行为模型 数据模型 ER图
OOA
面向对象的分析 UML统一建模语言 UML+4+1视图 用例图,类图 用例图描述一组用例,参与者及他们之间的关系。
需求定义
严格定义法
原型法
需求验证
需求评审
需求测试
需求管理
定义需求基线
变更控制
变更申请 评估 决策 实施 变更验证 沟通存档 CCB决定是否变更
版本控制
需求跟踪
需求状态跟踪
系统设计
人机界面设计
结构化设计
概要设计
详细设计
面向对象设计
单一职责原则:设计摸底单一的类
开放-封闭原则:对扩展开放,对修改封闭
李氏替换原则:子类可以替换父类
依赖导致原则:要依赖于抽象,而不是具体的实现;针对接口编程,不要针对实现编程
接口隔离原则:使用多个专门的接口比使用单一的总接口要好
组合重用原则:要尽量的使用组合,而不是继承关系达到重用的目的。
迪米特原则(最少只是法则):一个对象应该对其他对象有尽可能少的了解。
设计模式的概念
架构模式
软件设计中的高层决策,如C/S结构就属于架构模式,加购模式反应了开发软件系统过程中所做的基本设计决策
设计模式
主要关注软件系统的设计,与具体的实现语言无关
惯用法
是最底层的模式,关注软件系统的设计与实现。编程语言都有它自己的特定的模式。比如引-计数就是c++语言的一种惯用法,
设计模式的分类
创建型模式:创建对象
工厂方法(factory method)模式
抽象工厂模式(abstract factory)
原型模式(prototype)
单例模式(singleton)
构建器模式(builder)
结构型模式:更大的结构
适配器模式(adapter)
桥接模式(bridge)
组合模式(composite)
装饰模式(decorator)
外观模式(facade)
享元模式(flyweight)
代理模式(proxy)
行为型模式:交互及职责分配
职责链模式(chain of responsibility)
命令模式(command)
解释器模式(interpreter)
迭代器模式(iterator)
中介者模式(mediator)
备忘录模式(memento)
观察者模式(observer)
状态模式(state)
策略模式(strategy)
模板方法(template method)
访问者模式(visitor)
软件测试
测试类型
动态测试
黑盒测试
白盒测试
灰盒测试
静态测试
桌前检查
代码审查
代码走查
测试阶段
单元测试:模块测试,模块功能,性能,接口
集成测试:模块间的接口
确认测试:验证软件与需求的一致性
系统测试:真实环境下,验证完整的软件配置项能否和系统正确连接
回归测试:测试软件变更后变更部分的正确性对变更需求的符合性
冒烟测试
面向对象的测试
算法层(单元测试)
类层(模块测试)
模板层(集成测试)
系统层
软件调试
软件调试的方法
蛮力法
回溯法
原因排除法
系统运行与维护
可维护性
易分析性
易改变性
稳定性
易测试性
维护类型
改正性维护(25%)
适应性维护(20%)
预防性维护(5%)
完善性维护(50%)
系统安全分析与设计
安全基础技术
对称加密与非对称加密
对称加密
缺陷 加密强度不够,但是效率比较高 密钥分发困难 常见的对称秘钥加密算法 DES 替换+移位 56位秘钥,64位数据库,速度快秘钥易产生 3DES:两个56位密钥K1,K2 加密:K1加密->K2解密->K1加密 解密:K1解密->K2加密密->K1解密密 RC-5 RSA数据安全公司的很多产品都用了RC-5 IDEA算法 128位密钥,64位数据块,比DES加密性好,对计算机功能要求相对低,PGP
非对称加密
RSA:512位(或1024位)密钥,计算量极大,难破解 ECC:椭圆曲线算法 缺陷:加密速度慢 公钥加密私钥解密
数字签名
信息摘要
常用的信息摘要算法有MD5,SHA等 市场上广泛使用的MD5,SHA算法的散列值分别为128位和160位。由于SHA通常采用的密钥长度比较长。因此安全性高于MD5
PKI公钥体系
CA(数字证书的颁发机构)
RA(身份审核的机构)
证书受理点(负责接收业务请求)
密钥管理中心-KMC
网络安全
安全协议
防火墙
入侵检测
各个网络安全层次的安全保障
应用层
表示层
会话层
传输层
网络层
数据链路层
物理层
网络威胁与攻击
被动攻击(搜集信息为主,破坏保密性)
窃听(网络窃听)
业务流分析
非法登录
主动攻击(中断,篡改,伪造)
假冒身份
抵赖
旁路控制
重放攻击
拒绝服务(DOS)
计算机病毒与木马
安全保护等级
用户自主保护级
系统审计保护级
安全标记保护级
结构化保护级
访问验证保护级
信息安全体系结构
鉴别服务
用户名加口令 数字证书 生物特征识别
访问控制
自助访问控制DAC 访问控制列表ACL 强制访问控制(MAC) 基于角色的访问控制RBAC 基于任务的访问控制(TBAC)
数据完整性
数据保密性
通过禁止访问提供机密性 通过加密提供机密性
抗抵赖(数字签名)
项目管理
范围管理
范围计划编制
范围定义
产品范围
工作范围
创建WBS
WBS
WBS字典
范围确认
范围控制
时间管理
活动定义
活动排序
活动资源估算
活动历时估算
专家判断法
三点估算法
功能点估算法
自上而下的估算
自下而上的估算
制定进度计划
进度控制
是否为关键活动
偏差是否大于总时差
偏差是否大于自由时差
赶工
快速跟进
前导图法(单代号网络图PDM)
关键路径法
自由时差
成本管理
成本估算
成本预算
成本控制
挣值管理
软件质量管理
质量保证(质量审计和过程分析)
CMMI(软件过程改进)
质量控制
软件配置管理
配置项
配置库
开发库
受控库
产品库
变更控制
风险管理
风险的概念(基本属性:随机性和相对性)
项目风险
技术风险
商业风险
软件架构设计
软件架构的概念
软件架构的基本要素
构件
连接件
配置
软件架构建模
结构模型
框架模型
动态模型
过程模型
功能模型
4+1视图
软件架构风格
数据流风格
批处理序列,管道-过滤器
1批处理序列 数据必须是完整的,以整体的方式传递 2管道-过滤器 早期编译器就是用的这种架构,要一步一步处理的,均可考虑采用此架构风格。 用户交互比较差
调用/返回风格
主程序/子程序,面向对象、层次结构
独立构件风格
进程通信,事件驱动系统(隐式调用)
虚拟机风格
解释器,基于规则的系统
仓库风格
数据库系统,超文本系统,黑板系统
RIA富互联网应用
基于服务的架构SOA
ESB
关键技术REST
微服务
小,且专注于做一件事 轻量级的通信机制 松耦合,独立部署
优势
技术异构性
弹性
扩展
简化部署
与结织结构相匹配
可组合性
对可替代性的优化
面临的挑战
分布式系统的复杂度
运维成本
部署自动化
服务间依赖测试
服务间依赖管理
架构描述语言ADL
特定领域软件架构DSSA
领域分析
领域设计
领域实现
基于架构的软件开发方法
开发过程
架构需求 架构涉及 架构文档化 架构复审 架构实现 架构演化
软件质量属性
性能
可靠性
可用性
安全性
功能性
可变性
互操作性
软件架构评估
几个点
风险点
敏感点
权衡点
ATAM
质量效用树
SAAM
软件产品线
基本概念
过程模型
双生命周期模型
建立方式
将现有产品演化为产品线
用软件产品线替代现有产品集
全新软件产品线的演化
全新软件产品线的开发
组织结构
设立独立的核心资源小组
不设立独立的核心资源小组
动态的组织结构
对该领域具备长期和深厚的经验
一个用于构建产品的好的核心资源库
好的产品线架构
好的管理(软件资源,人员组织,过程)支持
中间件技术
概念
中间件是一种独立的系统软件或服务程序,可以帮助分布式应用软件在不同的技术之间共享资源
中间件技术
corba公共对象请求代理体系结构
J2EE
.NET
web架构设计
从架构来看
从缓存来看
从并发分流来看
从数据库来看
从持久化来看
从分布式存储来看
从数据编码来看
从web应用服务器来看
其他
计算机组成与体系结构
Flynn分类法
单指令流单数据流SISD
单指令流多数据流SIMD
多指令流单数据流MISD
多指令流多数据流MIMD
CISC与RISC
CISC(复杂)
RISC(精简)
存储系统
层次化存储结构
寄存器
cache
cache功能,提高cpu数据输入输出的速率,突破冯诺依曼瓶颈,即cpu与存储系统间数据传送带宽限制。 在计算机存储系统体系中,cache是访问速度最快的层次 使用cache改善系统性能的依据是程序的局部性原理。
内存(主存)
分类
随机存储器(断电内容会丢失)
DRAM
SRAM
只读存储器
MROM(掩模式ROM)
PROM(一次可编程ROM)
EPROM(可擦除的Prom)
闪速存储器flash
外存(辅存)
局部性原理
时间局部性
指程序中的某条指令一旦执行,不久后该指令可能再次执行。典型原因是由于程序中存在着大量的循环操作。
空间局部性
指一旦程序访问了某个存储单元,不久以后,其附近的存储单元也将被访问,即程序在一段时间内所访问的地址可能集中在一定的范围内,其典型情况是程序顺序执行。
工作集理论
工作集是进程运行时被频繁访问的页面集合
嵌入式系统
嵌入式系统开发设计
交叉开发环境
嵌入式系统初始化过程
片级初始化
板级初始化
系统初始化
总线
数据总线
在cpu与ram之间来回传送需要处理或是需要存储的数据
地址总线
用来指定在RAM之中存储的数据的地址
控制总线
将未处理器控制单元的信号传送到周边设备一般常见的为USB bus和1394Bus
Subtopic 4
Subtopic 5
系统配置与性能评价
性能指标
阿姆达尔解决方案
性能评价方法
时钟频率法
指令执行速度法
等效指令速度法
数据处理速率法
综合理论性能法
基准程序法
系统可靠性分析与设计
可靠性相关基本概念
系统可靠性
系统在规定时间内及规定的环境条件下,完成规定功能的能力,也就是系统无故障运行的概率
系统可用性
系统可用性是指在某个给定时间点上系统能改按照需求执行的概率
系统可靠性分析
软件可靠性设计
避错技术
容错技术
冗余
结构冗余(硬件冗余,软件冗余) 信息冗余(校验码) 时间冗余(重复多次进行相同的计算)
N版本程序设计(静态冗余)
恢复快设计(动态冗余)
防卫式程序设计
检错技术
出错后报警,人工处理,成本较低
降低复杂度设计
双机容错
集群技术
操作系统
概述
进程管理
进程的状态
前趋图
信号量与PV操作
临界资源
临界区
信号量
死锁与银行家算法
死锁的四大条件
互斥
保持和等待
不剥夺
环路等待
死锁的预防
打破四大条件
死锁的避免
有序资源分配法
银行家算法
存储管理
段页式存储
页式存储 优点:利用率高,碎片小,分配管理简单 缺点:增加了系统开销,可能产生抖动现象。 段式存储 优点:多道程序共享内存,各段程序修改互不影响 缺点:内存利用率低,内存碎片浪费大。
快表cache中
慢表内存中
页面置换算法
文件管理
绝对路径与相对路径
索引文件
位示图
作业管理
设备管理
虚设备与SPOOLING技术
数据传输控制方式
程序查询方式
程序中断方式
DMA方式
通道方式
I/O处理机
微内核操作系统
嵌入式操作系统
数据库系统
数据库模式
三级模式两层映射(分层架构)
外模式(视图)
概念模式(基本表)
内模式(物理文件)
ER模型
需求分析
抽象数据
设计局部ER模型
合并局部模型消除冲突
重构优化消除冗余
逻辑设计
关系代数
并
交
差
笛卡尔积
投影
选择
联接
元组验算
规范化理论(必考)
非规范化的关系模式存在的问题
数据冗余
更新异常
插入异常
删除异常
函数依赖
部分函数依赖
传递函数依赖
键
候选键
主键
外键
主属性
非主属性
第一范式
第二范式
第三范式
消除非主属性对候选键的部分依赖
BC范式
消除主属性对候选键的部分和传递依赖
无损分解
有损 不能还原 无损 可以还原 保持函数依赖分解
反规范化
由于规范化会使边傲不断的拆分,从而导致数据表过多,这样虽然减少了数据冗余。提高了增删改的速度,但是会增加查询的工作量。系统需要进行多次连接,才能进行查询操作。使得系统的效率大大下降。 技术手段 增加派生性冗余列 增加冗余列 重新组表 分割表
并发控制
事务
原子性
一致性
隔离性
持续性
并发产生的问题
丢失更新
不可重复读问题
脏数据的读出
封锁协议
x封锁
S封锁
一级封锁协议
二级封锁协议
三级封锁协议
两段锁协议
死锁
预防
死锁的解除
数据库完整性约束
实体完整性约束
主键的设定唯一性,非空
参照完整性约束
外键关系,外键要能查到,或为空
用户自定义完整性约束
触发器
比如要限定工资,超过多少就给触发
分布式数据库
数据仓库与数据挖掘
Nosql
键值
列存储数据库
文档型数据库
图形数据库
内存数据库
计算机网络
TCP/IP协议族
ipv6地址长度128位
网络规划与设计
逻辑网络设计
逻辑网络设计图
ip地址方案
安全方案
招聘和培训网络员工的具体说明
对软硬件、服务、员工和培训的费用初步估计
物理网络设计
网络物理结构图和布线方案
设备和部件的详细列表清单
软硬件和部件的详细列表清单
软硬件和安装费用的估算
安装日程表,详细说明服务的时间及期限
安装后的测试计划
用户的培训计划
分层设计
接入层
用户接入,计费管理,MAC地址认证,搜集用户信息
汇聚层
汇聚层:网络访问策略控制,数据包处理,过滤,寻址
核心层
核心层,高速数据交换,常用冗余机制
网络接入
有线接入
无线接入
网络存储
直连式存储DAS
网络附加存储NAS
存储区域网络SAN
IPSAN(iSCSI)
Raid
Raid0(条块化)性能最高,并行处理,无冗余,损坏无法恢复
Raid1镜像结构;可用性可修复性好,仅有50%利用率
Raid0+1(Raid10)Raid0与Raid1长处的结合,高效可靠
Raid3(奇偶校验并行传送)N+1模式,有固定的校验盘,坏一个盘可以恢复
Raid5(分布式奇偶校验的独立磁盘)N+1模式,无固定的校验盘,坏一个盘可以恢复
Raid6(两种存储的奇偶校验)N+2模式,无固定的校验盘,坏两个盘可以恢复
综合布线
物联网
云计算
知识产权与标准化
保护范围与对象
保护期限
知识产权人确定
侵权判断
标准的分类
标准代号的识别
数学与经济管理
图论应用
最小生成树
最短路径
网络与最大流量
运筹方法
线性规划
动态规划
转移矩阵
排队论
数学建模