清华大学出版社 TSINGHUA UNIVERSITY PRESS 第4章软件工程 4.1软件工程概述 4.2软件工程模式 4.3软件生存周期 4.4面向对象的设计 4.5软件维护
第4章 软件工程 4.1 软件工程概述 4.2 软件工程模式 4.3 软件生存周期 4.4 面向对象的设计 4.5 软件维护
清华大学出版社 TSINGHUA UNIVERSITY PRESS 41软件工程概述 1.软件发展 软件发展的几个阶段 1.程序设计时代(1946年1955年) 2.软件时代(1955年~1970年) 3.软件工程时代(1970年现在) 软件工程是在20世纪60年代末期提出的。这一概念 的提出,目的是倡导以工程的原理、原则和方法进 行软件开发,以期解决当时出现的“软件危机
4.1 软件工程概述 1. 软件发展 • 软件发展的几个阶段 1.程序设计时代(1946年~1955年) 2. 软件时代(1955年~1970年) 3.软件工程时代(1970年现在) • 软件工程是在20世纪60年代末期提出的。这一概念 的提出,目的是倡导以工程的原理、原则和方法进 行软件开发,以期解决当时出现的“软件危机
清华大学出版社 TSINGHUA UNIVERSITY PRESS 2.软件危机 10O 80 硬件 60 40 软件 20 1955 1970 1985 计算机系统硬件/软件成本变化趋势 ■在开发一个新型计算机系统或修改一个现有系统的 过程中,最大部分的资金是用在软件系统开发方面
2. 软件危机 计算机系统硬件/软件成本变化趋势 ◼ 在开发一个新型计算机系统或修改一个现有系统的 过程中,最大部分的资金是用在软件系统开发方面。 100 80 60 40 20 0 1955 1970 1985 硬件 软件 总费用的百分比
清华大学出版社 TSINGHUA UNIVERSITY PRESS 产生软件危机原因 ①开发人员和用户之间的矛盾。 ②缺乏开发大型软件系统的经验 ③缺乏有力的方法学和工具方面的支持 解决软件危机的途径 ■探索用工程的方法进行软件生产的可能性,即 用工程的概念、原理、技术和方法进行软件的 开发、管理、维护和更新。 ■诞生了计算机科学技术的一个领域“软件工 程
产生软件危机原因 ①开发人员和用户之间的矛盾。 ②缺乏开发大型软件系统的经验 ③缺乏有力的方法学和工具方面的支持 解决软件危机的途径 ◼ 探索用工程的方法进行软件生产的可能性,即 用工程的概念、原理、技术和方法进行软件的 开发、管理、维护和更新。 ◼ 诞生了计算机科学技术的一个领域“软件工 程”
清华大学出版社 TSINGHUA UNIVERSITY PRESS 3软件工程 软件工程学科是一门指导计算机软件开发和维护的工程 学科。软件工程是一类求解软件的工程。它应用计算机科学、 数学及管理科学等原理,借鉴传统工程的原则、方法,创建 软件以达到提高质量,降低成本的目的。其中,计算机科学、 数学用于构造模型与算法,工程科学用于制定规范、评估成 本及确定权衡,管理科学用于计划、资源、质量、成本等管 理。 1983年IEEE给出软件工程定义为:“软件工程是开 发、运行、维护和修复软件的系统方法” 其中“软件”的定义为:计算机程序、方法、规则 相关的文档资料以及在计算机上运行时所必需的数 据
3.软件工程 软件工程学科是一门指导计算机软件开发和维护的工程 学科。软件工程是一类求解软件的工程。它应用计算机科学、 数学及管理科学等原理,借鉴传统工程的原则、方法,创建 软件以达到提高质量,降低成本的目的。其中,计算机科学、 数学用于构造模型与算法,工程科学用于制定规范、评估成 本及确定权衡,管理科学用于计划、资源、质量、成本等管 理。 ▪ 1983年IEEE给出软件工程定义为:“软件工程是开 发、运行、维护和修复软件的系统方法” ; ▪ 其中“软件”的定义为:计算机程序、方法、规则、 相关的文档资料以及在计算机上运行时所必需的数 据
清华大学出版社 TSINGHUA UNIVERSITY PRESS 软件工程的目标 软件工程的目标可概括为:在给定成本、进度的前 提下,开发出具有可修改性、有效性、可靠性、可理 解性、可维护性、可重用性、可适应性、可移植性、 可追踪性和可互操作性并满足用户需要的软件产品
软件工程的目标 软件工程的目标可概括为:在给定成本、进度的前 提下,开发出具有可修改性、有效性、可靠性、可理 解性、可维护性、可重用性、可适应性、可移植性、 可追踪性和可互操作性并满足用户需要的软件产品
清华大学出版社 TSINGHUA UNIVERSITY PRESS 4.2软件工程模式 传统软件工程模式: 建立在软件生存周期方法学和结构化程序设计方 法学的基础上 现代软件工程模式: 强调人在系统开发中的作用
4.2 软件工程模式 • 传统软件工程模式 : 建立在软件生存周期方法学和结构化程序设计方 法学的基础上 • 现代软件工程模式: 强调人在系统开发中的作用
清华大学出版社 TSINGHUA UNIVERSITY PRESS 4.3软件生存周期 软件生存周期表明软件从功能确定、设计,到 开发成功投入使用,并在使用中不断地修改、增 补和完善,直至被新的需要所替代而停止该软件 的使用的全过程。 4.3.1软件生存周期各阶段任务 ■软件生存周期被划分为5个阶段: ◇系统定义 系统设计 系统编程 系统测试 ☆系统维护
4.3 软件生存周期 软件生存周期表明软件从功能确定、设计,到 开发成功投入使用,并在使用中不断地修改、增 补和完善,直至被新的需要所替代而停止该软件 的使用的全过程。 4.3.1 软件生存周期各阶段任务 ◼软件生存周期被划分为5个阶段: ❖ 系统定义 ❖ 系统设计 ❖ 系统编程 ❖ 系统测试 ❖ 系统维护
清华大学出版社 TSINGHUA 可行性研究 系统定义(做什么): 可行性研究、需求分析 需求分析 系统设计(如何做): 概要设计 概要设计、详细设计 细设计 系统编程(如何实现) 实现 系统测试(做的怎样) 单元测试、组装测试、确认 调试 测试 维护 系统维护(不断完善) 退役 图2.1软件生命周期
图 2.1 软件生命周期 退 役 维 护 调 试 实 现 详细设计 需 求 分 析 概要设计 可 行 性 研 究 系统定义(做什么): 可行性研究、需求分析 系统设计(如何做): 概要设计、详细设计 系统编程(如何实现) 系统测试(做的怎样) 单元测试、组装测试、确认 测试 系统维护(不断完善)
清华大学出版社 TSINGHUA UNIVERSITY PRESS 4.3.2软件开发模型 软件开发模型是从软件项目需求定义直至软件 经使用后废弃为止,跨越整个生存期的系统开发 运作和维护所实施的全部过程、活动和任务的结构 框架。 最早出现的软件开发模型是1970年W.Royc提 出的瀑布模型,而后随着软件工程学科的发展和软 件开发的实践,相继提出了原型模型、螺旋模型、 喷泉模型、智能模型等
4.3.2 软件开发模型 软件开发模型是从软件项目需求定义直至软件 经使用后废弃为止,跨越整个生存期的系统开发、 运作和维护所实施的全部过程、活动和任务的结构 框架。 最早出现的软件开发模型是1970年W.Royce提 出的瀑布模型,而后随着软件工程学科的发展和软 件开发的实践,相继提出了原型模型、螺旋模型、 喷泉模型、智能模型等