⑤,丽步交通大净现代远程教育課程 软件工程概论 主讲教师:刘海岩副教授 mailhaiyanliuhyl@yahoo.com.cn 2021/2/20
2021/2/20 1
西安交通大学现代远程教育课程 软件工程概论 第7章面向对象软件工程的概念 传统软件开发方法的局限性 ·面向对象的过程模型 面向对象的概念 几种面向对象方法 统一建模语言一UML 主讲教师:刘海岩副教授
2 第7章 面向对象软件工程的概念 • 传统软件开发方法的局限性 • 面向对象的过程模型 • 面向对象的概念 • 几种面向对象方法 • 统一建模语言-UML
西安交通大学现代远程教育课程 软件工程概论 71传统软件开发方法的局限性 传统的软件工具、软件技术和抽象层次越来越难 以适应大规模复杂软件系统的开发特点。软件能力问 题已经成为制约软件发展的因素。 软件工程自70年代以来,有力的推动了软件能力 的解决。自顶向下的分析与设计的方法、软件项目的 工程化管理、软件工具和开发环境、软件质量保证等 都对软件的发展起了非常重要的作用。传统的软件开 发方法在当时的软件工程中起了主导作用,随着系统 复杂性、多变性增强,传统方法的缺陷就显露了出来: (1)面向过程为主。系统围绕着由计算机来实现 功能的复杂过程而建立,在分析和解决问题时与人们 对现实世界的认识有一定差距 主讲教师:刘海岩副教授
3 7.1 传统软件开发方法的局限性 传统的软件工具、软件技术和抽象层次越来越难 以适应大规模复杂软件系统的开发特点。软件能力问 题已经成为制约软件发展的因素。 软件工程自70年代以来,有力的推动了软件能力 的解决。自顶向下的分析与设计的方法、软件项目的 工程化管理、软件工具和开发环境、软件质量保证等 都对软件的发展起了非常重要的作用。传统的软件开 发方法在当时的软件工程中起了主导作用,随着系统 复杂性、多变性增强,传统方法的缺陷就显露了出来: (1)面向过程为主。系统围绕着由计算机来实现 功能的复杂过程而建立,在分析和解决问题时与人们 对现实世界的认识有一定差距
西安交通大学现代远程教育课程 软件工程概论 (2)软件结构稳定性差。需求分析阶段重点是功能模型, 难以彻底明确全部需求。设计阶段的软件体系结构是基于 系统功能建立的。每个模块完成一个基本功能,多个模块 的组合完成一个整体功能。一个模块的变动可能会影响到 多个模块。用户的需求大多针对功能,功能的变化会引起 体系结构的变化,不利于系统的维护 (3)软件开发的抽象力度小。解决问题的类型一般用于 “输入-处理-输出”为核心的数据处理系统,不适应于复 杂的实时、交互、事件驱动、分布式等新型应用的系统开 发 (4)软件重用未能得到很好的解决。传统的方法一般 从“零”开始开发软件,数据与操作作为相互分离的实体 来考虑,使软件的可复用性差。重用的实施仅仅是公用模 块的调用。面向对象的封装性、继承性、多态性等特性支 持软件重用且重用的粒度大。软件的重用导致更快地、高 质量地开发软件,为软件工业化生产奠定基础 主讲教师:刘海岩副教授
4 (2)软件结构稳定性差。需求分析阶段重点是功能模型, 难以彻底明确全部需求。设计阶段的软件体系结构是基于 系统功能建立的。每个模块完成一个基本功能,多个模块 的组合完成一个整体功能。一个模块的变动可能会影响到 多个模块。用户的需求大多针对功能,功能的变化会引起 体系结构的变化,不利于系统的维护。 (3)软件开发的抽象力度小。解决问题的类型一般用于 “输入-处理-输出”为核心的数据处理系统,不适应于复 杂的实时、交互、事件驱动、分布式等新型应用的系统开 发。 (4)软件重用未能得到很好的解决。传统的方法一般 从“零”开始开发软件,数据与操作作为相互分离的实体 来考虑,使软件的可复用性差。重用的实施仅仅是公用模 块的调用。面向对象的封装性、继承性、多态性等特性支 持软件重用且重用的粒度大。软件的重用导致更快地、高 质量地开发软件,为软件工业化生产奠定基础
西安交通大学现代远 软件工程概论 输入过程1 过程2 数据实体 输出 过程3 传统方法数据与过程是分离的 消息 对象 属于该对象 消息 的数据 处理数据的方法 对象把数据和处理数据的方法封状成一个单元 主讲教师:刘海岩副教授
5 传统方法数据与过程是分离的 输入 过程1 输出 过程2 过程3 数据实体 属于该对象 的数据 对象 处理数据的方法 消息 消息 对象把数据和处理数据的方法封状成一个单元
西安交通大学现代远程教育课程 软件工程概论 传统方法与面向对象方法的比较 传统方法 面向对象方法 系统是过程的集合 系统是交互对象的集合 过程与数据实体交互 对象与人或其它对象交互 过程接受输入并产生输出 对象发送与响应消息 主讲教师:刘海岩副教授
6 传统方法与面向对象方法的比较 面向对象方法 系统是交互对象的集合 对象与人或其它对象交互 对象发送与响应消息 传统方法 系统是过程的集合 过程与数据实体交互 过程接受输入并产生输出
西安交通大学现代远程教育课程 软件工程概论 72面向对象的过程模型 计划分析设计 1、演化/并行模型 (p402) 评审及精化早期的分析/设计迭代 是 Booch等人在90年 分析设计 分析设计 代初建议的。该模型与 第1章介绍的螺旋模型 评审及精化 增量模型相似。但强调:|(计划分析设计)瓶可)测试丫配)一个 (1)对OO系统的分析 和设计建模不在相同的 评审及精化 抽象层次上进行。 (2)分析和设计可以 计划分析设计复用类人实现测试客户 增量 并发地应用到独立的系 统构件。 评审及精化 计划分析〔设计翅瓶买轰测试 客户 主讲教师:刘海岩副教授
7 7.2 面向对象的过程模型 计 划 分 析 设 计 分 析 设 计 分 析 设 计 计 划 分 析 设 计 提 取 可 复 用 类 原 型 实 现 测 试 客 户 评 估 计 划 分 析 设 计 提 取 可 复 用 类 原 型 实 现 测 试 客 户 评 估 计 划 分 析 设 计 提 取 可 复 用 类 原 型 实 现 测 试 客 户 评 估 评 审 及 精 化 早 期 的 分 析 / 设 计 迭 代 评 审 及 精 化 评 审 及 精 化 评 审 及 精 化 第 一 个 原 型 下 一 个 增 量 1、演化 /并行模型 (p402) 是Booch等人在90 年 代初建议的。该模型与 第1章介绍的螺旋模型、 增量模型相似。但强调: (1)对OO系统的分析 和设计建模不在相同的 抽象层次上进行。 (2)分析和设计可以 并发地应用到独立的系 统构件
西安交通大学现代远程教育课程 软件工程概论 该模型每次迭代都要计划、工程和评估。每个计划 都要调整进度以适应和本次迭代相关的变化。早期阶段 迭代进行的分析与设计工作为了分离出○O模型中的所有 重要元素;当工程工作不断进展时,产生软件的增量版 本;在评估阶段对每个增量的评估其反馈将影响下一次 计划活动及后续增量。 2、RUP 98年6月推出,该过程强调了开发方法的统一、建模 语言的统一、研究成果的统一。该过程是基于构件的, 即所构造的系统是由软件构件通过明确定义的接口相互 连接所建造起来的。它使用∪ML来制定软件系统的所有 蓝图。RUP的主要特点: (1)用例驱动 用例作为系统分析、设计、实现和测试的基本输入 8 主讲教师:刘海岩副教授
8 该模型每次迭代都要计划、工程和评估。每个计划 都要调整进度以适应和本次迭代相关的变化。早期阶段 迭代进行的分析与设计工作为了分离出OO模型中的所有 重要元素;当工程工作不断进展时,产生软件的增量版 本;在评估阶段对每个增量的评估其反馈将影响下一次 计划活动及后续增量。 2、RUP 98年6月推出,该过程强调了开发方法的统一、建模 语言的统一、研究成果的统一。该过程是基于构件的, 即所构造的系统是由软件构件通过明确定义的接口相互 连接所建造起来的。它使用UML来制定软件系统的所有 蓝图。RUP的主要特点: (1)用例驱动 用例作为系统分析、设计、实现和测试的基本输入
西安交通大学现代远程教育课程 软件工程概论 即用例不只是一种确定系统需求的工具,它还能驱 动系统的设计、实现和测试的进行 基于用例模型,开发人员可以创建一系列实现这些 用例的设计模型和实现模型。开发人员可以审査每个后续 建立的模型是否与用例模型一致。测试人员测试实现以确 定实现模型的构件是否实现了用例。所以用例启动了开发 过程,还使开发过程结合为一体。开发过程是沿着一系列 从用例得到的工作流前进的。 9 主讲教师:刘海岩副教授
9 即用例不只是一种确定系统需求的工具,它还能驱 动系统的设计、实现和测试的进行。 基于用例模型,开发人员可以创建一系列实现这些 用例的设计模型和实现模型。开发人员可以审查每个后续 建立的模型是否与用例模型一致。测试人员测试实现以确 定实现模型的构件是否实现了用例。所以用例启动了开发 过程,还使开发过程结合为一体。开发过程是沿着一系列 从用例得到的工作流前进的
西安交通大学现代远程教育课程 软件工程概论 下图显示了用例模型与其他模型之间的相关性: 用例模型 由.建立 分析模型由…设计 为系统描述设计模型 由…实现 系列类为系统定义实现模型」由∵;验证 系列子系 统和界面将类映射测试模型」由…分配 到构件验证系统配置模型 是否提供定义软件 了用例模 分布 型中描述 的功能 10 主讲教师:刘海岩副教授
10 下图显示了用例模型与其他模型之间的相关性: 用例模型 由…建立 分析模型 为系统描述 一系列类 由…设计 设计模型 为系统定义 一系列子系 统和界面 由…实现 实现模型 将类映射 到构件 测试模型 由…分配 由…验证 验证系统 是否提供 了用例模 型中描述 的功能 配置模型 定义软件 分布