软考高级系统架构
报名
机考收费调整
自2023年下半年起,全国计算机软件资格考试各级别、各资格、各科目考试方式均由纸质笔试改革为计算计化考试(机考),考试时间为11月4日、5日。
收费标准:考试(机考)收费标准按浙价费〔2010〕258号文件规定,初、中级资格考试每人200元,高级资格考试每人300元。
之前高级收费为210元
知识占比
雨露均沾 需要标记吗🌟
综合知识 75道选择题,共75分
科目 | 占比 | |
---|---|---|
1 | 计算机组成原理与体系结构 | 2.7%-5.3% |
2 | 系统配置与性能评价 | 0-2.7% |
3 | 操作系统 | 8%-10.7% |
4 | 计算机网络 | 4%-8% |
5 | 数据库系统 | 5.3%-12% |
6 | 企业信息化战略与实施 | 4%-10.7% |
7 | 软件工程 | 16%-24% |
8 | 项目管理 | 0-5.3% |
9 | 软件架构设计 | 29.3%-37.3% |
10 | 系统安全性与保密性设计 | 2.70% |
11 | 法律法规与标准化 | 4% |
12 | 数学与经济管理 | 2.70% |
13 | 专业英语 | 6.67% |
计算机组成原理与体系结构
Flynn分类法
体系结构类型 | 结构 | 关键特性 | 代表 |
---|---|---|---|
SISD单指令流单数据流 | 控制部分:一个 处理器:一个 主存模块:一个 | 单处理器系统 | |
SIMD单指令流多数据流 | 控制部分:一个 处理器:多个 主存模块:多个 | 并行处理机、阵列处理机、超级向量处理机 | |
MISD多指令流多数据流 | 控制部分:多个 处理器:一个 主存模块:多个 | 不实际 | 目前没有,文献中有 |
MIMD多指令多数据流 | 控制部分:多个 处理器:多个 主存模块:多个 | 多处理机系统、多计算机 |
CISC与RISC
- CISC:复杂指令集计算机 Complex Instrcution Set Computers
- RISC:精简指令集计算机 Reduced Instruction Set Computers
指令系统类型 | 指令 | 寻址方式 | 实现方式 | 其他 |
---|---|---|---|---|
CISC-复杂 | 数量多,使用频率差别大,可变长格式 | 支持多种 | 微程序控制技术 | 研制周期长 |
RISC-精简 | 数量少,使用频率接近,定长格式,大部分为单周期指令,操作寄存器,只有Load/Store操作内存 | 支持方式少 | 增加了通用寄存器;应不限逻辑控制为主;适合采用流水线 | 优化编译,有效支持多种语言 |
存储系统
重点为磁盘调度算法,存储单元
冯·诺依曼结构
一种将程序指令存储器和数据存储器合并在一起的存储器结构。
- 一般用于PC处理器,如i3、i5、i7处理器
- 指令与数据存储器合并在一起
- 指令与数据都通过相同的数据总线传输
哈佛结构
一种将程序指令存储和数据存储分开的存储器结构。
- 一般用于嵌入式系统处理器DSP(数据信号处理)
- 指令与数据分开存储,可以并行读取,有较高数据的吞吐率
- 有4条总线:指令和数据的数据总线与地址总线
层次化存储结构
- 快->慢:CPU寄存器、Cache、内存(主存)、外存(辅存)
- 局部性原理:访问数据有局部性原理,故可以使用层次化存储结构。
存储器分类
随机存取存储器RAM-Random Access Memory: DRAM-动态存储器 SRAM-静态存储器
只读存储器ROM-Read-Only Memory: MROM PROM EPRROM 闪速存储器
存储单元指的一行的小单元格
编址地址可以按字,也可以按字节8bit
存储单元个数=大地址-小地址+1
总容量=存储单元个数*编址内容
总容量=单元芯片容量*芯片个数
磁盘结构与参数
存取时间=寻道时间+等待时间(平均定位时间+转动延迟)
磁盘调度算法
- FCFS
- SSTF最短寻道时间优先/最短移臂
流水线技术
相关计算:流水线执行时间计算、流水线吞吐率、流水线加速比、流水线效率
流水线
流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各种部件同时处理是针对不同指令而言的,它们可以同时为多条指令的不同部分进行工作,以提高各部件的利用率和指令的平均执行速度。
-->取指-->分析-->执行
流水线的吞吐率是指单位时间内流水线所完成的任务数量或输出的结果数量。最大吞吐量是极限值。
加速比=不使用流水线执行时间/使用流水线执行时间
总线
一条总线同一时刻仅允许一个设备发送,单允许多个设备接受。
- 数据总线
- 地址总线
- 控制总线
嵌入式系统
芯片
- DSP:数字信号处理器,是一种特别适用于进行数字信号处理运算的微处理器。
- Soc:片上系统,是一种有专用目标的集成电路。
- MPU:微机中的中央处理器。构成微机的核心部件。
- MCU:微控制单元,又称单片机/
嵌入式系统初始化过程
- 片级初始化:完成嵌入式微处理器的初始化。
- 板级初始化:完成嵌入式微处理器以外的其他硬件设备的初始化。
- 系统初始化:以软件初始化为主,主要进行操作系统的初始化。
校验码
校验方法
- 奇偶校验码:奇偶校验,可检查1位的错误,不可纠错
- 循环冗余校验:在k位信息码之后拼接r位校验码
- 海明校验码:可检错,也可纠错。记住位数即可。
性能指标
- 字长与数据通路宽度
- 主存容量与存取速度
- 运算速度
- 吞吐量与吞吐率
- 响应时间
- 与完成时间
- 兼容性
阿姆达尔解决方案
可使用估算法,将整个系统时间设置为10s。
性能评价方法
- 时钟频率法
- 指令执行速度法
- 等效指令速度法
- 数据处理速率法
- 综合理论性能法
- 基准程序法
操作系统
进程管理
PV操作
进程的状态
- 就绪-运行-阻塞。阻塞态不能直接到运行态。运行态不能直接到就绪态
- 首先考虑非CPU资源
前趋图
- TODO
信号量与PV操作
- 互斥:会存在一个共享使用的资源,但是某一时刻只能一个进程使用,临界资源的互斥访问
- 同步:速度有差异,在一定情况停下等待。
生产者和消费者就是典型的协同现象。
银行家算法
- 当一个进程对资源的最大需求量不超过系统中的资源数时可以接纳该进程。
- 进程可以分期请求资源,但请求的总数不能超过最大需求量
- 当系统现有的资源不能满足进程尚需资源数时,对进程的请求可以推迟分配,但总能使进程在有限的时间里得到资源
存储管理
- CPU->Cache->内存->外存
- 用的时候通过局部性原理支撑,将外存内容调到内存,统称虚拟化存储
- 页式存储/段式存储/段页式存储
页式存储组织
- 优点:利用率高,碎片小,分配及管理简单
- 缺点:增加了系统开销;可能产生抖动现象
- 逻辑地址=页号+页内地址
- 物理地址=页帧号+页内地址(物理块号又称为页帧块)
- 优先淘汰访问位为0,其次考虑修改位为0
段式存储组织
- 按用户作业中的自然段来划分逻辑空间,然后调入内存,段段长度可以不一样。
- 优点:多道程序共享内存,各段程序修改互不影响。
- 缺点:内存利用率低,内存碎片浪费大。
- 逻辑地址:(段号,段内偏移量)
段页式存储组织
- 段式与页式的综合体,先分段,再分页。
- 优点:空间浪费小、存储共享容易、存储保护容易、能动态连接
- 缺点:由于管理软件的增加,复杂性和开销也随之增加,需要的硬件以及占用的内容也有所增加,使得执行速度大大下降
快表
- 将页表存于Cache上叫快表
- 将页表存于内存上叫慢表
文件管理
文件管理的是外存里的文件。
索引文件
- 索引可以理解为指针、地址、盘块号
文件和树型目录结构
- 文件属性:R只读文件属性 / A存档属性 / S系统文件 / H隐藏文件
- 文件名的组成:驱动器号+路径+主文件名+扩展名
- 绝对路径:是从盘符开始的路径
- 相对路径:是从当前目录开始的路径
空闲存储空间的管理
- 文件管理:空闲区表法、空闲链表法、位示图法 成组链接法
作业管理
试卷中从未出现过
设备管理
数据传输控制方式
- 程序控制方式:严重影响CPU。分为无条件传送和程序查询方式。
- 程序中断方式:CPU无需等待而提高了传输请求的响应速度。
- DMA方式:DMA方式比程序控制方式与中断方式都高效。
- 通道方式
- I/O处理机
虚设备与SPOOLING技术
- 假脱机技术,没有真正实现脱机打印
微内核操作系统
单体内核——将图形、设备驱动及文件系统等功能全部在内核中实现,运行在内核状态和统一地址空间。
微内核——是实现基本功能,将图形系统、文件系统、设备驱动及通信功能放在内核之外。
嵌入式操作系统
嵌入式操作系统特点
- 1.微型化 2.代码质量高 3.专业化 4.实时性强 5.可裁剪、可配置
- 实时嵌入式操作系统的内核服务有:异常和中断、计时器、I/O管理
- 常见的嵌入式RTOS:VxWorks、RT-Linux、QNX、pSOS
数据库
数据库模式
三级模式-两层映射
- 外模式(视图、用户模式、用户视图)->概念模式(DBA视图)->内模式(内部试图)
- 外模式-概念模式映射 概念模式-内模式映射
视图
- 数据库试图是一个虚拟表,其内容由查询定义。但是试图并没有真正存储这些数据,而是通过查询原始表动态生成所需要的数据
- 优点:能简化用户操作、使用户能以多角度看待同一数据
- 缺点:查询之后再展示效率比较低
数据库设计过程
- 需求分析(数据流图、数据字典、需求说明书)
- 概念结构设计(ER模型)
- 逻辑结构设计(关系模式)
- 物理设计
ER模型
关键
- 属性
- 实体
- 联系
关系代数
关系代数运算
- 并
- 交
- 差
- 笛卡尔积
- 投影
- 选择
- 自然连接
规范化理论
价值与用途
- 非规范化的关系模式:数据冗余、更新异常、插入异常、删除异常
函数依赖
- 部分函数依赖:多个元素的主键才有部分函数依赖
- 传递依赖
键
- 候选键
- 主键:唯一标识元组的属性集合
- 外键:其他关系的主键
范式
- 1NF:属性值都是不可分的原子值
- 2NF:消除非主属性对候选键的部分依赖
- 3NF:消除非主属性对候选键的传值依赖
- BCNF:消除主属性对候选键的部分和传递依赖,左侧决定因素必须包括候选码
无损分解
- 保持函数依赖分解
- 无损分解
反规范化
- 由于规范化会使得表不断的拆分,从而导致数据表过多,会增加查询的工作量。
- 技术手段:增加派生性冗余列、增加冗余列、重新组表、分割表(水平分割、垂直分割)
并发控制
事务的特性
- 原子性
- 一致性
- 隔离型
- 持续性
并发产生的问题
- 丢失更新
- 不可重复读
- 脏数据
封锁协议
- S锁:读锁、共享锁
- X锁:写锁、排他锁、独占锁
- 一级封锁协议:事务T在修改数据R前必须先对其加X锁,直到事务结束才释放。可防止丢失修改。
- 二级封锁协议:一级封锁协议加上事务T在读取数据R之前先对其加S锁,读完后即可释放S锁。可防止丢失修改,还可防止读脏数据。
- 三级封锁协议:一级封锁协议加上事务T在读取数据R之前先对其加S锁,直到事务结束才释放。可防止丢失修改,还可防止读脏数据、防止数据重复读。
- 两段锁协议:可串行化、可能发生死锁。
数据库完整性约束
约束
- 实体完整性约束:主键唯一且为空
- 参照完整性约束:外键,其他关键的主键,或者为空
- 用户自定义完整性约束
- 针对复杂的约束,系统提供了触发器机制,通过用户编程实现。
数据库安全性
- 用户标识与坚定
- 存取控制
- 密码存储和传输
- 视图的保护
- 审计
数据备份
- 冷备份:数据库在停止状态下,将数据库的文件全部备份下来
- 热备份:数据库在运行状态下,将数据库的文件全部备份下来
- 完全备份:备份所有数据
- 差量备份:仅备份上一次完全备份之后变化的数据
- 增量备份:备份上一次备份之后变化的数据
- 影子拷贝:该策略假设在某一个时刻只有一个活动的事务,首先对数据库做副本(称为影子副本),并在磁盘上维护一个dp_pointer指针,指向数据库的当前副本。对于要执行写操作的数据项,数据库系统在磁盘上维护数据库的一个副本,所有的写操作都在数据库副本上执行,而保持原始数据库不变,如果在任一时刻操作不得不中止,系统仅需要删除新副本,原数据库副本没有受到任何影响。
- 基于日志的延迟修改技术(deferred-modification technique)的设计与恢复过程。该技术通过在日志中记录所有对数据库的修改操作,将一个事务的所有写操作延迟到事务提交后才执行,日志中需要记录“事务开始”和“事务提交”时间,还需要记录数据项被事务修改后的新值,无需记录数据项被事务修改前的原始值。当系统发生故障时,如果某个事务已经开始,但没有提交,则该事务对数据项的修改尚未体现在数据库中,因此无需做任何恢复动作。
分布式数据库
分片透明性
- 分片透明性
- 位置透明性
- 局部数据模型透明性
分布式数据库管理系统DDBMS-组成
- LDBMS(局部数据库管理系统)
- GDBMS(全局数据库管理系统)
- 全局数据字典
- 通信管理Cm
分布式数据库管理系统-结构
- 全局控制集中的DDBMS
- 全局控制分散的DDBMS
- 全局控制部分分散的DDBMS
关系数据库与NoSQL数据库对比
-- | 关系数据库模式 | -- |
---|---|---|
并发支持 | 支持并发、效率低 | 并发性能高 |
存储与查询 | 关系表方式存储、SQL查询 | 海量数据存储、查询效率高 |
扩展方式 | 向上扩展 | 向外扩展 |
索引方式 | B树、哈希等 | 键值索引 |
应用领域 | 面向通用领域 | 特定应用领域 |
NoSQL
类型 | eg |
---|---|
键值 | redis |
列存储数据库 | HBase |
文档型数据库 | MongoDB |
图形数据库 | Neo4j |
数据仓库与数据挖掘
计算机网络
TCP/IP协议族
DHCP与DNS
- DHCP:动态主机配置协议
- DNS:域名系统。主机向本地域名服务器的查询采用递归查询(正确答案)。本地域名服务器向根域名服务器的查询通过采用迭代查询(线索)。
TCP与UDP
- TCP:可靠的传输协议
- UDP:不可靠的传输协议
网络规划与设计
网络规划原则
- 实用性原则
- 开发性原则
- 先进性原则
网络设计任务
- 确定网络总体目标
- 确定总统设计原则
- 通信子网设计
- 资源子网设计
- 设备选型
- 网络操作系统与服务器资源设备
- 网络安全设计
网络实施原则
- 可靠性原则
- 安全性原则
- 高效性原则
- 可扩展性原则
网络实施步骤
- 工程实施计划
- 网络设备到货验收
- 设备安装
- 系统测试
- 系统试运行
- 用户培训
- 系统转换
网络规划与设计阶段
- 需求规范
- 通信规范
- 逻辑网络设计🌟
- 物理网络设计🌟
- 实施阶段
逻辑设计与物理设计
- 逻辑网络设计阶段:拓扑结构、网络地址分配、安全规划、网络管理、选择路由协议、设备命名规范
- 物理网络设计阶段:设备的具体物理分布、运行环境等确定、设备选型、结构化布线、机房设计
- 逻辑网络设计阶段输出:逻辑网络设计图、IP地址方案、安全方案、招聘和培训网络员工的具体说明、对软硬件、服务、员工和培训费用初步估计
- 物理网络设计阶段输出:网络物理结构图和布线方案、设备和部件的详细列表清单、软硬件和安装费用的估算、安装日程表、详细说明服务的时间以及期限、安装后的测试计划、用户的培训计划
分层设计
- 接入层:用户接入、计费管理、MAC地址认证、收集用户信息
- 汇聚层:网络访问策略控制、数据包处理、过滤、寻址
- 核心层:高速数据交换、常用冗余机制。在设计核心层设备的功能时,应尽量避免使用数据包过滤、策略路由等降低数 据包转发处理的特性,以优化核心层获得低延迟和良好的可管理性。
网络接入
有线接入
- 公用交换电话网络PSTN
- 数字数据网DDN
- 综合业务数字网ISDN
- 非对称数字用户线路ADSL
- 同轴光纤技术HFC
无线接入
- IEEE 802.11(WIFI)
- IEEE 802.15(蓝牙)
- 红外
- WAPI网络存储
网络存储技术
存储分类
- 直连式存储DAS
- 网络附加存储NAS
- 存储区域网络SAN
- IPSAN
Raid
- Raid0:条块化。性能最高,并行处理,无冗余,损坏无法恢复
- Raid1:镜像结构。可用性,可修复性好,仅有50%利用率
- Raid0+1:高效也可靠
- Raid3:奇偶校验并行传送。N+1模式,有固定的校验盘,坏一个盘可恢复
- Raid5:分布式奇偶校验的独立磁盘。N+1模式,无固定的校验盘,坏一个盘可恢复
- Raid6:两种存储的奇偶校验。N+2模式,无固定的校验盘,坏两个盘可恢复
IPv6
- IPv6长度为128位,地址空间增大了2^96倍
综合布线系统
- 工作区子系统
- 水平干线系统
- 管理间子系统
- 垂直干线子系统
- 设备间子系统
- 建筑群子系统
物联网
二维码
云计算
特点
- 集合了大量计算机、规模达到成千上万
- 多种软硬件技术相结合
- 对客户端设备的要求低
- 规模化效应
企业信息化战略与实施
信息与信息化的概念
企业信息化
企业信息化涉及到对企业管理理念的创新,按照市场发展的要求,对企业现有的管理流程重新整合,管理核心从对 财务和物料 的管理,转向对 技术、物资和人力资源 的管理,并延伸到对企业技术创新、工艺设计、产品设计、生产制造过程的管理,进而还要扩展到对 客户关系和供应链 的管理乃至发展到电子商务。
信息化需求
一般说来,信息化需求包含3个层次,即战略需求、运作需求和技术需求。
- 战略需求。组织信息化的目标是提升组织的竞争能力、为组织的可持续发展提供一个支持环境。从某种意义上来说,信息化对组织不仅仅是服务的手段和实现现有战略的辅助工具;信息化可以把组织战略提升到一个新的水平,为组织带来新的发展契机。特别是对于企业,信息化战略是企业竞争的基础。
- 运作需求。组织信息化的运作需求是组织信息化需求非常重要且关键的一环,它包含三方面的内容:一是实现信息化战略目标的需要;二是运作策略的需要。三是人才培养的需要。
- 技术需求。由于系统开发时间过长等问题在信息技术层面上对系统的完善、升级、集成和整合提出了需求。也有的组织,原来基本上没有大型的信息系统项目,有的也只是一些单机应用,这样的组织的信息化需求,一般是从头开发新的系统。
企业信息化方法
企业信息化方法主要包括业务流程重构、核心业务应用、信息系统建设、主题数据库、资源管理和人力资本投资方法。不包括组织机构变革。
信息系统生命周期
- 立项阶段
- 开发阶段:总体规划、系统分析、系统设计、系统实施、系统验收
- 运维阶段
- 消亡阶段
信息系统战略规划
企业信息化涉及到对企业管理理念的创新,按照市场发展的要求,对企业现有的管理流程重新整合,管理核心从对( )的管理,转向对( )的管理,并延伸到对企业技术创新、工艺设计、产品设计、生产制造过程的管理,进而还要扩展到对( )的管理乃至发展到电子商务。
政府信息化与电子政务
电子政务分类
- 政府对政府
- 政务对企业
- 政府对公民
- 政府对公务员
企业门户
企业门户分类
- 企业信息门户EIP
- 企业信息门户EKP
- 企业应用门户EAP
- 垂直门户
企业应用集成
基于JavaEE平台的基础功能服务构建应用系统时,JDBC、JCA和 Java IDL 可用来集成遗产系统。
共享数据库
共享数据库是一种重要的企业应用集成方式,它通常将应用程序的数据存储在一个共享数据库中,通过制定统一的数据库模式来处理不同应用的集成需求。共享数据库为不同的应用程序提供了统一的数据存储与格式定义,能够在一定程度上缓解数据语义不一致的问题,但无法完全解决该问题。在共享数据库集成中,多个应用程序可能通过共享数据库频繁地读取和修改相同的数据,这会使数据库成为一个性能瓶颈。共享数据库集成方式的一个重要限制来自外部的已封装应用,这些封装好的应用程序只能采用自己定义的数据库模式,调整和集成余地较小。
企业集成模式
- 面向信息的集成
- 面向过程的集成:强调处理不同应用系统之间的交互逻辑,与核心业务逻辑相分离,并通过不同应用系统之间的协作共同完成某项业务功能。
- 面向服务的集成
软件工程
软件开发方法
- 原型法
- 结构化法
- 面向对象方法
- 面向服务的方法
- 形式化方法
- 统一过程方法
- 敏捷方法
- 基于架构的开发方法ABSD
软件开发模型
- 瀑布模型:迭代模型/迭代开发方法
- 演化模型:快速应用开发
- 增量模型:构件组装模型/基于构建的开发方法
- 螺旋模型:统一过程/统一开发方法
- 原型模型:敏捷开发方法
- 喷泉模型:模型驱动的开发方法
- V模型:基于架构的开发方法
敏捷方法4大价值观
沟通、简单、反馈、勇气
敏捷开发方法
- 极限编程XP:
- 水晶方法:
- 开放式编码:
- SCRUM:明确定义了的可重复的方法过程。
- 功用驱动开发方法FDD:编程开发人员分为两类:首席程序员和“类”程序员
- ASD方法:
逆向工程
- 实现级:抽象语法数、符号表、过程
- 结构级:程序分量之间相互依赖关系
- 功能级:程序段功能及程序段
- 领域级:应用领域概念之间对应关系
需求工程
需求开发
- 需求获取
- 需求分析
- 需求定义
- 需求验证
需求管理
- 变更控制
- 版本控制
- 需求跟踪
- 需求状态跟踪
需求分析
- 状态转换图STD
- 数据流图DFD
- 数据模型ER图
- 数据字典
- UML
需求变更管理
- 问题分析和变更描述
- 变更分析和成本计算
- 变更实现
系统设计
软件设计
- 结构设计
- 数据设计
- 接口设计
- 过程设计
结构化设计
- 需求设计:数据流图
- 概要设计:模块结构图、层次图和HIPO图
- 详细设计:程序流程图、伪代码、盒图
面向对象设计-设计原则
- 单一职责原则:设计目的单一的类。
- 开放-封闭原则:对扩展开放,对修改封闭。
- 李氏(Liskov)替换原则:子类可以替换父类。
- 依赖倒置原则:要依赖于抽象,而不是具体实现;针对接口编程,不要针对实现编程。
- 接口隔离原则:使用多个专门的接口比使用单一的总接口要好。
- 组合重用原则:要尽量使用组合,而不是继承关系达到重用目的。
- 迪米特(Demeter)原则(最少知识法则):一个对象应当对其他对象有尽可能少的了解。
面向对象的设计模型包含以包图表示的软件体系结构图,以交互图表示的用例实现图,完整精确的类图,针对复杂对象的状态图和用以描述流程化处理的活动图等。
设计模式-创建型模式
- Factory Method工厂方法模式:
- Abstract Factory抽象工厂模式:
- Builder构建器模式:
- Prototype原型模式:
- Singleton单例模式:
设计模式-结构型模式
- Adapter适配器模式
- Bridge桥接模式
- Composite组合模式
- Decorator装饰模式
- Fecade外观模式
- Flyweight享元模式:对庞大对象的管控。eg:汉字编码、棋牌。
- Proxy代理模式:快捷方式
设计模式-行为型模式
- Chain of Responsibility职责链模式:eg:请假审批
- Command命令模式:eg:日志记录,可撤销
- Interpreter解释器模式:eg:虚拟机
- Iterator迭代器模式:数据集
- Mediator中介者模式:不直接引用
- Menmento备忘录模式:游戏存档
- Observer观察者模式:订阅、广播、联动
- State状态模式:状态变成类
- Strategy策略模式:多方案切换
- Template Method模版方法模式:框架
- Visitor访问者模式:数据与操作分离。在不改变原来类结构(活动节点)的基础上增加新功能。
软件测试
软件测试方法
- 动态测试:计算机运行。黑盒测试、白盒测试、灰盒测试
- 静态测试:纯人工。桌前检查、代码审查、代码走查
测试阶段
- 单元测试
- 集成测试:主要测试各模块之间的接口是否正常起作用。
- 系统测试
- 确认测试
- 回归测试
软件调试
- 蛮力法
- 回溯法
- 原因排除法
系统测试
系统测试是根据系统方案说明书来设计测试用例,常见的系统测试主要有恢复测试、安全性测试、压力测试、性能测试、可靠性测试、可用性测试、可维护性测试和安装测试。
软件运行与软件维护
系统转换计划
- 高水平高价值:改造
- 高水平低价值:集成
- 低水平高价值:继承
- 低水平低价值:淘汰
软件维护
- 正确性维护
- 适应性维护
- 完善性维护
- 预防性维护
项目管理
立项管理
盈亏平衡分析
- 销售额=固定成本+可变成本+税费+利润【正常情况】
- 销售额=固定成本+可变成本+税费【盈亏平衡】
- 可变成本/销售额不变,税费/销售额不变
范围管理
确定项目的边界,即哪些工作是项目应该做的,哪些工作不应该包括在项目中
- 范围计划编制
- 范围定义:项目章程/项目范围管理计划/批准的变更申请/组织过程资产
- 创建WBS:便于估算,明确范围,防止需求蔓延。WBS字典
- 范围确认
- 范围控制
时间管理
时间管理也叫进度管理。
- 活动定义
- 活动排序
- 活动资源估算
- 活动历时估算
- 指定进度计划
- 进度控制
前导图法(单代号网络图,PDM)
- 关键路径的长度=最短工期=最长路径
- 总时差为0的活动为关键活动
- 关键活动组成的路径为关键路径
- 一个项目可以有多条关键路径,但是对项目不好
关键路径法
- 总时差(松弛时间):在不延误
- 自由时差
成本管理
成本估算方法
- 自顶向下的估算
- 自底向上的估算
- 差别估算法
成本预算方法
- 直接成本与间接成本
- 管理储备
- 零基准预算
软件质量管理
质量保证&质量控制
- 质量保证:每隔一段时间进行。工具:质量审计和过程分析
- 质量控制:实时监控项目的具体结果
软件过程改进 CMMI
- 已管理级
- 已定义级
- 定量管理级
- 优化级
软件配置管理
变更控制过程
- 变更申请
- 变更评估
- 变更决策
- 变更实施
- 变更验证
- 沟通存档
软件工具
- 软件开发工具:需求分析工具、设计工具、编码与排错工具
- 软件维护工具:版本控制工具、文档分析工具、开发信息库工具、逆向工程工具、再工程工具
- 软件管理和软件支持工具:项目管理工具、配置管理工具、软件评价工具、软件开发工具的评价和选择
配置项
- 属于产品组成部分的工作成果:如需求文档、设计文档、源代码和测试用例等;
- 属于项目管理和机构支撑过程域产生的文档:如工作计划、项目质量报告和项目跟踪报告等。
软件架构设计
软件架构的概念
架构的本质
- 软件架构为软件系统提供了一个结构、行为和属性的高级抽象。
- 架构架构风格是特定应用领域的惯用模式,架构定义一个词汇表和一组约束
架构的“4+1”视图
- 逻辑视图
- 开发视图
- 进程视图
- 物理视图
软件架构风格
五大架构风格
- 数据流风格:
- 批处理:大量整体数据、无需用户交互
- 管道过滤器:流式数据、弱用户交互
- 调用/返回风格:
- 主程序/子程序
- 面向对象
- 层次结构
- 独立构件风格:
- 进程通信
- 事件驱动系统(隐式调用):windows图形界面、断点回调
- 虚拟机风格:
- 解释器:适用于需要“自定义规则”的场合
- 规则系统:适用于专家系统
- 仓库风格:
- 数据库系统、
- 黑板系统:语音识别、知识推理、模式识别、知识推理
- 超文本系统
其他风格
- 闭环控制架构(过程控制):适合于嵌入式系统,适用于处理简单任务。经验应用:空调控温、定速巡航
- C2风格:构件和连接件都有一个顶部和一个底部
层次架构风格
- 两层C/S --> 三层C/S --> 三层B/S --> 混合架构
- MVC架构风格
- MVP架构风格:MVC的变种
- MVVM
- RIA架构风格
基于服务的架构SOA
- 服务 > 构件 > 对象
- Web Service
- ESB:提供位置透明性的消息路由和寻址服务
架构描述语言ADL
ADL的三个基本元素
- 构件:计算或数据存储单元
- 连接件:用于构件之间交互建模的体系结构构造块及其支配这些交互的规则
- 架构配置:描述体系结构的构建与连接件的连接图
特定领域软件架构DSSA
基本活动
- 领域分析:建立领域模型
- 领域设计:获得DSSA
- 领域实现:开发和组织可复用信息
角色
- 领域专家:专家只提供意见,不干活
- 领域分析人员:有经验的系统分析员
- 领域设计人员:有经验的软件设计人员
- 领域实现人员:有经验的程序设计人员
基于架构的软件开发ABSD
概念
- ABSD方法是架构驱动,即强调由业务、质量和功能需求的组合驱动架构设计
- ABSD有三个基础。1.功能的分解。2.通过选择架构风格来实现质量和业务需求。3.软件模板的使用。
- 采用视角与视图来描述软件架构,采用用例来描述功能需求,采用质量场景来描述质量需求。
- ABSD 方法是一个自顶向下,递归细化的过程,软件系统的架构通过该方法得到细化,直到能产生软件构件的类。
开发过程
- 架构需求
- 架构设计
- 架构文档化:输出结果为架构规则说明和测试架构需求的质量设计说明书这两个文档。
- 架构复审:目的是标识潜在的风险。
- 架构实现
- 架构演化
软件质量属性 & 软件架构评估
质量属性
- 性能:系统的响应能力。增加可用资源/
- 可靠性:
- 可用性:系统能正常运行的时间比例。ping/echo/心跳/主动冗余
- 安全性:审计追踪/身份验证
- 可修改性:信息隐藏
- 功能性
- 可变性
- 互操作性
评估点
- 敏感点:一个或多个构件的特性
- 权衡点:多个质量属性的敏感点
- 风险点
- 非风险点
基于场景的评估方法
- 软件架构分析法SAAM
- 架构权衡分析法ATAM:1.场景和需求收集。2.架构视图和场景实现。3.属性模型构造和分析。4.折中。
- 成本效益分析法CBAM
软件产品线
建立产品线的方式
- 演化方式
- 革命方式
构件与中间件技术
构建的特性
- 独立部署单元
- 作为第三方的组装单元
- 没有(外部的)可见状态
基于中间件技术的优点
- 面向需求
- 业务的分隔和包容性
- 设计与实现隔离
- 隔离复杂的系统资源
- 符合标准的交互模型
- 软件复用
- 提供对应用构件的管理
构件的复用
- 检索与提取构件
- 理解与评论构件
- 修改构件
- 组装构件
构件标准
- COBRA
- COM
- EJB
基于构件的开发模型由软件的需求分析定义、体系结构设计、构件库建立、应用软件构建以及测试和发布 5 个阶段组成。
软件架构文档
软件架构文档的写作应该遵循一定的原则,这些原则包括:
- 文档要从使用者的角度进行编写;必须分发给所有与系统有关的开发人员:
- 应该保持架构文档的即时更新,但更新不要过于频繁:
- 架构文档中描述应该尽量避免不必要的重复;
- 每次架构文档修改都应该记录进行修改的原则。
系统安全分析与设计
安全基础技术
对称与非对称加密
- 对称加密:加密强度不高,但效率高
- 密钥分发困难
常见对称密钥加密算法
- DES:替换+移位。三重DES。
- RC-5
- IDEA
- AES
常见非对称密钥加密算法
- RSA
- Elgamal
- ECC
信息摘要
- 保证信息的完整性
- 单向散列函数、固定长度的散列值
- 常见的信息摘要算法有MD5、SHA等,市场上广泛使用的MD5,SHA算法的散列值分别为128和160位,由于SHA通用采用的密钥长度较长,因此安全性高于MD5
数字签名
- 可以识别发送者身份,防抵赖
数字证书内容
- 证书的版本信息
- 证书的序列号
- 证书所使用的签名算法
- 证书的发行机构名称
- 证书的有效期
- 证书所有人的名称
- 证书所有人的公开密钥
- 证书发行者对证书的签名CA
PKI公钥体系
- CA认证中心
- RA注册审批机构
- 证书受理点
- 密钥管理中心-KMC
网络安全
安全协议
- PGP:优良保密协议。针对邮件和文件的加密系统
- SSL:安全套接字协议。工作在传输层至应用层
- TLS:传输层安全协议。
- SET:安全电子交易协议。电子商务,身份认证
- IPSEC:互联网安全协议。对IP包加密
网络攻击
- 被动攻击:收集信息为主。窃听/业务流分析/非法登陆
- 主动攻击:假冒身份/抵赖/旁路攻击/重放攻击/拒绝服务
等级保护标准
- 用户自主保护级
- 系统审计保护级
- 安全标记保护级
- 结构化保护级
- 访问验证保护级
安全防范体系的层次划分
- 物理环境的安全性:机房安全
- 操作系统的安全性:漏洞补丁管理
- 网络的安全性:入侵检测
- 应用的安全性:数据库安全
- 管理的安全性
系统可靠性分析与设计
可靠性相关概念
- 系统可靠性是系统在规定时间内和规定的环境条件下,完成规定功能的能力,也就是系统无故障运行的概率
- 系统可用性是指在某个时间点上系统能够按照需求执行的概率
系统可靠性分析
- 平均无故障时间
- 平均故障修复时间
- 平均故障间隔时间
- 系统可用性
软件可靠性设计
影响软件可靠性的主要因素
- 软件的开发方法和开发环境
- 运行环境
- 软件规模
- 软件内部结构
- 软件的可靠性投入
可靠性设计技术
- 避错技术
- 降低复杂度设计s
- 检错技术
- 容错技术:N版本程序设计/恢复块设计/防卫式程序设计
法律法规与标准化知识
保护范围与对象
-- | -- | -- |
---|---|---|
著作权法 | 著作权/文学、绘画、摄影等作品 | 不需要申请,作品完成即开始保护 |
软件著作权法 | 软件著作权/软件作品 | 不需要申请,作品完成即开始保护 |
专利法 | 专利权 | 需要申请,专利权有效期是从申请日开始保护 |
商标法 | 商标权 | 需要申请,核准之日起商标受保护 |
反不正当竞争法 | 商业秘密权 | 商业秘密包括技术与经营两个方面。必须有保密措施才能认定商业秘密 |
保护期限
知识产权人确定
侵权判断🌟
标准的分类
- 国际标准:ISO、IEC
- 国家标准:GB-中国、ANSI-美国、BS-英国、JIS-日本
- 区域标准:PASC-太平洋地区标准回忆
- 行业标准:GJF-中国军用标准
- 地方标准:国家的地方一级行政机构制定的标准
- 企业标准
- 项目规范
标准代号的识别
- 国际、国外标准代号:标准代号+专业类号+顺序号+年代号
- 我国国家标准代号:强制性标准代号-GB、推荐性标准代号-GB/T、指导性标准代号-GB。Z、实物标准代号GSB
- 行业标准代号:汉语拼音大写字母组成
- 地方标准代号:由DB加上省级行政区代码的前两位
- 企业标准代号:由Q加上企业代号组成
数学与经济管理
图论应用
做这类题,有一个基本的原则:把多个任务中,第1步耗时最短的安排在最开始执行,再把最后1步耗时最短的安排在最后完成。
最小生成树
- 克鲁斯卡尔算法:最短边
- 普里斯算法:顶点
最短路径
网络与最大流量
运筹方法
关键路径法
线性规划
动态规划
预测与决策
数学建模
专业英语
软件架构重用
软件架构重用是一个解释性、交互式和反复迭代的过程,包括了多项活动。信息提取通过分析系统现有设计和实现工件来构造它的模型。其结果用于在后续活动中构造系统的视图。数据库构建活动把模型中包含的元素和关系转换为数据库中的标准存储格式。视图融合活动包括定义和操作数据库中存储的信息,理顺、加强并建立起元素之间的连接。重构由两个主要活动组成;可视化和交互及模式定义和识别。前者提供了一种让用户操作架构元素的机制,后者则提供了用于架构重构的设施。
Software architecture reconstruction is an interpretive, interactive, and iterative process including many activities. Information extraction involves analyzing a system's existing design and implementation artifacts to construct a model of it. The result is used in the following activities to construct a view of the system. The database construction activity converts the elements and relations contained in the view into a standard format for storage in a database. The view fusion activity involves defining and manipulating the information stored in database to reconcile, augment, and establish connections between the elements. Reconstruction consists of two primary activities: visualization and interaction and pattern definition and recognition. The former provides a mechanism for the user to manipulate architectural elements, and the latter provides facilities for architecture reconstruction.
系统架构是一个系统的一种表示,包含了功能到软硬件构件的映射、软件架构到硬件架构的映射以及对于这些组件人机交互的关注。也就是说,系统架构关注于整个系统,包括硬件、软件和使用者。软件架构结构根据其所展示元素的广义性质,可以被分为三个主要类别。 1)模块结构将决策体现为一组需要被构建或采购的代码或数据单元。 2)构件连接器结构将决策体现为系统如何被结构化为一组具有运行时行为和交互的元素。 3)分配结构将决策体现为系统如何在其环境中关联到非软件结构,如CPU、文件系统、网络、开发团队等。
A system's architecture is a representation of a system in which there is a mapping of functionality onto hardware and software components, a mapping of the software architecture onto the hardware architecture. and a concern for the human interaction with these components. That is, system architecture is concerned with a total system, including hardware. software, and humans. Software architectural structures can be divided into three major categories, depending on the broad nature of the elements they show.1)Module structures embody decisions as a set of code or data units that have to be constructed or procured.2)Component-and-connector structures embody decisions as to how the system is to be structured as set of elements that have runtime behavior and interactions.3)Allocation structures embody decisions as to how the system will relate to non software structures in its environment(such as CPUs, file systems, networks, development teams, etc.).
架构设计的目标是确定应用软件的哪些部分将分配到何种硬件。识别出正在开发系统的主要软件构件并分配到系统将要运行的硬件构件。所有软件系统可分为四项基本功能。第一项是数据存储。大多数信息系统需要数据进行存储并检索,不论是一个小文件,比如一个字处理器产生的一个备忘录,还是一个大型数据库,比如存储一个企业会计记录的数据库。第二项功能是数据访问逻辑,处理过程需要访问数据,这通常是指用SQL进行数据库查询。第三项功能是应用程序逻辑,这些逻辑通过数据流图,用例和功能需求来记录。第四项功能是表示逻辑,给用户显示信息并接收用户命令。一个系统的三类主要硬件构件是客户机、服务器和网络。
The objective of architecture design is to determine what parts of the application software will be assigned to what hardware. The major software components of the system being developed have to be identified and then allocated to the various hardware components on which the system will operate. All software systems can be divided into four basic functions. The first is data storage. Most information systems require data to be stored and retrieved, whether a small file,such as a memo produced by a word processor, or a large database, such as one that stores an organization’s accounting records.The second function is the data access logic, the processing required to access data, which often means database queries in Structured Query Language. The third function is the application logic, which is the logic documented in the DFDs, use cases,and functional requirements.The fourth function is the presentation logic,the display of information to the user and the acceptance of the user’s commands.The three primary hardware components of a system are clients,servers,and network.
案例专题
案例主题1:软件工程
- 需求分析
- 面向对象设计
数据流图DFD答题技巧
- 补充实体
- 补充存储
- 补充数据流
- 补充加工名
UML图
- 静态图(结构图)
- 类图
- 动态图(行为图)
- 用例图
- 顺序图:强调时间顺序
- 通信图:协作图,强调消息收发关系,而不突出时间顺序
- 状态图:状态转换变迁
- 活动图:类似程序流程图,并行行为
UML关系
依赖关系:一个事物发生影响另一个关系
泛化关系:特殊/一般关系
关联关系
- 聚合关系:整体与部门生命周期不通。eg:汽车和轮子
- 组合关系:整体与部分生命周期相同。eg:公司和部门
实现关系:接口与类的关系
类的三种类型&每种类型的主要职责
- 实体类
- 控制类
- 边界类
案例主题2:架构设计
- 软件架构风格
- 质量属性与架构评估
- Web架构综合考查
软件架构风格
- 数据流风格:
- 批处理:大量整体数据、无需用户交互
- 管道过滤器:流式数据、弱用户交互
- 调用/返回风格:
- 主程序/子程序
- 面向对象
- 层次结构
- 独立构件风格:
- 进程通信
- 事件驱动系统(隐式调用):windows图形界面、断点回调
- 虚拟机风格:
- 解释器:适用于需要“自定义规则”的场合
- 规则系统:适用于专家系统
- 仓库风格:
- 数据库系统、
- 黑板系统:语音识别、知识推理、模式识别、知识推理
- 超文本系统
质量属性
- 性能
- 可用性
- 可修改性
- 安全性
架构评估
- 敏感点
- 权衡点
- 风险点
- 非风险
负载均衡
- 硬件:F5
- 软件:LVS、Nginx、HAproxy
session共享机制
- 携带session的cookie
- 服务器同步session
- 将session存入redis
有状态与无状态
- 无状态是指对单次请求对处理,不依赖其他请求
- 有状态是指自身保存一些数据
web相关技术
- 持久化技术-ORM:Hibernate、Mybatis、
- 数据库主从分离:主库写、从库写、一主多从
- 常用缓存:MemCache、Redis、Squid
- Redis集群分片方式:客户端分片、中间件实现分片、客户端服务端协作分片
- Redis分布式存储方式:主从模式、哨兵模式、集群模式
- Redis数据分片方案:范围分片、哈希分片、一致性哈希分片
- Redis持久化技术:RDB-快照思想、AOF-日志思想
- Redis常用问题:缓存雪崩、缓存穿透、缓存预热
案例主题3:数据库设计
- 规范化与反规范化
- 分布式数据库
- NoSQL
- 内存数据库
- 其他数据库扩展知识
视图的优点
- 视图能简化用户的操作
- 视图机制可以使用户以不同的方式查询同一数据
- 视图对数据库重构提供了一定程度的逻辑独立性
- 视图可以对机密的数据提供安全保护
反规范化
反规范化优点:提高统计、查询效率
反规范化缺点:增加了数据冗余,浪费存储空间,增、删、改操作的效率降低,可能导致数据不一致,可能产生添加、修改、删除异常
- 增加派生性冗余列
- 增加冗余列
- 重新组表
- 分割表
案例主题4:其他
- 时间管理与成本管理
- 系统安全性
- 系统可靠性
论文写作
考纲
- 系统建模
- 软件架构设计
- 系统设计
- 分布式系统设计
- 系统的可靠性分析与设计
- 系统的安全性和保密性设计
架构真题
- 架构方向:论软件架构评估
- 数据库维度:数据湖/数据分片/数据库
- 软件开发维度:软件测试/设计方法/软件开发过程RUP/软件建模
- 系统集成:面向服务架构设计
大纲
摘要:300-320字(包括标点符号)
正文:2200-2500字
- 找准核心论点:5min
- 搭建论文框架:10min
- 撰写摘要:15min
- 正文写作:90min
基本框架 | 内容 | 字数 |
---|---|---|
摘要 | 项目相关背景及主要功能 你的岗位及主要职责 论文主体内容的总概 项目最终的实施效果或你的总结和感悟等 | 300-320字 |
正文1:项目背景介绍 | 项目背景的详细介绍 项目开发的原因 项目开始的时间、实施周期 你的主要岗位职责等 | 400字左右 |
正文2:过渡内容 | 非核心论文问题的回应 引出主体内容(核心论文) | 300-400字 |
正文3:主题内容 | 采用总分式描述:一总对三分 可分4个段落 | 1000-1500字 |
正文4:论文结论 | 先分析项目运行效果 再总结项目不足 最后提出解决思路 | 400-600字 |
论文主题1:《软件系统架构风格》
论文主题2:《基于架构的软件设计方法》
ABSD开发阶段
- 架构需求
- 架构设计
- 架构文档化
- 架构复审
- 架构实现
- 架构演化