Appearance
考点清单
- [x] 开发方法(DDD/CBSE/MDD/ABSD/净室)详细对比
- [x] 可靠性工程(故障/容错/检错/N版本/恢复块/双机容错)
- [x] 嵌入式系统补充(GOA/ADD/DARTS/鸿蒙/中断)
- [x] CORBA 4 种构件标准 + 分布式计算架构分类
- [x] 安全架构补充(安全模型/脆弱性/WPDRRC/RADIUS)
- [x] 未来技术(CPS/数字孪生/IoT/机器学习/MCP)
- [x] 网络补充(存储DAS+NAS+SAN/RAID/综合布线/负载均衡)
- [x] 知识产权与软件工具(SDE/CORBA/推荐系统)
- [x] TOGAF/ADM/信息系统架构
笔记
一、开发方法详细对比
1. 结构化方法
核心:自顶向下、模块化、数据流驱动(DFD→结构图→流程图)。 工具:流程图、结构图、DFD、数据字典。
2. 面向对象方法
核心:以对象为中心,封装+继承+多态。UML建模,设计模式提升复用性。 工具:UML(类图/时序图)、设计模式(工厂/观察者)。
3. 领域驱动设计(DDD)★
"业务即模型,模型即代码"。避免技术实现与业务需求脱节。
| 概念 | 说明 |
|---|---|
| 通用语言 | 业务专家和开发者用同一套术语 |
| 领域模型 | 代码直接表达业务规则和流程 |
| 限界上下文 | 业务子领域的边界,独立模型和术语 |
| 上下文映射 | 不同上下文间交互方式(共享内核/防腐层) |
| 实体 | 有唯一标识和生命周期的对象 |
| 值对象 | 无唯一标识,不可变,通过属性定义 |
| 聚合 | 一组关联对象集合,由聚合根统一管理 |
| 领域服务 | 跨聚合/实体的业务逻辑 |
| 领域事件 | "订单已支付"触发库存扣减 |
4. 基于构件的软件工程(CBSE)
"像搭积木一样开发软件",复用标准化组件。 生命周期:需求分析(识别可复用)→ 设计(接口规范)→ 实现(选择/开发构件+API集成)。
5. 基于模型驱动的设计(MDD)
模型自动生成代码,减少手动编码。PIM(平台无关模型)→ PSM(平台相关模型)→ 代码生成。
6. 净室软件工程(CSE)★
核心目标:减少甚至消除缺陷,不是靠后期测试修修补补。
| 对比 | 传统开发 | 净室开发 |
|---|---|---|
| 方法 | 先写代码→测试找Bug→修补 | 数学方法+严格流程→从开始避免Bug |
| 需求 | 口头/文档描述 | 形式化方法数学语言严格定义 |
| 设计 | 经验设计 | 数学验证设计逻辑 |
| 编码 | 写代码+测试 | "一次写对",增量开发 |
| 测试 | 穷举测试 | 统计测试(模拟用户行为) |
7. CBSD 5 个开发阶段 ★
需求分析和定义 → 软件架构设计 → 构件库的建立 → 应用软件构建 → 测试和发布。
CBSD 融合螺旋模型特征,本质是演化形的,开发过程是迭代的。
二、可靠性工程 ★
故障/缺陷/错误/失效关系
| 概念 | 定义 |
|---|---|
| 软件错误 | 人为错误导致缺陷产生 |
| 软件缺陷 | 软件(文档/数据/程序)中的偏差 |
| 软件故障 | 运行中不希望/不可接受的内部状态 |
| 软件失效 | 运行中不希望/不可接受的外部行为结果 |
故障表现:永久性、间歇性、瞬时性。 故障模型层次:逻辑级(电路)→ 数据结构级(二进制位)→ 软件级(设计错误)→ 系统级(功能错误)。
可靠性:成熟性、容错性、易恢复性、依从性。
容错技术
| 分类方式 | 类型 |
|---|---|
| 按冗余类型 | 硬件冗余(三模冗余表决器)/ 软件冗余 / 信息冗余(海明码/CRC)/ 时间冗余(多次运行) |
| 按工作方式 | 动态冗余(主动、故障检测+定位+恢复)/ 静态冗余(多模冗余)/ 混合冗余 |
软件容错技术
| 技术 | 说明 |
|---|---|
| N 版本程序设计 | 静态故障屏蔽,N 个相同功能程序同时执行,多数表决 |
| 恢复块设计 | 主块异常时,用备份数据/程序恢复,多个功能相同设计差异的程序块 |
| 冗余设计 | 硬件系统中备用额外元件或系统 |
双机容错 ★
| 模式 | 说明 |
|---|---|
| 双机热备 | 主系统坏了,备用系统上 |
| 双机互备 | 两台都有完整服务,平时各自提供不同服务,A 坏 B 接手 A 任务 |
| 双机双工 | 同时提供相同服务,轮流工作(集群的一种) |
软件检错 4 要素
检测对象、检测延时、实现方式、处理方式。
实现方式:判断返回结果超出范围→异常处理;计算运行时间超预期→判断故障;置状态标志位或自检。
三、嵌入式系统补充
GOA 开放式架构
以层次化架构风格为主,采用抽象方法规定软件/硬件/接口结构,实现开放性、可移植性。
嵌入式系统架构设计方法
| 方法 | 说明 |
|---|---|
| ABSD | 基于架构的软件设计开发方法 |
| ADD | 属性驱动设计方法,7 阶段:评审→选择驱动因子→选择系统元素→选择设计概念→实体化元素和定义接口→草拟视图→分析评价 |
| DARTS | 实时系统设计方法,5 部分:RTSA开发规范→划分并发任务→定义任务间接口→设计每个任务→设计成果 |
嵌入式处理器分类
| 类型 | 说明 |
|---|---|
| MPU(微处理器) | 类似通用 CPU |
| MCU(微控制器/单片机) | 整台计算机集成到一块芯片 |
| DSP(数字信号处理器) | 快速实现数字信号处理,常采用哈佛体系结构 |
| SOC(片上系统) | 一块芯片集成多种功能模块(USB/蓝牙等) |
调试方法
直接调试 → 调试监控法(插桩法)→ 在线仿真法(ICE)→ 片上调试法(JTAG)→ 模拟器法(纯软件)。
鸿蒙操作系统
分层设计:内核层 → 系统服务层 → 框架层 → 应用层。
中断分类 ★
| 类型 | 说明 |
|---|---|
| 访管中断 | 应用程序使用特权指令触发,请求操作系统服务(=系统调用) |
| 信号中断 | 外部设备或定时器发出,与用户程序无关 |
| 溢出中断 | 算术溢出 |
| 外部中断 | 硬件设备触发(键盘/鼠标/定时器) |
四、CORBA & 分布式计算
CORBA 4 种构件标准 ★
| 构件类型 | 持久化 | 特征 |
|---|---|---|
| 实体(Entity) | 容器管理 | 需长期持久化,主要用于事务性行为 |
| 加工(Process) | 容器管理 | 无客户端可访问的主键 |
| 会话(Session) | 构件自己管理 | 状态信息由构件自己管理 |
| 服务(Service) | 无状态 | — |
分布式计算架构
| 架构 | 客户机 | 服务器 |
|---|---|---|
| 分布式表示 | 表示层+表示逻辑层 | 应用逻辑+数据处理+数据层 |
| 分布式数据 | 应用逻辑+表示逻辑+表示层 | 数据层+数据处理层 |
| 分布式数据和应用 | 表示逻辑+表示层 | 应用服务器(应用逻辑层)+ 数据服务器(数据层+数据处理层) |
五、安全架构补充
安全模型 ★
状态机模型、BLP 模型(保密性)、Biba 模型(完整性)、Clark-Wilson 模型(完整性)、Chinese Wall 模型、信息流模型、非干涉模型、格子模型。
信息安全体系架构
技术体系(物理安全+系统安全)+ 组织机构体系(机构+岗位+人事)+ 管理体系(法律+制度+培训)。
三道安全防线
- 产品安全架构:从源头打造自身安全产品
- 安全技术体系架构:通用安全技术基础设施
- 审计架构:独立审计部门
架构脆弱性分类 ★
| 架构风格 | 主要脆弱性 |
|---|---|
| 分层架构 | 层间脆弱性、层间通信脆弱性 |
| C/S 架构 | 客户端软件、网络开放性、网络协议 |
| B/S 架构 | HTTP 协议更易被病毒入侵 |
| 事件驱动 | 组件脆弱性、数据交换、逻辑关系、死循环、高并发、固定流程 |
| MVC | 复杂性、视图与控制器紧密连接、视图对模型低效率访问 |
| 微内核 | 难以良好整体优化、进程间通信开销大、通信损失率高 |
| 微服务 | 分布式复杂结构、服务间通信机制、服务管理复杂性 |
WPDRRC 信息安全模型
6 环节:预警→保护→检测→响应→恢复→反击。 3 要素:人员、策略、技术。
RADIUS 三层架构
| 层 | 功能 |
|---|---|
| 协议逻辑层 | 分发处理,转发引擎 |
| 业务逻辑层 | 认证、授权、审计三种业务 |
| 数据逻辑层 | 统一数据访问代理池,降低数据库依赖 |
六、TOGAF & 信息系统架构
TOGAF 9 六大组件 ★
- 架构开发方法(ADM) — 核心
- ADM 指南和技术
- 架构内容框架(含 ABB 可重用构建块)
- 企业连续体和工具
- TOGAF 参考模型(TRM + III-RM)
- 架构能力框架
ADM 全生命周期 10 阶段
准备 → 需求管理 → 架构愿景 → 业务架构 → 信息系统架构(应用+数据)→ 技术架构 → 机会和解决方案 → 迁移规划 → 实施治理 → 架构变更管理
十个阶段反复迭代。
信息系统架构
- 物理结构:集中式 / 分布式
- 逻辑结构:功能子系统综合体
- 4 种架构模型:单机应用→C/S→SOA→企业数据交换总线
- ISA 四方面:战略系统、业务系统、应用系统、信息基础设施
- 信息基础设施三部分:技术基础设施 + 信息资源设施 + 管理基础设施
企业信息化四大核心技术
信息技术、自动化技术、现代管理技术、制造技术。
七、网络补充
网络存储 ★
| 类型 | 访问方式 | 特点 |
|---|---|---|
| DAS | 计算机通过 I/O 端口直接访问 | 直连式 |
| NAS | 通过分布式文件系统访问 | 基于以太网,易用易管理低成本 |
| SAN | 通过独立存储网络访问 | 可用以太网和光纤通道,重高性能和低延迟 |
网络分层设计
接入层(连接终端用户)→ 汇聚层(策略控制/过滤/寻址)→ 核心层(高速转发,最高可靠性+性能+吞吐量)。
综合布线 6 子系统
工作区、水平、管理、垂直干线、设备间、建筑群。
负载均衡 3 种技术
- 基于特定服务器软件(重定向协议)
- 基于 DNS(同主机名多 IP,轮询返回)
- 基于反向代理(动态转发给内部多节点)
八、CPS 信息物理系统 ★
四大核心技术要素:
- "一硬":感知和自动控制(硬件支撑)
- "一软":工业软件(核心)
- "一网":工业网络(网络载体)
- "一平台":工业云和智能服务平台(基础)
三级体系架构:单元级(最小单元,感知+计算+交互+决策)→ 系统级(自组织/自配置/自决策/自优化)→ SoS 级(数据汇聚/融合/分析/服务)。
应用场景:智能设计、智能生产、智能服务、智能应用。
数字孪生体
三项核心技术:建模、仿真、基于数据融合的数字线程。应用:制造、产业、城市、战场。
九、其他补充
物联网 IoT 三层
感知层(传感器/二维码/RFID)→ 网络层(传感网络+互联网融合)→ 应用层(智能计算/云计算)。
机器学习分类
| 维度 | 分类 |
|---|---|
| 学习模式 | 监督学习(需标注)、无监督学习、半监督学习、强化学习(需反馈) |
| 学习方法 | 传统机器学习(手动完成)、深度学习(需大量数据+GPU) |
推荐系统
基于内容的推荐优点:能推荐新/不流行项目、能服务特殊兴趣用户、不需要其他用户数据。缺点:冷启动问题。
软件系统工具
| 按活动 | 工具 |
|---|---|
| 软件开发工具 | 需求分析、设计、编码与排错 |
| 软件维护工具 | 版本控制、文档分析、逆向工程、再工程 |
| 软件管理支持工具 | 项目管理、配置管理、软件评价 |
SDE 开发环境 3 集成机制
- 数据集成:提供数据模式和数据接口规范
- 控制集成:支持活动通信/切换/调度/协调
- 界面集成:提供统一界面和操作方式
三大功能组件:环境信息库(核心,存储系统开发信息)+ 过程控制与消息服务器 + 环境用户界面。
MCP 协议 ★
Anthropic 2024.11 开源标准,连接 AI 助手与数据所在系统,类似"USB-C"统一接口。
三层 C/S 架构:Host(接收用户提问+与AI交互)→ Client(与Server建立连接)→ Server(执行数据操作返回结果)。
传输机制:stdio(本地通信)/ SSE(HTTP 单向实时推送 + HTTP POST 客户端消息发送)。
优势:生态丰富(现成插件)、统一性(不限制 AI 模型)、数据安全(敏感数据留本地)。
知识产权要点
- 职务作品默认著作权归单位;委托创作默认著作权归创作者
- 作品不管是否发表,都享有著作权
- 思想/处理过程/操作方法/数学概念不受保护
- 著作权不保护:法律法规、时事新闻、历法/通用数表/通用表格和公式
- 商标要注册后才受商标法保护;不同行业可有相同商标
- 艺术品著作权不因所有权转移而改变,买家只有所有权+展览权
死锁(再次强调)
互斥条件不可破坏(否则引起数据损坏、资源争用冲突、优先级反转),只能破坏其他 3 个条件。
开发模型补充
- CBSD:融合螺旋模型特征,演化形,5 个阶段
- RAD:快速应用开发
- UP/RUP:4 阶段(初始→细化→构造→移交),用例驱动
架构模式 vs 设计模式 vs 惯用法
| 层级 | 关注点 | 示例 |
|---|---|---|
| 架构模式 | 高层决策 | C/S 结构 |
| 设计模式 | 软件设计,与语言无关 | 工厂/观察者 |
| 惯用法 | 实现层面,特定语言 | C++ 引用-计数 |
Lambda vs Kappa 架构
| 架构 | 层数 | 核心 | 缺点 |
|---|---|---|---|
| Lambda | 3(批处理+加速+服务层) | 容错好、灵活、易扩展 | 编码开销大、部署迁移成本高 |
| Kappa | 2(实时+服务层) | 统一代码、维护成本低 | 消息中间件瓶颈、弃离线稳定性 |