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