软件工程知识体系全景图
<iframe align="top" marginwidth="0" marginheight="0" src="http://www.zealware.com/46860.html" frameborder="0" width="468" scrolling="no" height="60"></iframe>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
<style type="text/css">h1 {border-width: 1; border: solid; text-align: center}div.imagemap { align: center; border: 0; } </style>
<meta content="vym" name="generator">
<link href="vym.css" id="css.stylesheet" rel="stylesheet">
软件工程知识体系
整理:fasiondog([email protected])
来源:http://blog.****.net/kongdong/
参考:《中国软件工程学科教程》(清华大学出版社)ISBN 7-302-0980206/TP.6763
整理:fasiondog([email protected])
来源:http://blog.****.net/kongdong/
参考:《中国软件工程学科教程》(清华大学出版社)ISBN 7-302-0980206/TP.6763
-
计算基础
-
计算机科学基础
- 程序设计基础
- 算法、数据结构与复杂性
- 问题求解技术
- 抽象
- 计算机组织结构
- 系统基本概念
- 基础用户因素(I/O,错误信息,鲁棒性)
- 基础开发人员因素(注释,结构,可读性)
- 程序设计语言基础
- 操作系统基础
- 数据库基础
- 网络通信基础
- 编程语言的语义学
-
开发技术
- API设计与使用
- 代码复用和程序库
- 面向对象运行问题(多态性,动态绑定等)
- 参数化和泛化
- 断言、契约化设计、防御性编程
- 错误处理、异常处理和容错
- 基于状态和表驱动的开发技术
- 运行的配置和国际化
- 基于语法的输入处理(句法分析)
- 并发元素(信号量、监视器等)
- 中间件(组件和容器)
- 分布式软件的开发方法
- 异构(硬件和软件)系统开发;软硬件综合设计
- 性能分析与调节
- 平台标准
- 测试优先的程序设计
-
开发工具
- 开发环境
- GUI创建工具
- 单元测试工具
- 面向应用的语言(如脚本编程、可视化编程等)
- 剖析、性能分析和切片工具
-
形式化开发方法
- 抽象机的应用(如SDL、Paisley等)
- 形式化语言与方法的应用
- 由规格说明自动生成代码
- 程序派生
- 候选实现分析
- 将规格说明映射到不同实现
- 提炼
- 正确性证明
-
计算机科学基础
-
数学与工程基础
-
数学基础
- 函数、关系和集合
- 基本逻辑(命题和谓词)
- 证明技术(直接、矛盾、归纳)
- 基础计算
- 图和树
- 离散概率学
- 有限状态机,正则表达式
- 语法
- 数字精度、准确性和错误
- 数字理论
- 代数结构
-
软件的工程基础
- 经验方法和实验技术(如CPU和内存使用情况的计算机测量技术)
- 统计分析
- 度量及其单位
- 系统开发(如安全、保险、性能、规模效应、特性相互作用等)
- 工程设计(问题表述、可选方案、可行性等)
- 度量理论
- 其他工程学科的工程科学
-
软件工程经济学
- 软件全生命周期的价值因素
- 生成系统目标(如共享设计、项目干系人双赢、质量职能运用、原型创建等)
- 评估成本有效的方案(如利润实现、折中分析、成本分析、投资回报等)
- 实现系统价值(如优先级确定、风险识别、成本控制等)
-
数学基础
-
专业实践
-
团队动力学/心理学
- 在小组或团队中工作的动力学
- 个体认知(如限制)
- 认知问题的复杂性
- 与项目干系人的相互作用
-
团队动力学/心理学