
第1拿面向对象技术概述 ●软件危机 ●结构化程序设计 软件工程 ●面向对象技术 ★米
第1章 面向对象技术概述 ⚫软件危机 ⚫结构化程序设计 ⚫软件工程 ⚫面向对象技术

软件危机 软件危机主要表现在以下几个方面: ·软件系统急剧膨胀 ·软件的复杂程度呈指数上升 ●软件的可靠性不能控制 ·几乎不可能的软件管理和维护
软件危机 软件危机主要表现在以下几个方面: ⚫软件系统急剧膨胀 ⚫软件的复杂程度呈指数上升 ⚫软件的可靠性不能控制 ⚫几乎不可能的软件管理和维护

软件危机 62年美国金星探测器水手2号卫星失败 程序是什么?软件是什么?怎样保证程序的绝 对可靠? ●一场对程序本质的研究导致goto之争 。从理论上无法证明基于任意赋值、任意goto的程 序是正确的 。程序测试只能证明程序有错,不能证明程序无错
软件危机 ⚫62年美国金星探测器水手2号卫星失败… ⚫程序是什么?软件是什么?怎样保证程序的绝 对可靠? ⚫一场对程序本质的研究导致goto 之争 从理论上无法证明基于任意赋值、任意goto的程 序是正确的。 程序测试只能证明程序有错,不能证明程序无错

结构化程序设计 ■■■■0■■■■■■■■0■■■见 ◆ ◆ ◆ 程序块 ◆ 循环体 真 程 程 真 入口 ◆ 条件 序 序 出口 表达式 块 块 ◆ 假 假 ■ 程序块 ◆ 不使用G0TO语句。 ●自顶向下、逐步求精,单入口、单出口控制结构。 ●任何算法都必须由这三种基本结构的嵌套所构成
程序块 条件 真 假 入口 出口 程 序 块 程 序 块 循环体 表达式 真 假 程序块 ⚫ 不使用GOTO语句。 ⚫ 自顶向下、逐步求精,单入口、单出口控制结构。 ⚫ 任何算法都必须由这三种基本结构的嵌套所构成 。 结构化程序设计

软件工程 ·结构化没有摆脱手工作坊式的软件开发 ·以工程化的方法开发软件 。软件开发应该是一种组织良好、管理严密、各类 人员协同配合而共同完成的工程项目。 。采纳人们长期从事各种工程项目所积累的行之有 效的原理、概念、技术和方法,特别要吸收几十 年来计算机硬件工业的发展经验。 。既要有技术措施(方法和工具),又要有组织管 理措施
软件工程 ⚫结构化没有摆脱手工作坊式的软件开发 ⚫以工程化的方法开发软件 软件开发应该是一种组织良好、管理严密、各类 人员协同配合而共同完成的工程项目。 采纳人们长期从事各种工程项目所积累的行之有 效的原理、概念、技术和方法,特别要吸收几十 年来计算机硬件工业的发展经验。 既要有技术措施(方法和工具),又要有组织管 理措施

软件工程一生命周期法 从时间角度对软件开发和维护的复杂问题进行分解 可行性研究 可行性研究报告 需求分析 需求分析报告,计划书 概要设计 概要设计说明书 详细设计 详细设计说明书 编码、测试 源代码、测试报告 使用、维护 用户手册,维护报告 退役 软件三 程序十文档
软件工程-生命周期法 需求分析 概要设计 详细设计 使用、维护 编码、测试 需求分析报告,计划书 概要设计说明书 详细设计说明书 源代码、测试报告 用户手册,维护报告 软件= 程序+文档 从时间角度对软件开发和维护的复杂问题进行分解 可行性研究 退役 可行性研究报告

软件工程一生命周期 ·不足之处 。软件生产率的提高不能满足用户需求 。没有很好地解决软件重用问题 。软件仍然很难维护 。软件往往不能真正满足用户需要 ⊙开发人员不能理解用户需求,开发的软件与用户预期的 系统不一致。 ⊙开发的系统不能适应用户需求的不断变化
软件工程-生命周期法 ⚫不足之处 软件生产率的提高不能满足用户需求 没有很好地解决软件重用问题 软件仍然很难维护 软件往往不能真正满足用户需要 开发人员不能理解用户需求,开发的软件与用户预期的 系统不一致。 开发的系统不能适应用户需求的不断变化

软件工程一快速原型法 快速作出一个原型,让用户作出评审后逐步扩 充、完善,得到目标系统。 ●开发阶段不严格评审,允许需求、设计编码、 试运行同时进行。各阶段可以反复。 开发、修改系统 运行原型系统 修改意见 ·高度迭代的动态方法
软件工程 -快速原型法 ⚫快速作出一个原型,让用户作出评审后逐步扩 充、完善,得到目标系统。 ⚫开发阶段不严格评审,允许需求、设计编码、 试运行同时进行。各阶段可以反复。 ⚫高度迭代的动态方法. 开发、修改系统 运行原型系统 修改意见

软件工程一快速原型法 ●原型法基于: 。快速开发的软件工具 。软件复用技术应用 。软件工程环境的集成化
软件工程 -快速原型法 ⚫原型法基于: 快速开发的软件工具 软件复用技术应用 软件工程环境的集成化

面向对玖技术 ●传统的计算机编程-面向过程 。用计算机语言描述解决问题的详细过程。 。面向机器,而不是面向问题。 ·面向对象的观点 。我们周围的世界是由各式各样的对象所组成。 。我们周围所发生的一切,无非是对象相互作用的 结果。 面向对象的程序设计
面向对象技术 ⚫传统的计算机编程-面向过程 用计算机语言描述解决问题的详细过程。 面向机器,而不是面向问题。 ⚫面向对象的观点 我们周围的世界是由各式各样的对象所组成。 我们周围所发生的一切,无非是对象相互作用的 结果。 ⚫面向对象的程序设计