软件工程知识体系软件工程知识体系路飞博客

软件工程知识体系

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

转载请注明:路飞博客 » 软件工程知识体系

热门推荐