--- url: /software-development/system-architecture-designer/ruankao-advanced.md --- # 软考高级:系统架构设计师 具有服务端开发相关工作的从业人员首选,每年 2 次考试机会。 新版教材 + 知识点 ## 系统架构概述 考点:选择题,0-1分 架构: 系统: 系统架构:**是系统的一种整体的高层次的结构表示**,是系统的骨架和根基,支撑和链接各个部分,包括组件、连接件、约束规范以及指导这些内容设计与演化的原理。 架构设计的作用: * 解决相对复杂的需求分析问题; * 解决**非功能属性**在系统占据重要位置的设计问题; 发展阶段: 1. 基础研究阶段:**模块化**开发方法 2. 核心体系与核心技术形成阶段:软件**组件化**技术 3. 理论体系完善与发展阶段:研究软件架构风格 4. 普及与应用阶段:软件架构是软件生命周期中的重要产物,它影响软件开发的各个阶段 软件架构模型: 1. 分层架构: 2. 事件驱动架构:队列、异步 3. 微核架构(插件架构):内核系统、即插组件 4. 微服务架构:SOA架构的升级 * RESTful API 模式 * RESTful 应用模式 * 集中消息模式 5. 云架构:**处理单元**和**虚拟中间件** 🌟🌟🌟软件架构模型(建模方法) 1. 结构模式:架构描述语言 2. 框架模型:侧重于整体的结构 3. 动态模型:大颗粒的行为性质 4. 过程模型:步骤和过程 🌟软件架构风格 1. 管道-过滤器风格 2. 主/子程序和面向对象的架构风格:组件内部设计 3. 虚拟机风格 4. C/S和B/S风格 5. 平台/插件风格 6. MVC 风格:用户交互 7. SOA 风格:企业集成 8. C2风格:用于GUI软件开发 软件架构的发展未来:模块化编程/面向对象编程、构建技术、面向服务开发技术和云技术;动态架构、架构风格的研究以及组件的重要性。 ## 计算机基础知识 ### 计算机系统 1. 硬件:冯诺伊曼机,运算器、存储器、控制器、输入设备、输出设备 2. 软件:系统软件、应用软件 中央处理单元 CPU:CISC(Intel、AMD) 和 RISC指令集 存储器:SRAM、DRAM Flash 等 **片上缓存:CPU内部**、**片外缓存:Cache** 总线: 1. 内总线:芯片互联 2. 系统总线:CPU、主存、I/O接口 3. 外部总线:计算机板和外部设备之间 接口: 外部设备: ### 计算机软件 程序、文档和数据 位置:系统软件、应用软件、操作系统、计算机硬件。 ### 操作系统 内核:**驻留在内存中,以最高优先级运行**,能执行指令系统中的特权指令,具有直接访问各种外设和全部主存空间的特权。 🌟🌟🌟操作系统的特征 1. 并发性:分时 2. 共享性:资源共享,如内存、I/O设备 3. 虚拟性:虚拟内存、虚拟处理器 4. 不确定性:资源有限、走走停停 分时操作系统 实时操作系统:被控对象允许的时间范围内 网络操作系统: 分布式操作系统:分散 微型计算机操作系统: 🌟嵌入式操作系统:可定制性、实时性、可靠性、易移植 数据库:关系型数据库、非关系型数据库 文件: 文件的结构和组织 1. 逻辑结构:顺序结构、链接结构、索引结构 2. 物理结构: 文件系统管理方式 1. 空闲表 2. 🌟位示图 🌟文件存储结构:直接索引、一级间接索引、二级间接索引 中间件:位于操作系统和应用程序之间,分为消息处理,事物处理,数据存储、安全、缓存等 软件构件:组件,一组程序的集合,独立的,自包容的。 应用构建:文件处理、图形图像 ### 嵌入式系统 特定应用,专用计算机系统。交警罚单设备 嵌入式特点 1. **专用型强** 2. 技术融合 3. 软硬件一体,软件为主 4. 软件固化在存储器中 5. 体积小价格低 嵌入式系统分类 1. 嵌入式实时系统:强实时、弱实时 2. 嵌入式非实时系统 安全要求,分为**安全攸关系统** 🌟A:灾难性的,B:危害性的,C:严重的,D:不严重的,E:没有影响的。 🌟嵌入式系统分层:应用层、中间件层、操作系统层、抽象层、硬件层 🌟🌟特点:可剪裁性、可配置性、强实时性、安全性、可靠性、高确定性。 ### 计算机网络 性能指标:速率、带宽、吞吐量、时延、往返时间 非性能指标:费用、质量等 信道:物理信道、逻辑信道 🌟香浓公式 星型、树型、总线结构、环形结构、 5G:网络切片技术 集线器、中继器:物理层设备 网桥、(二层)交换机:数据链路层 路由器:网络层 防火墙:静态的资源规则过滤 🌟网络协议(OSI七层协议):应用层、表示层、会话层、传输层、网络层、数据链路层、物理层 网络协议(TCP/IP):应用层、传输层、网络层、网络接口层 * 网络层协议:IP、ICMP、IGMP、ARP、RARP * 传输层协议:TCP、UDP 🌟🌟🌟网络工程:网络规划、网络设计、网络实施。 🌟🌟🌟交换机原理:转发路径学习、数据转发、数据泛洪、链路地址更新 交换机协议:环路 -> 生成树协议(STP) 🌟🌟路由技术:IGP、EGP 计算机语言:机器语言(01)、汇编语言、高级语言(C、C++、Java) 建模语言:统一建模语言UML🌟🌟🌟 * 构造块 * 规则: * 公共机制: 组合关系(实心)、聚合关系(空心),继承关系、泛化关系、 用例图:包含、扩展和泛化 类图:一组**对象、接口、协作**和它们之间的关系。 对象图:类图的事物快照 构建图:内部结构 组合结构图:结构化类 时间关系: * 顺序图:时间次序 * 通信图:组织结构 定时图: 状态图: 活动图:计算内部一步步的**控制流**和**数据流**,可并行。 部署图: 🌟🌟🌟5类视图 1. 用例示图:功能需求 2. 逻辑视图:类图、对象图、顺序图、合作图,系统分析和设计人员 3. 进程视图:状态图、顺序图、活动图、配置图,开发者和系统集成者 4. 实现视图:构建图 5. 部署视图:软硬件之间的拓扑结构,部署图, 形式化语言:设计和编制程序的出发点。 * 面向对象 * 面向属性 * 并发行 * 实时性 Z语言,形式化语言,“状态-操作”风格,主要的结构是模式,变量说明和谓词约束。 ### 多媒体 数据压缩:即时压缩和非即时压缩 VR:桌面式VR、分布式VR、沉浸式VR(全身心参与)、增强式VR ### 系统工程 组织管理技术,从整体出发,达到**最优规划、最优设计、最优管理和最优控制**的目的。 系统观念出发,达到整体最优,科学决策方法。 系统工程方法 1. 霍尔的三维结构:时间维、逻辑维(7个逻辑步骤)、知识维 2. 切克兰德方法:不是寻找最优,而是**比较**与**探寻**,7个步骤 3. 并行工程方法:制造过程和支持过程。 4. 综合集成:简单系统和巨系统两大类。 5. WSR系统方法:物理、事理、人理。 系统工程生命周期阶段: 1. 探索性研究阶段 2. 概念阶段 3. 开发阶段 4. 生产阶段 5. 使用阶段 6. 保障阶段 7. 退役阶段 生命周期方法: 1. 计划驱动方法——系统化方法 2. 渐进迭代式开发 3. 精益开发,聚焦于向客户交付最大价值并浪费活动的最小化。动态的、知识驱动的、以客户为中心的。 4. 敏捷开发:灵活性。 基于模型的系统工程:MBSE,建模方法,三大支柱,建模语言、建模工具、建模思路 ### 系统性能🌟🌟🌟 计算机: 网络: 操作系统:系统响应时间、资源利用率,可靠性 数据库管理系统:大小、索引数量、最大连接数 路由器:吞吐量、时延抖动 交换机:MAC地址、协议 收集、分析、配置和测试。 阿姆达尔解决方案,加速比=不使用部件/使用部件 🌟基准测试程序:真实程序 核心程序 小型基准程序 合成基准程序 🌟系统监视方法:系统本身命令,系统记录文件 ### 补充知识 ### 层次化存储结构 局部性原理:时间局部性、空间局部性 主存到 Cache 的映射是由硬件完成的。 层次化存储结构的目的是解决价格、容量、速度之间的矛盾。 🌟Cache 的性能: 🌟磁盘的存取时间 = 寻道时间 + 等待时间(旋转延迟时间) + 读写时间(可忽略不计) 🌟磁盘移臂调度算法: * 先来先服务(FCFS) * 最短寻道时间优先(SSTF) * 扫描算法(SCAN):双向扫描,电梯算法 * 循环扫描(SCAN)算法:单向扫描 🌟进程状态: * 三态模型:就绪、运行、等待(阻塞) * 五态模型:考虑到外存交互,增加2个状态,静止就绪、静止阻塞 🌟信号量问题,PV操作,临界资源 互斥(临界资源): 生产者/消费者: 前驱关系:有向边的数量=信号量的数量 ### 死锁问题 产生死锁的四个必要条件: * 保持和等待 * 不可剥夺 * 环路等待 * 互斥 不发生死锁的最小资源数 n\*(R-1)+1 死锁避免:银行家算法 内存中逻辑地址->物理地址转化 页面淘汰算法,淘汰原则: 1. 首先淘汰未被访问过的页面 2. 当都被访问过时,应淘汰未修改过的页面 3. 未修改的页面与辅存内容一致,所以代价较小 段页式管理 ### 流水线问题 流水线周期,流水线中执行时间最长的一段 ### 系统性能 时钟频率 指令执行速度法,用加法指令的运算速度来衡量计算机的速度,MIPS 等效指令速度法:各类运算指令的比例 数据处理速率法:CPU + 主存 综合理论性能法: 基准程序法:用得最多,频率最高 ### CISC 和 RISC 特点是什么?对比 ### 校验码 奇偶校验码 海明码,$2^r>=r+m+1$,$r$为校验码的位数 循环冗余校验码 ### 输入输出问题 程序控制、中断、DMA(主存和外设之间建立通路) ### 网络规划设计 需求分析、通信规范分析、逻辑网络设计、物理网络设计、实施阶段 🌟逻辑网络阶段: 1. 逻辑网络设计图 2. IP 地址方案 3. 安全方案 4. 具体的软件、硬件、广域网连接设备和**基本的服务** 5. 雇佣和培训新网络员工的具体说明; 6. **初步**对软件、硬件、服务、网络雇佣员工和培训的费用估计。 🌟物理结构设计: 1. 物理网络图和布线方案 2. 设备和部件的详细列表清单 3. 软件、硬件和安装费用的估计 4. 安装日程表,泳衣详细说明实际和服务中断的时间及期限 5. 安装后的测试计划 6. 用户培训计划 分层设计:接入层、核心层、汇聚层 ### 层次化存储结构 RAID0,无冗余无校验,利用率100% RAID1,磁盘镜像阵列,利用率50% RAID2,纠错海明码 RAID3和RAID4,奇偶校验 RAID5,利用率 $\frac{n-1}{n}$ RAID6,利用率$\frac{n-2}{n}$ RAID10,基于 RAID0 和 RAID10 ### 网路冗余设计 网络冗余设计的目的是避免网络组件单点失效造成应用失效;有两种方式:备用路径,负载分担。 ### IPv6 128位,更高的安全性 IPv4到IPv6到过渡技术:双协议栈技术、隧道技术、NAT-PT 技术 IPV6压缩0问题,省略0到方式,:: ### 网络协议 表示层、会话层的功能 FTP、HTTP、SMTP、DHCP DHCP,动态分配IP地址的协议,工作原理。 1. 租约过半50%,申请续租。 2. 租约超过87.5%,联系其他DHCP服务器。 DNS,域名解析协议。DNS查询域名的顺序,查询域名的方式:迭代查询、递归查询。 ## 信息系统基础知识 > 思考,该内容与软件工程的关系,有什么联系和区别? 🌟信息用户和规章制度 🌟🌟信息系统的阶段:总体规划、系统分析(逻辑模型)、系统设计(物理模型)、系统实施、系统验收 生命周期:产生阶段、开发阶段、运行阶段、消亡阶段 信息系统的建设原则: 1. 高层管理人员介入 2. 用户参与 3. 自顶向下规划 4. 工程化 开发方法: 1. 结构化法:自顶向下、模块化 2. 原型法 1. 按结构划分:抛弃型、演化型模型 2. 功能划分:水平型、垂直型 3. 面向对象:自底向上 4. 面向服务: ### 业务处理系统 业务处理系统 TPS:最初级别、最低的、最基础的,提高具体事物的处理效率。 ### 管理信息系统 大量管理方法 四大部件:信息源、信息处理器、信息用户、**信息管理者** 开环结构:不收集外部信息,不根据信息情况决策改变 闭环结构:不断收集信息、不断发送给决策者 ### 决策支持系统 DSS 辅助决策 🌟🌟DSS 应具有的特征: 1. 数据和模型是 DSS 的主要资源 2. 支援用户决策,而不是代替用户决策 3. 半结构化或非结构化问题 4. 提高决策的有效性,而不是提高决策的效率 🌟🌟DSS 的特点 1. **面向决策者** 2. 支持对**半结构化**问题的决策 3. 辅助决策者、支持决策者 4. 体现决策过程的**动态性** 5. 提倡**交互式**处理 ### 专家系统 资深专家的专门知识,人工智能范畴,解决半结构或非结构化问题 🌟🌟3个要素组成:数据库、知识库、推理机 决策、不确定性 专家系统构成: 1. 知识库 2. 综合数据库 3. 推理机 4. 知识获取 5. 解释程序:面向用户服务 6. 人机接口 ### 办公自动化系统 OAS 1. 信息管理 2. 事务处理 3. 辅助决策 ### 企业资源规划 ERP 🌟三大流:物流、资金流、信息流 管理理论和管理思想,不仅仅是信息系统 ### 政府信息化与电子政务 三个主体:政府、企事业单位、居民 政府对政府:人口信息 政府对企业,企业对政府:颁发营业执照,缴纳税务 政府对居民、居民对政府 ### 企业信息化与电子商务 企业信息化的目的: 1. 技术创新 2. 管理创新:系统整体规划和宏观把控 3. 制度创新:更多设计规则和流程的建立 🌟企业信息化方法 1. 业务流程重构方法:彻底的、根本性的 2. 核心业务应用方法: 3. 信息系统建设方法 4. 主题数据库方法:打破“信息孤岛” 5. 资源管理方法 6. 人力资本投资方法: ### 补充:系统需求层次 战略需求、运作需求、技术需求 系统规划阶段 阶段一:数据处理为核心,企业系统规划法、关键成功因素法 阶段二:企业内部管理信息系统 阶段三:价值链分析法和战略一致性模型 企业系统规划法:自上而下的系统规划 关键成功因素法:关键信息稽核,优先次数 ### 补充:客户关系管理系统 CRM ### 企业应用集成 表示集成:表示层 数据集成:中间件层 控制集成:逻辑层,远程过程调用或远程调用方法 业务流程集成: 企业应用集成方法: 1. 界面集成:主要关注用户界面的整合。 2. 过程集成:核心思想是通过服务与服务之间的组合来形成业务流程。 3. 数据集成:侧重于数据的共享和交换 4. 应用集成:更广泛地指不同应用程序之间的集成,但不特指服务组合形成业务流程的方式。 按应用集成**数据交换**方式分类: * 共享数据库:实施性强、频繁交互 * 消息传递:数据量小 * 文件传输:数据量大、交互少 数据挖掘方法: 1. 分类 2. 聚类 3. 序列模型分析 4. 关联分析 5. 离群点分析 企业网站、企业应用门户 ## 信息安全技术基础知识 选择题:3-5分。 重要章节:信息加密、访问控制、抗攻击 🌟信息安全属性: 1. 机密性:不暴露给**未授权**的实体或进程 2. 完整性:不能被篡改 3. 可用性:在需要时可以访问 4. 可控性:在授权范围内 5. 可审查性:调查的依据和手段,日志 🌟信息安全范围:设备安全、数据安全、内容安全和行为安全。 信息存储安全 1. 信息使用安全:限制访问系统的人员 2. 用户存储权限:限制进入系统的用户的操作, 1. 隔离控制法:物理隔离、时间隔离、逻辑隔离、密码技术隔离 2. 限制权限法: 3. 系统安全监控:安全监控系统、完善的审计系统、日志管理系统 网络中存在的威胁 1. 非授权访问 2. 信息泄漏和丢失 3. 完整性 4. 拒接服务攻击 5. 利用网络传播病毒 安全措施的目标:认证、访问控制、完整性、审计、保密 安全协议: * 网络层:防火墙、IPSpec * 传输层:**TLS**、SET * 应用层:PGP协议(基于RSA的邮件加密系统)、https 信息安全系统:人、技术、管理 🌟🌟🌟对称加密算法(私钥加密算法、共享加密算法):DES算法 56位、3DES 112位、IDEA 128位 优势:速度快、大量数据 劣势:密钥分发困难 🌟🌟🌟对称加密算法:RSA 512位 🌟数字摘要技术:完整性问题,抗弱碰撞性 & 抗强碰撞性 数字证书:认证中心、X.509标准,内容包括公钥信息,证书管理机构CA、RA 密钥管理平台:PKI 密钥管理技术:自动密钥分配 公钥管理机构:容易成为瓶颈 访问控制技术:主体、客体和控制策略 🌟🌟访问控制的实现技术: 1. 访问控制矩阵:主题、客体、权限表 2. 访问控制表: 3. 能力表: 4. 授权关系表:适合关系型数据库 数字签名:私钥、不可抵赖 信息安全的抗攻击技术 密钥的生成:增大密钥空间、选择强钥、密钥的随机性 拒绝服务攻击 DoS:消耗资源、破坏或更改配置信息、物理破坏或改变网络部件、利用服务程序中的处理错误使服务失败 分布式拒绝服务攻击三级控制结构:客户端、主控端、代理端 🌟🌟🌟拒绝服务攻击的防御方法: 1. 加强对数据包的特征识别 2. 防火墙监视本地端口 3. 数据量进行统计 4. 打补丁和修复漏洞 🌟🌟🌟欺骗攻击与防御 1. ARP欺骗:IP 到 MAC 地址转换 2. DNS欺骗:冒充域名服务器 1. xx方法 2. 虚假地址探测 3. 3. IP欺骗:入口过滤 4. 端口扫描 5. TCP/IP:SYN Flood、ICMP攻击 6. 系统漏洞扫描 1. 基于网络的漏洞扫描,便宜、简单,漏洞少,网络流量负载大 2. 基于主机的漏洞扫描,漏洞数多,网络流量负载小 计算机信息系统安全保护等级,5个等级,等级越高保护能力越强:自主、审计、标记、结构、验证 信息安全风险管理:薄弱环节 1. 风险评估的实施流程 2. 风险评估:脆弱性、资产、威胁、风险和安全措施 ## 软件工程 ### 软件工程技术知识 工程化的思想来做软件,需求分析、软件设计、软件开发、软件维护、软件淘汰 1个开发模型可以对应多个开发方法。 开发模型 1. 瀑布模型:**用户需求明确**,结构化方法中最常用的开发模型,计划、需求分析、设计、编码、测试、运维共6个阶段。 1. 产生大量的文档 2. 线性,开发风险 3. 不适应用户需求变化 4. 2. 原型化模型:**用户需求不明确**,快速建立一个目标系统的最初版本,试用、补充和修改。建模的速度 1. 抛弃型原型 演化型原型 2. 水平原型、垂直原型 3. 两个阶段:原型开发阶段、目标软件开发阶段 3. 螺旋模型:瀑布模型+演化模型,强调**风险分析**,**大型软件开发** 1. 目标设定 2. 风险分析 3. 开发及有效性验证 4. 评审 4. 敏捷模型:面向人的,而非面向过程的。专业、面对面交流。适应型,而非可预测型、以人为本,迭代增量式多次交付。 1. 极限编程:交流、朴素、反馈和勇气。 2. 水晶方法:机动性的,独特的角色。 3. SCRUM 框架。 4. 特征驱动开发:人、过程和技术,开发整体对象 最佳实践: ### RUP 模型 软件统一过程 RUP 是**用例驱动的**、**以体系结构为中心的**、**迭代和增量**的软件开发过程。 迭代过程: * 4个阶段: * 初始:定义**最终产品**视图和业务模型,并确定系统范围 * 细化:设计及确定系统的**体系结构** * 构造/建:构造产品并继续演化需求 * 交付:把产品提交给用户 * 9大核心过程流程: * 商业建模 * 需求 * 分析和设计 * 实现 * 测试 * 部署 * 配置和变更管理 * 项目管理 * 环境 ### 构造组装模型 模块化方法,组合手段高效率、高质量地构造应用软件系统过程。 优点:易扩展、易重用、降低成本 缺点:构件设计要求丰富经验的架构师、构件设计不好难以复用。 基于构建的软件开发的5个阶段: 1. 需求分析和定义 2. 结构设计 3. 构件库的建立 4. 应用软件构建 5. 测试和发布 ### V 模型 V模型的特点:**测试贯穿始终**、测试分段、测试计划先行。 编码 -> 单元测试 详细设计 -> 集成测试 概要设计 -> 系统测试 需求分析 -> 验收测试 迭代和增量的区别: ### 快速应用开发模型 RAD 极短的开发周期,大量使用可复用的构建。 3建1生测试,流程: * 业务建模 * 数据建模 * 过程建模 * 应用生成 * 测试预交付 *** ### 能力成熟度模型 CMMI 五个级别: 1. 初始级:无秩序的、混乱的 2. 已管理级:**类似项目**可取得成功。 3. 已定义级:文档化,标准化。 4. 量化管理级:有详细的**度量**标准。 5. 优化级:过程改进优化。 ### 🌟🌟🌟需求分类 按照内容分类: 1. 业务需求:用户视角,宏观和全局性 2. 用户需求:用户视角,具体需求 3. 系统需求:计算机视角 1. 功能需求 2. 性能需求 3. 设计约束 从客户角度分为 1. 基本需求:明确提出的 2. 期望需求:没有提出来,但**理所应当** 3. 兴奋需求: ### 需求工程 需求是一个非常复杂的问题,包括需求开发、需求管理。 需求获取步骤,常见的建模手段包括**系统上下文图**和**系统顶层用例图**。 需求获取方法:用户面谈、问卷调查、现场观察、头脑风暴法、图片串联法、JPR 联合需求计划、**原型法** 需求变更管理:与客户达成需求共识,需求基线。 需求变更过程: 1. 识别出问题 2. 问题分析和变更描述 3. 变更分析和成本计算 4. 变更实现 变更管控的方法 ### 需求跟踪矩阵 需求到产品的实现过程。 正向跟踪:需求规格说明书到产品 逆向跟踪:产品到需求 ### 结构化分析 系统分析:结构化、面向对象 系统设计:结构化、面向对象 🌟功能模型——数据流图 DFD,人、物、其他子系统 🌟数据模型——E-R图 🌟行为模型——状态转换图 ### 界面设计 三原则:用户控制、减少用户记忆负担、保持界面一致性。 ### 结构化设计 **面向数据流**的,以SRD和SA阶段产生的,自顶向下,逐步求精和模块化的过程 * 概要设计: * 详细设计 封装、模块化、**高内聚低耦合** 模块的内聚类型:顺序、描述 口诀:**功顺通过时逻偶** 模块的耦合类型: 非直接耦合、数据耦合、标记耦合、控制耦合、通信耦合、公共耦合、内容耦合 概要设计——系统结构图 ### 结构化编程 自顶向下、逐步求精,顺序、选择、循环,只有一个入口和出口。 数据库设计:ER图,视图-属性-联系 ### 面向对象分析 OOA 封装、继承、多态 用例驱动的、以体系结构为中心的、迭代和渐进式的 **数据抽象**是OOA的核心原则 🌟5个基本步骤:确定对象和类、确定结构、确定主题、确定属性、确定方法 ### 面向对象设计 OOD 类的分类:实体类、控制类和边界类 ### 软件测试 目的:发现错误和缺陷(改错叫调试) 是否在计算机上运行程序:动态测试和静态测试。 动态测试: * 黑盒:不考虑程序的内部结构和处理过程 * 等价类划分 * 边界值错误 * 错误推测 * 因果图 * 白盒 * 基本路径 * 循环覆盖 * 逻辑覆盖 * 灰盒 覆盖:语句覆盖、判定覆盖、条件覆盖... 1. 单元测试:模块测试,开发人员,软件设计阶段完成,白盒 2. 集成测试:组织测试、联合测试,一次性组装或增量式组装,概要设计,黑盒 3. 确认测试:有效性测试,是否与用户需求一致,内部测试、Alpha测试、Beta测试、验收测试 4. 系统测试:连通性测试,功能和性能 其他测试: 1. 压力测试:获得最大服务级别 2. 负载测试:超负荷,上限 3. 强度测试:资源特别低,下限 4. 容量测试:并发 AB测试、Web测试、链接测试、表单测试 ### 净室软件工程 应用数学与统计学理论,导弹、卫星系统 盒结构规约,验证而不是测试 黑盒、状态盒、清晰盒,**正确性验证是核心** ### 基于构建的软件工程 CBSE 购买而不是重新设计、复用,更快 构建是一个独立的软件单元,可组装、可部署、文档化、独立性、标准化。 🌟CBSE过程 1. 系统需求概述 2. 识别候选构建 3. 根据发现的构建修改需求 4. 体系结构设计 5. 构建定制与适配 6. 组织构建创建系统 构建的组装:顺序、层次、叠加 ### 项目管理 范围管理:工作分解结构,对可交付成果分解。 进度管理(时间管理): 1. 活动定义 2. 活动排序 3. 活动资源估算 4. 历时估算 ### 软件风险管理 不确定的事件或条件,正面或负面的影响。 ### 逆向工程 1. 逆向工程:类似于山寨的概念,分析已有程序,更高抽象。 2. 重构: 3. 设计恢复:抽象出有关数据设计 4. 再工程: 完备性:实现级、结构级、功能级、领域级 ### UML 参与者,外部触发因素,时间、温度。 状态图:主要描述行为的结果 活动图:主要描述行为的动作 🌟活动图与流程图的区别: 🌟序列图和协作图的区别: ### 需求定义 严格定义、原型法 ### 软件维护 改正性维护、适应性维护、完善性维护 ### 系统转换 新系统开发完毕、投入运行,取代现有系统的过程。 直接转换、并行转换、分段转换。 ### 遗留系统改造 视情况而定:技术、业务价值 低水平、低价值,淘汰。 低水平、高价值,继承,兼容已有系统的功能 高水平、高价值,改造,系统功能增强和数据模型改造 高水平、低价值,集成 ### 项目管理计算题 关键路径,可能存在多条。 最少人数,三点估算。