软件工程知识体系全景图

时间:2021-07-16 03:26:01
软件工程知识体系
整理:fasiondog(fasiondog@gmail.com)
来源:http://blog.csdn.net/kongdong/
参考:《中国软件工程学科教程》(清华大学出版社)ISBN 7-302-0980206/TP.6763
软件工程知识体系全景图计算基础 计算机科学基础 程序设计基础 算法、数据结构与复杂性 问题求解技术 抽象 计算机组织结构 系统基本概念 基础用户因素(I/O,错误信息,鲁棒性) 基础开发人员因素(注释,结构,可读性) 程序设计语言基础 操作系统基础 数据库基础 网络通信基础 编程语言的语义学 开发技术 API设计与使用 代码复用和程序库 面向对象运行问题(多态性,动态绑定等) 参数化和泛化 断言、契约化设计、防御性编程 错误处理、异常处理和容错 基于状态和表驱动的开发技术 运行的配置和国际化 基于语法的输入处理(句法分析) 并发元素(信号量、监视器等) 中间件(组件和容器) 分布式软件的开发方法 异构(硬件和软件)系统开发;软硬件综合设计 性能分析与调节 平台标准 测试优先的程序设计 开发工具 开发环境 GUI创建工具 单元测试工具 面向应用的语言(如脚本编程、可视化编程等) 剖析、性能分析和切片工具 形式化开发方法 抽象机的应用(如SDL、Paisley等) 形式化语言与方法的应用 由规格说明自动生成代码 程序派生 候选实现分析 将规格说明映射到不同实现 提炼 正确性证明 数学与工程基础 数学基础 函数、关系和集合 基本逻辑(命题和谓词) 证明技术(直接、矛盾、归纳) 基础计算 图和树 离散概率学 有限状态机,正则表达式 语法 数字精度、准确性和错误 数字理论 代数结构 软件的工程基础 经验方法和实验技术(如CPU和内存使用情况的计算机测量技术) 统计分析 度量及其单位 系统开发(如安全、保险、性能、规模效应、特性相互作用等) 工程设计(问题表述、可选方案、可行性等) 度量理论 其他工程学科的工程科学 软件工程经济学 软件全生命周期的价值因素 生成系统目标(如共享设计、项目干系人双赢、质量职能运用、原型创建等) 评估成本有效的方案(如利润实现、折中分析、成本分析、投资回报等) 实现系统价值(如优先级确定、风险识别、成本控制等) 专业实践 团队动力学/心理学 在小组或团队中工作的动力学 个体认知(如限制) 认知问题的复杂性 与项目干系人的相互作用 对待不确定性和模糊性 适应多文化环境 沟通技巧 阅读、理解和概括(如源代码、文档) 撰写(任务分配、报告、评估、解释等) 小组和团队沟通 表达技巧 职业道德 信用、认证和许可 职业道德与行为规范 社会、法律、历史和职业道德问题及关系 专业团队的本质和角色 软件工程标准的本质和角色 软件的经济效应 雇佣合同 软件建模与分析 建模基础 建模原则(如分解、抽象、泛化、投影/视图、明示、形式化方法的使用等) 前置与后置条件、不变量 数学模型和规格说明语言简介 建模语言的属性 语法和语义 明示(排除假设,或说明所有假设) 模型类型 信息建模(如实体关系图、类图等) 行为建模 结构化分析 状态图 用例分析 交互图 故障模式和影响分析 故障树分析 结构建模 领域建模 功能建模 企业建模 业务流程 组织结构 目标 嵌入式系统建模 时序分析 外部接口分析 需求交互分析 特征交互 质量审议 视点分析 分析模式 问题框架 规格说明复用 分析基础 完善性分析 完整性 一致性 鲁棒性 正确性分析 静态分析 仿真分析 模型检查 非功能性质量需求分析 保险度 安全性 可用性 性能 根源分析 可靠性 可维护性 优先级确定、折衷分析、风险分析和效果分析 可追踪性 形式化分析 需求基础 需求定义 产品 项目 限制 系统边界 外部 内部 需求过程 需求的层/级 需要 目标 用户需求 系统需求 软件需求 需求特性 可测试性 无二义性 一致性 正确性 可理解性 可追踪性 优先级 管理需求变更 需求管理 一致性管理 发布计划 复用 可追踪性管理 需求和体系结构之间的交互 需求与系统工程、人性化设计等的关系 缺陷问题 病态结构问题 多重方案问题 作为限制的COTS 获取需求 获取来源 获取技术 访谈 问卷调查 原型 用例 观察 参与技术 高级技术 人文 知识获取 需求规格说明与文档 需求文档基础 类型 受众 结构 质量 属性 标准 软件需求规格说明 规格说明语言 结构化描述 UML 需求验证 评审和检查 原型验证 确认测试设计 确认产品质量属性 形式化需求分析 软件设计 设计概念 设计的定义 基本设计问题 持久数据 存储管理 例外 软件开发生命周期中的设计环境 设计原则 信息隐藏 内聚与耦合 设计和需求之间的交互 质量属性设计 可靠性 可用性 性能 可测试性 容错 设计折衷 体系结构风格、模式、复用 设计策略 面向功能的设计 面向对象的设计 以数据结构为中心的设计 面向方面的设计 体系结构设计 体系结构风格 管道与过滤器 分层 以事务为中心 点对点 出版-订阅架构 基于事件 客户-服务器 多属性中的体系结构折衷 软件体系结构中的硬件问题 软件体系结构中的需求可追踪性 特定领域的体系结构和产品线 体系结构表示 详细设计 设计方法 SSA/SD JSD OOD 设计模式 组件设计 组件和系统接口设计 设计表示 人机界面设计 通用人机界面设计原则 模式和导航的应用 编程技术与可视化设计 颜色 图标 字体 布局 响应时间和反馈 设计形式 菜单驱动 表单 问答 本地化和国际化 人机界面设计方法 多媒体 隐喻和概念模型 人机界面心理学 设计支持工具与评价 设计支持工具 设计属性度量 设计标准 形式化设计分析 软件验证与确认 验证与确认的术语和基础 验证与确认的目标和限制 验证与确认效果规划 编写验证与确认策略文档 标准和度量 生命周期不同阶段的验证与确认 评审 桌面验证 走读 检查 测试 单元测试 异常处理 覆盖分析和基于结构的测试 黑盒功能测试 集成测试 基于用例开发测试用例 基于操作层面的测试 系统和确认测试 质量属性测试 可用性 安全性 兼容性 性能 可访问性 可靠性 回归测试 测试工具 发布过程 人机交互界面测试与评价 有效性和可用性的各个方面 启发式评价 感知式走查 用户测试方法 Web可用性 测试特定人机界面假定的规范实验 问题分析与报告 分析错误包括 调试/错误隔离技术 缺陷分析 问题追踪 软件演化 演化过程 演化和维护的基本概念 演化实体间的关系 软件演化模型 演化成本模型 演化规划 演化活动 使用遗留系统 程序理解和逆向工程 系统和过程的再创建 影响分析 移植 重构 程序转换 数据逆向工程 软件过程 过程概念 主题与术语 软件工程过程基础设施 软件过程建模与规格说明 软件过程度量与分析 软件工程过程改进 质量分析和控制 缺陷预防 评审过程 质量标准 根源分析 软件过程模型分析和建模 过程实现 过程定义的层次 生命周期模型 敏捷 瀑布 螺旋 V模型 迭代 生命周期过程模型与标准 个体软件过程 小组软件过程 过程裁剪 软件生命周期过程需求 软件质量 软件质量概念与文化 质量定义 社会对质量的关注 质量缺陷的成本与影响 质量模型的成本 软件质量属性 质量工程范围 人、过程、方法、工具和技术的角色 软件质量标准 ISO9000 ISO/IEEE12207 标准的组织实现 IEEE软件质量相关标准 软件质量过程 软件质量模型与标准 软件过程模型的质量相关方面 ISO15504和SEI CMM的概述 ISO15504的质量相关过程域 软件工程Baldridge奖的标准 其他过程模型的质量因素 过程保证 过程保证的本质 质量计划 过程保证的组织与报告 过程保证技术 产品保证 产品保证的本质 保证和“验证与确认”的区别 质量产品模型 根源分析和缺陷预防 质量产品标准和度量 产品质量属性的评估 软件管理 管理概念 通用项目管理 经典管理模型 项目管理角色 企业/组织管理结构 软件管理类型 采购 风险 成本 开发 维护 项目 项目计划 评估和计划 工作分解结构 任务进度 效果评估 资源分配 风险管理 项目人员与组织 组织结构、职位、职责和权利 正式/非正式沟通 项目人员管理 人员培训、职业发展和评价 会议管理 建设和激励团队 冲突解决 项目控制 变更控制 监控和报告 结果度量与分析 改正和回复 奖励与惩罚 绩效标准 软件配置管理 版本控制 发布管理 工具支持 生成 软件配置管理过程 维护问题 发行和备份 特定系统领域与应用 网络系统 Web技术 网络深入研究 安全深入研究 信息系统和数据处理 数据库 业务管理 数据仓库 数据挖掘 搜索 金融与电子商务系统 会计 金融 安全 容错与自救系统 异构分布式系统 安全 故障分析 入侵检测 高安全性系统 与安全相关的业务问题 安全弱化与风险 密码学、密码分析学 网络技术深入研究 安全重要系统 形式化方法、正确性证明 控制系统知识 失效模式、影响分析和故障树分析 嵌入式实时系统 嵌入式系统硬件 开发语言和工具 定时问题 硬件验证 生物医学系统 生物学和相关科学 相关的安全重要系统知识 科学系统 相关科学的知识 统计学 可视化与图形学 电信系统 信号、信息理论 电话和电信协议 航空电子与车载系统 机械工程 相关的安全重要系统知识 相关的嵌入式和实时系统知识 工业过程控制系统 控制系统 工业过程和其他相关领域工程 相关的嵌入式和实时系统知识 多媒体、游戏和娱乐系统 可视化、触觉和图形学 人机界面设计 网络知识 小型移动平台系统 无线技术 小型移动平台人机界面研究 相关的嵌入式和实时系统知识 相关的电信系统知识 基于代理的系统 机器学习 模糊逻辑 知识工程
  • 计算基础
    • 计算机科学基础
      • 程序设计基础
      • 算法、数据结构与复杂性
      • 问题求解技术
      • 抽象
      • 计算机组织结构
      • 系统基本概念
      • 基础用户因素(I/O,错误信息,鲁棒性)
      • 基础开发人员因素(注释,结构,可读性)
      • 程序设计语言基础
      • 操作系统基础
      • 数据库基础
      • 网络通信基础
      • 编程语言的语义学
    • 开发技术
      • API设计与使用
      • 代码复用和程序库
      • 面向对象运行问题(多态性,动态绑定等)
      • 参数化和泛化
      • 断言、契约化设计、防御性编程
      • 错误处理、异常处理和容错
      • 基于状态和表驱动的开发技术
      • 运行的配置和国际化
      • 基于语法的输入处理(句法分析)
      • 并发元素(信号量、监视器等)
      • 中间件(组件和容器)
      • 分布式软件的开发方法
      • 异构(硬件和软件)系统开发;软硬件综合设计
      • 性能分析与调节
      • 平台标准
      • 测试优先的程序设计
    • 开发工具
      • 开发环境
      • GUI创建工具
      • 单元测试工具
      • 面向应用的语言(如脚本编程、可视化编程等)
      • 剖析、性能分析和切片工具
    • 形式化开发方法
      • 抽象机的应用(如SDL、Paisley等)
      • 形式化语言与方法的应用
      • 由规格说明自动生成代码
      • 程序派生
      • 候选实现分析
      • 将规格说明映射到不同实现
      • 提炼
      • 正确性证明

  • 数学与工程基础
    • 数学基础
      • 函数、关系和集合
      • 基本逻辑(命题和谓词)
      • 证明技术(直接、矛盾、归纳)
      • 基础计算
      • 图和树
      • 离散概率学
      • 有限状态机,正则表达式
      • 语法
      • 数字精度、准确性和错误
      • 数字理论
      • 代数结构
    • 软件的工程基础
      • 经验方法和实验技术(如CPU和内存使用情况的计算机测量技术)
      • 统计分析
      • 度量及其单位
      • 系统开发(如安全、保险、性能、规模效应、特性相互作用等)
      • 工程设计(问题表述、可选方案、可行性等)
      • 度量理论
      • 其他工程学科的工程科学
    • 软件工程经济学
      • 软件全生命周期的价值因素
      • 生成系统目标(如共享设计、项目干系人双赢、质量职能运用、原型创建等)
      • 评估成本有效的方案(如利润实现、折中分析、成本分析、投资回报等)
      • 实现系统价值(如优先级确定、风险识别、成本控制等)

  • 专业实践
    • 团队动力学/心理学
      • 在小组或团队中工作的动力学
      • 个体认知(如限制)
      • 认知问题的复杂性
      • 与项目干系人的相互作用
      • 对待不确定性和模糊性
      • 适应多文化环境
    • 沟通技巧
      • 阅读、理解和概括(如源代码、文档)
      • 撰写(任务分配、报告、评估、解释等)
      • 小组和团队沟通
      • 表达技巧
    • 职业道德
      • 信用、认证和许可
      • 职业道德与行为规范
      • 社会、法律、历史和职业道德问题及关系
      • 专业团队的本质和角色
      • 软件工程标准的本质和角色
      • 软件的经济效应
      • 雇佣合同

  • 软件建模与分析
    • 建模基础
      • 建模原则(如分解、抽象、泛化、投影/视图、明示、形式化方法的使用等)
      • 前置与后置条件、不变量
      • 数学模型和规格说明语言简介
      • 建模语言的属性
      • 语法和语义
      • 明示(排除假设,或说明所有假设)
    • 模型类型
      • 信息建模(如实体关系图、类图等)
      • 行为建模
        • 结构化分析
        • 状态图
        • 用例分析
        • 交互图
        • 故障模式和影响分析
        • 故障树分析
      • 结构建模
      • 领域建模
      • 功能建模
      • 企业建模
        • 业务流程
        • 组织结构
        • 目标
      • 嵌入式系统建模
        • 时序分析
        • 外部接口分析
      • 需求交互分析
        • 特征交互
        • 质量审议
        • 视点分析
      • 分析模式
        • 问题框架
        • 规格说明复用
    • 分析基础
      • 完善性分析
        • 完整性
        • 一致性
        • 鲁棒性
      • 正确性分析
        • 静态分析
        • 仿真分析
        • 模型检查
      • 非功能性质量需求分析
        • 保险度
        • 安全性
        • 可用性
        • 性能
        • 根源分析
        • 可靠性
        • 可维护性
      • 优先级确定、折衷分析、风险分析和效果分析
      • 可追踪性
      • 形式化分析
    • 需求基础
      • 需求定义
        • 产品
        • 项目
        • 限制
        • 系统边界
        • 外部
        • 内部
      • 需求过程
      • 需求的层/级
        • 需要
        • 目标
        • 用户需求
        • 系统需求
        • 软件需求
      • 需求特性
        • 可测试性
        • 无二义性
        • 一致性
        • 正确性
        • 可理解性
        • 可追踪性
        • 优先级
      • 管理需求变更
      • 需求管理
        • 一致性管理
        • 发布计划
        • 复用
        • 可追踪性管理
      • 需求和体系结构之间的交互
      • 需求与系统工程、人性化设计等的关系
      • 缺陷问题
        • 病态结构问题
        • 多重方案问题
      • 作为限制的COTS
    • 获取需求
      • 获取来源
      • 获取技术
        • 访谈
        • 问卷调查
        • 原型
        • 用例
        • 观察
        • 参与技术
      • 高级技术
        • 人文
        • 知识获取
    • 需求规格说明与文档
      • 需求文档基础
        • 类型
        • 受众
        • 结构
        • 质量
        • 属性
        • 标准
      • 软件需求规格说明
      • 规格说明语言
        • 结构化描述
        • UML
    • 需求验证
      • 评审和检查
      • 原型验证
      • 确认测试设计
      • 确认产品质量属性
      • 形式化需求分析

  • 软件设计
    • 设计概念
      • 设计的定义
      • 基本设计问题
        • 持久数据
        • 存储管理
        • 例外
      • 软件开发生命周期中的设计环境
      • 设计原则
        • 信息隐藏
        • 内聚与耦合
      • 设计和需求之间的交互
      • 质量属性设计
        • 可靠性
        • 可用性
        • 性能
        • 可测试性
        • 容错
      • 设计折衷
      • 体系结构风格、模式、复用
    • 设计策略
      • 面向功能的设计
      • 面向对象的设计
      • 以数据结构为中心的设计
      • 面向方面的设计
    • 体系结构设计
      • 体系结构风格
        • 管道与过滤器
        • 分层
        • 以事务为中心
        • 点对点
        • 出版-订阅架构
        • 基于事件
        • 客户-服务器
      • 多属性中的体系结构折衷
      • 软件体系结构中的硬件问题
      • 软件体系结构中的需求可追踪性
      • 特定领域的体系结构和产品线
      • 体系结构表示
    • 详细设计
      • 设计方法
        • SSA/SD
        • JSD
        • OOD
      • 设计模式
      • 组件设计
      • 组件和系统接口设计
      • 设计表示
    • 人机界面设计
      • 通用人机界面设计原则
      • 模式和导航的应用
      • 编程技术与可视化设计
        • 颜色
        • 图标
        • 字体
        • 布局
      • 响应时间和反馈
      • 设计形式
        • 菜单驱动
        • 表单
        • 问答
      • 本地化和国际化
      • 人机界面设计方法
      • 多媒体
      • 隐喻和概念模型
      • 人机界面心理学
    • 设计支持工具与评价
      • 设计支持工具
      • 设计属性度量
      • 设计标准
      • 形式化设计分析

  • 软件验证与确认
    • 验证与确认的术语和基础
      • 验证与确认的目标和限制
      • 验证与确认效果规划
      • 编写验证与确认策略文档
      • 标准和度量
      • 生命周期不同阶段的验证与确认
    • 评审
      • 桌面验证
      • 走读
      • 检查
    • 测试
      • 单元测试
      • 异常处理
      • 覆盖分析和基于结构的测试
      • 黑盒功能测试
      • 集成测试
      • 基于用例开发测试用例
      • 基于操作层面的测试
      • 系统和确认测试
      • 质量属性测试
        • 可用性
        • 安全性
        • 兼容性
        • 性能
        • 可访问性
        • 可靠性
      • 回归测试
      • 测试工具
      • 发布过程
    • 人机交互界面测试与评价
      • 有效性和可用性的各个方面
      • 启发式评价
      • 感知式走查
      • 用户测试方法
      • Web可用性
      • 测试特定人机界面假定的规范实验
    • 问题分析与报告
      • 分析错误包括
      • 调试/错误隔离技术
      • 缺陷分析
      • 问题追踪

  • 软件演化
    • 演化过程
      • 演化和维护的基本概念
      • 演化实体间的关系
      • 软件演化模型
      • 演化成本模型
      • 演化规划
    • 演化活动
      • 使用遗留系统
      • 程序理解和逆向工程
      • 系统和过程的再创建
      • 影响分析
      • 移植
      • 重构
      • 程序转换
      • 数据逆向工程

  • 软件过程
    • 过程概念
      • 主题与术语
      • 软件工程过程基础设施
      • 软件过程建模与规格说明
      • 软件过程度量与分析
      • 软件工程过程改进
      • 质量分析和控制
        • 缺陷预防
        • 评审过程
        • 质量标准
        • 根源分析
      • 软件过程模型分析和建模
    • 过程实现
      • 过程定义的层次
      • 生命周期模型
        • 敏捷
        • 瀑布
        • 螺旋
        • V模型
        • 迭代
      • 生命周期过程模型与标准
      • 个体软件过程
      • 小组软件过程
      • 过程裁剪
      • 软件生命周期过程需求

  • 软件质量
    • 软件质量概念与文化
      • 质量定义
      • 社会对质量的关注
      • 质量缺陷的成本与影响
      • 质量模型的成本
      • 软件质量属性
      • 质量工程范围
      • 人、过程、方法、工具和技术的角色
    • 软件质量标准
      • ISO9000
      • ISO/IEEE12207
      • 标准的组织实现
      • IEEE软件质量相关标准
    • 软件质量过程
      • 软件质量模型与标准
      • 软件过程模型的质量相关方面
      • ISO15504和SEI CMM的概述
      • ISO15504的质量相关过程域
      • 软件工程Baldridge奖的标准
      • 其他过程模型的质量因素
    • 过程保证
      • 过程保证的本质
      • 质量计划
      • 过程保证的组织与报告
      • 过程保证技术
    • 产品保证
      • 产品保证的本质
      • 保证和“验证与确认”的区别
      • 质量产品模型
      • 根源分析和缺陷预防
      • 质量产品标准和度量
      • 产品质量属性的评估

  • 软件管理
    • 管理概念
      • 通用项目管理
      • 经典管理模型
      • 项目管理角色
      • 企业/组织管理结构
      • 软件管理类型
        • 采购
        • 风险
        • 成本
        • 开发
        • 维护
        • 项目
    • 项目计划
      • 评估和计划
      • 工作分解结构
      • 任务进度
      • 效果评估
      • 资源分配
      • 风险管理
    • 项目人员与组织
      • 组织结构、职位、职责和权利
      • 正式/非正式沟通
      • 项目人员管理
      • 人员培训、职业发展和评价
      • 会议管理
      • 建设和激励团队
      • 冲突解决
    • 项目控制
      • 变更控制
      • 监控和报告
      • 结果度量与分析
      • 改正和回复
      • 奖励与惩罚
      • 绩效标准
    • 软件配置管理
      • 版本控制
      • 发布管理
      • 工具支持
      • 生成
      • 软件配置管理过程
      • 维护问题
      • 发行和备份

  • 特定系统领域与应用
    • 网络系统
      • Web技术
      • 网络深入研究
      • 安全深入研究
    • 信息系统和数据处理
      • 数据库
      • 业务管理
      • 数据仓库
      • 数据挖掘
      • 搜索
    • 金融与电子商务系统
      • 会计
      • 金融
      • 安全
    • 容错与自救系统
      • 异构分布式系统
      • 安全
      • 故障分析
      • 入侵检测
    • 高安全性系统
      • 与安全相关的业务问题
      • 安全弱化与风险
      • 密码学、密码分析学
      • 网络技术深入研究
    • 安全重要系统
      • 形式化方法、正确性证明
      • 控制系统知识
      • 失效模式、影响分析和故障树分析
    • 嵌入式实时系统
      • 嵌入式系统硬件
      • 开发语言和工具
      • 定时问题
      • 硬件验证
    • 生物医学系统
      • 生物学和相关科学
      • 相关的安全重要系统知识
    • 科学系统
      • 相关科学的知识
      • 统计学
      • 可视化与图形学
    • 电信系统
      • 信号、信息理论
      • 电话和电信协议
    • 航空电子与车载系统
      • 机械工程
      • 相关的安全重要系统知识
      • 相关的嵌入式和实时系统知识
    • 工业过程控制系统
      • 控制系统
      • 工业过程和其他相关领域工程
      • 相关的嵌入式和实时系统知识
    • 多媒体、游戏和娱乐系统
      • 可视化、触觉和图形学
      • 人机界面设计
      • 网络知识
    • 小型移动平台系统
      • 无线技术
      • 小型移动平台人机界面研究
      • 相关的嵌入式和实时系统知识
      • 相关的电信系统知识
    • 基于代理的系统
      • 机器学习
      • 模糊逻辑
      • 知识工程



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=757161