跳转至

第 20 章:软件工程

来源:课程视频目录与《20.软件工程》思维导图 PDF。用于在 Obsidian 的 Markmap 插件中渲染。

项目 数值
视频小节 6
总时长 01:31:49
--- markmap: height: 760 initialExpandLevel: 2 maxWidth: 320 spacingHorizontal: 90 spacingVertical: 12 nodeMinHeight: 24 paddingX: 10 --- # 20. 软件工程(6节 / 01:31:49) ## 软件工程定义 - 以工程化原则和方法解决软件问题 - 目标:提高生产率和质量、降低成本 - 三部分:方法、工具、过程 ## 20.1 软件需求(19:49) ### 需求基础 - 层次:业务需求、用户需求、系统需求 - QFD:常规需求、期望需求、意外需求 - 获取方法:访谈、问卷、采样、情节串联板、联合需求计划 - 好需求:无二义、完整、一致、可测试、确定、可跟踪、正确、必要 ### 需求分析 - 结构化分析 SA - 数据模型:E-R 图 - 功能模型:数据流图 DFD - 行为模型:状态转换图 STD - 基础资料:数据字典 - 面向对象分析 OOA:用例模型、分析模型 - SRS:需求分析最终成果,包括范围、需求、合格性、追踪性等 ### 需求管理 - 变更过程:问题分析与描述 → 变更分析与成本计算 → 变更实现 - CCB:变更决策机构,不负责提出变更方案 - 正向跟踪:需求能否在后续成果找到对应点 - 逆向跟踪:设计、代码、测试能否追溯到需求 ## 20.2 软件设计(33:53) ### 结构化设计 - 以 DFD 和数据字典为基础,自顶向下、逐层分解、逐步求精 - 原则:高内聚、低耦合 - 工具:系统结构图 SC ### 面向对象设计 - 思想:抽象、封装;以继承和多态实现可扩展 - SOLID 等原则:单一职责、开闭、里氏替换、依赖倒置、接口隔离 - 补充:组合复用、迪米特法则 - 类:实体类、控制类、边界类 ### UML - 事物:结构、行为、分组、注释 - 关系:依赖、关联、泛化、实现 - 结构图:类、对象、构件、组合结构、部署、制品、包 - 行为图:用例、顺序、通信、定时、状态、活动、交互概览 - 4+1 视图:逻辑、进程、实现、部署、用例 ### 设计模式 - 要素:名称、问题、目的、解决方案、效果、实例、相关模式 - 范围:类模式、对象模式 - 用途:创建型、结构型、行为型 ## 20.3 软件实现(16:29) - 配置管理:计划、标识、控制、状态记录、审计、发布与交付 - 编码:语言选择;源程序文档化、数据说明、语句结构、I/O 风格 - 效率:程序、算法、存储、I/O ### 软件测试 - 静态测试:检查单、桌前检查、代码走查、代码审查 - 动态测试:黑盒测试、白盒测试 - 类型:单元、集成、确认、系统、配置项、回归测试 - 调试策略:蛮力法、回溯法、原因排除法 ## 20.4 部署交付(08:29) - 部署:配置、安装、激活,保障产品运行 - 交付:提交、集成、构建、部署、测试等发布前活动 - 持续交付:代码可快速、安全、自动化部署到生产环境 - 方案:Kubernetes + Docker、Matrix - 部署原则:统一存储库/方式/脚本、检查点与回滚、流水线变更生产环境 - 策略:不可变服务器、蓝绿部署、金丝雀部署 - 镜像层次:Build → Ship → Run ## 20.5 软件质量管理(04:56) - 软件质量:满足明确或隐含需求的能力特性总和 - 管理过程:质量保证、验证与确认、评审与审计 - 常见质量特性:功能性、可靠性、易用性、效率、维护性、可移植性 ## 20.6 软件过程能力成熟度(08:13) - CMMI 表示法:阶段式、连续式 - 成熟度等级:初始级、已管理级、已定义级、量化管理级、优化级 - 连续式能力等级:不完整、已执行、已管理、已定义、量化管理、优化