1.软件发展
1.1 程序设计阶段(50年代中-60年代中)
- 软件生产个体化:规模小,编写者和使用者同一个人
- 软件是设计者头脑中隐含过程:除程序清单,无文档材料保存
1.2 程序系统阶段(60年代中-70年代中)
- 产品软件:由专门软件开发组织开发
- 软件作坊:软件开发组织,沿用早期个体化软件开发方法
- 软件危机:软件维护工作耗费大量资源
- 软件工程:1968年,北大西洋公约组织计算机科学家讨论软件危机,提出软件工程
1.3 软件工程(70年代中-80年代中)
- 软件危机得到缓解:打破软件生产个体化特征;工程化的设计原则、方法和标准
- 新的挑战:微处理器和个人计算机;分布式处理系统;局域网、广域网;宽带数字通讯
1.4 第四阶段(80年代中-现在)
(1)软件架构发生变化
- 集中主机环境

- 客户机/服务器(二层):客户端任务繁重

- 客户机/服务器(三层)

- 浏览器/服务器

(2)新技术
专家系统、人工智能、神经网络、并行计算、网格技术、高信度计算、云计算
2.软件危机
2.1 定义
在计算机软件开发和维护过程中遇到的一系列严重问题
2.2 主要表现
(1)开发成本和进度估计不准
延迟交付、取消项目
(2)用户对已交付软件不满意
开发人员对用户信息交流不充分,产品不符合用户需求
(3)软件产品质量靠不住
软件产品保证技术(审查、复审、测试)未坚持不懈应;用软件开发全过程
(4)软件可维护性差
开发时未考虑,很多错误难以改正
(5)软件没有适当文档资料
文档资料应在软件开发过程中产生,保证最新
3.软件工程
3.1 定义(1993年IEEE)
把系统化、规范化、可度量的途径应用于软件开发、运行和维护过程中;研究其实现途径。
3.2 内容
(1)软件工程技术
- 软件开发方法学
- 软件开发过程
- 软件工具和软件工程环境
(2)软件工程管理
- 软件管理学
- 软件经济学
- 软件心理学