一、软件的发展
1、程序设计阶段
(1)软件生产个体化
规模小,编写者和使用者同一个人
(2)软件是设计者头脑中隐含过程
除程序清单,无文档材料保存
2、程序系统阶段
(1)产品软件
由专门软件开发组织开发
(2)软件作坊
软件开发组织,沿用早期个体化软件开发方法
(3)软件危机
软件维护工作耗费大量资源
(4)软件工程
1968年,北大西洋公约组织计算机科学家讨论软件危机,提出软件工程
3、软件工程阶段
(1)软件危机得到缓解
打破软件生产个体化特征。
工程化的设计原则、方法和标准
(2)新的挑战
微处理器和个人计算机
分布式处理系统
局域网、广域网
宽带数字通讯
4、第四阶段
集中主机环境
客户机/服务器(二层)
客户机/服务器(三层)
浏览器/服务器
二、软件的危机
1、软件危机定义
在计算机软件开发和维护过程中遇到的一系列严重问题
2、主要表现
(1)开发成本和进度估计不准,延迟交付、取消项目
(2)用户对已交付软件不满意,开发人员对用户信息交流不充分,产品不符合用户需求
(3)软件产品质量靠不住,软件产品保证技术(审查、复审、测试)未坚持不懈应用软件开发全过程
(4)软件可维护性差开发时未考虑,很多错误难以改正
三、软件工程定义
1993年IEEE的定义
把系统化、规范化、可度量的途径应用于软件开发;运行和维护过程中,研究其实现途径。
四、软件工程内容
1、软件工程技术
软件开发方法学
软件开发过程
软件工具和软件工程环境
2、软件工程管理
软件管理学
软件经济学
软件心理学