软件工程方法与奥践 第5章面向对象的分析与设计 子教
软件工程方法与实践 第 5 章 面向对象的分析与设计 电 子教 案
第5章面向对象的分析与设计 5.1面向对象建模 5.2面向对象分析(OOA) 953面向对象设计(OOD) 实例1:图书馆系统 ③实例2:电梯控制系统 Q54小结
第 5 章 面向对象的分析与设计 5.1 面向对象建模 5.2 面向对象分析(OOA) 5.3 面向对象设计(OOD) 实例1:图书馆系统 实例2:电梯控制系统 5.4 小结
面向对象开发方法 面向对象方法是一种基于对象(数据、属性、操作构成 统一体)的方法。 面向对象方法在概念和表示方法上的一致性,保证了软 件工程各项开发活动之间的平滑(“无缝”)过渡。 面向对象开发过程的核心是面向对象分析(OOA)和面 向对象设计(oOD)两个阶段,但二者的界限比较模糊。 OOA是分析使用实例,提取用户需求,建立问题域逻辑 模型的过程;OOD是建立面向对象的求解域模型的过程。 从OOA到OOD实际是一个多次反复、逐步迭代模型的 过程
面向对象开发方法 面向对象方法是一种基于对象(数据、属性、操作构成 统一体)的方法。 面向对象方法在概念和表示方法上的一致性,保证了软 件工程各项开发活动之间的平滑(“无缝”)过渡。 面向对象开发过程的核心是面向对象分析(OOA)和面 向对象设计(OOD)两个阶段,但二者的界限比较模糊。 OOA是分析使用实例,提取用户需求,建立问题域逻辑 模型的过程;OOD是建立面向对象的求解域模型的过程。 从OOA到OOD实际是一个多次反复、逐步迭代模型的 过程
5.11面向对象模型 面向对象方法开发软件的关键是对问题域的理解。采用 面向对象观点建立问题域模型,开发出尽可能完善的表 现求解域模型的软件,是面向对象建模的目标 面向对象建模技术所建立的三种模型—对象模型、动 态模型和功能模型,分别从三个不同侧面描述了所要开 发的系统。对象模型定义了“做什么”的实体,功能模 型指明了系统应该“做什么”,动态模型明确规定在何 种状态下,接受什么事件的触发而“做什么
5.1.1 面向对象模型 面向对象方法开发软件的关键是对问题域的理解。采用 面向对象观点建立问题域模型,开发出尽可能完善的表 现求解域模型的软件,是面向对象建模的目标。 面向对象建模技术所建立的三种模型——对象模型、动 态模型和功能模型,分别从三个不同侧面描述了所要开 发的系统。对象模型定义了“做什么”的实体,功能模 型指明了系统应该“做什么” ,动态模型明确规定在何 种状态下,接受什么事件的触发而“做什么”
1.对象模型 ◆对象模型是一个类(属性和行为)、对象(类的实 例)、类和(或)对象之间关系的定义集 ◆对象模型表示静态的、结构化系统的“数据”性质 为建立动态模型和功能模型提供了实质性的框架。 ◆对象模型把面向对象的概念与常用的信息建模概念结 合起来,增强了模型的可理解性和表达能力。 ◆对象模型还表示了类/象之间的结构关系。类/对象 之间的关系一般可概括为关联、归纳(泛化)、组合 (聚集)三类
1. 对象模型 ◆ 对象模型是一个类(属性和行为)、对象(类的实 例)、类和(或)对象之间关系的定义集。 ◆ 对象模型表示静态的、结构化系统的“数据”性质, 为建立动态模型和功能模型提供了实质性的框架。 ◆ 对象模型把面向对象的概念与常用的信息建模概念结 合起来,增强了模型的可理解性和表达能力。 ◆ 对象模型还表示了类/对象之间的结构关系。类/对象 之间的关系一般可概括为关联、归纳(泛化)、组合 (聚集)三类
2.动态模型 ◆动态模型表示瞬间的、行为化的系统“控制”性质, 它规定了对象模型中对象的合法变化序列。 ◆对象有自己的运行周期,由多个阶段组成,每个特定 阶段都有规范该对象的行为的一组运行规则 ◆对象的状态是对象属性的一种抽象,事件是某个特定时 刻发生的一个系统行为,是引起对象状态转换的控制信息。 对象对事件的响应,取决于当时的状态,响应包括改变自 己的状态,或者是形成一个新的触发行为(事件)。 ◆动态模型描绘对象的状态,触发状态转换的事件,以 及对象行为(对事件的响应),即基于事件共享而互相关 联的一组状态集合构成了系统的动态模型
2. 动态模型 ◆ 动态模型表示瞬间的、行为化的系统“控制”性质, 它规定了对象模型中对象的合法变化序列。 ◆ 对象有自己的运行周期,由多个阶段组成,每个特定 阶段都有规范该对象的行为的一组运行规则。 ◆对象的状态是对象属性的一种抽象,事件是某个特定时 刻发生的一个系统行为,是引起对象状态转换的控制信息。 对象对事件的响应,取决于当时的状态,响应包括改变自 己的状态,或者是形成一个新的触发行为(事件)。 ◆ 动态模型描绘对象的状态,触发状态转换的事件,以 及对象行为(对事件的响应),即基于事件共享而互相关 联的一组状态集合构成了系统的动态模型
3.功能模型 ◆功能模型表示变化的系统的“功能”性质,指明了 系统应该“做什么”。它更直接地反映了用户对目标 系统的需求,有助于软件开发人员更深入地理解问题 域,改进和完善自己的分析和设计。 ◆功能模型由一组数据流图组成。顶层数据流图中的 处理,对应于复杂对象提供的服务;低层数据流图中 的处理,对应于基本对象(复杂对象的组成部分)的 服务。一个处理可能对应多个服务,或者是一个服务 可能对应多个处理。 ◆功能模型的数据流图远不如在结构化方法中那样重 要,但不能忽视功能模型的作用
3. 功能模型 ◆ 功能模型表示变化的系统的“功能”性质,指明了 系统应该“做什么” 。它更直接地反映了用户对目标 系统的需求,有助于软件开发人员更深入地理解问题 域,改进和完善自己的分析和设计。 ◆ 功能模型由一组数据流图组成。顶层数据流图中的 处理,对应于复杂对象提供的服务;低层数据流图中 的处理,对应于基本对象(复杂对象的组成部分)的 服务。一个处理可能对应多个服务,或者是一个服务 可能对应多个处理。 ◆ 功能模型的数据流图远不如在结构化方法中那样重 要,但不能忽视功能模型的作用
4.三种模型的关系 ◆对象模型、动态模型和功能模型相辅相承,使得对系 统的需求分析和设计描述更加直观、全面。 ◆对象模型是最基本、最重要的模型。 ◆为每个类建立的动态模型,描述了类和实例的运行 周期。 ◆功能模型中的处理,可能产生动态模型中的事件。 ◆动态模型中的状态转换驱使行为发生。这些行为在 数据流图中被映射成处理,同时与对象模型中的服务相 对应
4. 三种模型的关系 ◆对象模型、动态模型和功能模型相辅相承,使得对系 统的需求分析和设计描述更加直观、全面。 ◆对象模型是最基本、最重要的模型。 ◆ 为每个类建立的动态模型,描述了类和实例的运行 周期。 ◆ 功能模型中的处理,可能产生动态模型中的事件。 ◆ 动态模型中的状态转换驱使行为发生。这些行为在 数据流图中被映射成处理,同时与对象模型中的服务相 对应
4.三种模型的关系 ◆功能模型中的处理,对应于对象模型中类/对象所提 供的服务。 ◆功能模型中的数据存储、数据的源点/终点(在功能 模型中称为动作对象)是对象模型中的对象;功能模型 中的数据流是对象模型中的属性值,或者是整个对象。 ◆对象模型描述了功能模型中的动作对象、数据存储, 以及数据流的结构
4. 三种模型的关系 ◆功能模型中的处理,对应于对象模型中类/对象所提 供的服务。 ◆功能模型中的数据存储、数据的源点/终点(在功能 模型中称为动作对象)是对象模型中的对象;功能模型 中的数据流是对象模型中的属性值,或者是整个对象。 ◆ 对象模型描述了功能模型中的动作对象、数据存储, 以及数据流的结构
5.12统一建模语言(UML) ◆面向对象开发范型阶段之间的过渡是“无缝”的,定 义对象抽象类和建立面向对象系统的各类模型,需要 组便于描述的图形符号,并规定用这些符号表示特定模 型的语义规则。 ◆统一建模语言(UML)是专门设计的一种统一描述面 向对象方法的符号系统。 ◆UML是一种基于面向对象的可视化建模语言,实现了 基于面向对象的建模工具的统一,已成为国际、国内可 视化建模语言实际上的工业标准
5.1.2 统一建模语言(UML) ◆面向对象开发范型阶段之间的过渡是“无缝”的,定 义对象抽象类和建立面向对象系统的各类模型,需要一 组便于描述的图形符号,并规定用这些符号表示特定模 型的语义规则。 ◆统一建模语言(UML)是专门设计的一种统一描述面 向对象方法的符号系统。 ◆UML是一种基于面向对象的可视化建模语言,实现了 基于面向对象的建模工具的统一,已成为国际、国内可 视化建模语言实际上的工业标准