* 计算机科学基础
o 程序设计基础
o 算法、数据结构与复杂性
o 问题求解技术
o 抽象
o 计算机组织结构
o 系统基本概念
o 基础用户因素(I/O,错误信息,鲁棒性)
o 基础开发人员因素(注释,结构,可读性)
o 程序设计语言基础
o 操作系统基础
o 数据库基础
o 网络通信基础
o 编程语言的语义学
* 开发技术
o API设计与使用
o 代码复用和程序库
o 面向对象运行问题(多态性,动态绑定等)
o 参数化和泛化
o 断言、契约化设计、防御性编程
o 错误处理、异常处理和容错
o 基于状态和表驱动的开发技术
o 运行的配置和国际化
o 基于语法的输入处理(句法分析)
o 并发元素(信号量、监视器等)
o 中间件(组件和容器)
o 分布式软件的开发方法
o 异构(硬件和软件)系统开发;软硬件综合设计
o 性能分析与调节
o 平台标准
o 测试优先的程序设计
* 开发工具
o 开发环境
o GUI创建工具
o 单元测试工具
o 面向应用的语言(如脚本编程、可视化编程等)
o 剖析、性能分析和切片工具
* 形式化开发方法
o 抽象机的应用(如SDL、Paisley等)
o 形式化语言与方法的应用
o 由规格说明自动生成代码
o 程序派生
o 候选实现分析
o 将规格说明映射到不同实现
o 提炼
o 正确性证明