软件工程知识体系全景图

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

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值