4.1 概述 4.2 分析建模 4.3 Jocobson 方法 4.4 Coad 与 Yourdon 面向对象分析

60
1 4.1 概概 4.2 分分分分 分分分分 4.3 Jocobson Jocobson 分分 分分 4.4 Coad Yourdon 概概概概概概

description

第 4 章 面向对象分析. 4.1 概述 4.2 分析建模 4.3 Jocobson 方法 4.4 Coad 与 Yourdon 面向对象分析. 4.1 概述. 早期的 OOD 方法 :Booch86 、 GOOD (通用面向对象的开发)、 HOOD (层次式面向对象的设计)、 OOSD (面向对象的结构设计)。 1989 年之后,面向对象方法的研究重点开始转向软件生命周期的分析阶段,并将 OOA 和 OOD 密切地联系在一起。. 分析任务. 当开发一个新的产品或系统时,需考虑下面的问题 : 如何以遵从 OO 软件工程的方式来刻划它? 什么是相关的对象? - PowerPoint PPT Presentation

Transcript of 4.1 概述 4.2 分析建模 4.3 Jocobson 方法 4.4 Coad 与 Yourdon 面向对象分析

Page 1: 4.1  概述 4.2 分析建模 4.3  Jocobson  方法 4.4  Coad 与 Yourdon 面向对象分析

1

4.1 概述 4.2 分析建模分析建模 4.3 Jocobson Jocobson 方法方法 4.4 Coad与Yourdon面向对象分析

Page 2: 4.1  概述 4.2 分析建模 4.3  Jocobson  方法 4.4  Coad 与 Yourdon 面向对象分析

2

4.1 概述 早期的早期的 OODOOD 方法方法 :Booch86:Booch86 、、 GOODGOOD (通用面(通用面向对象的开发)、向对象的开发)、 HOODHOOD (层次式面向对象的(层次式面向对象的设计)、设计)、 OOSDOOSD (面向对象的结构设计)。(面向对象的结构设计)。

19891989 年之后,面向对象方法的研究重点开始年之后,面向对象方法的研究重点开始转向软件生命周期的分析阶段,并将转向软件生命周期的分析阶段,并将 OOAOOA 和和OODOOD 密切地联系在一起。密切地联系在一起。

Page 3: 4.1  概述 4.2 分析建模 4.3  Jocobson  方法 4.4  Coad 与 Yourdon 面向对象分析

3

当开发一个新的产品或系统时,需考虑下面的问题 :

如何以遵从 OO 软件工程的方式来刻划它?

什么是相关的对象?

它们如何相互关联?

对象如何在系统的范围内工作?

如何对问题刻划或建模?

分析任务分析任务

Page 4: 4.1  概述 4.2 分析建模 4.3  Jocobson  方法 4.4  Coad 与 Yourdon 面向对象分析

4

OOA 的意图是定义所有和被求解的问题相关的类 ( 及同类关联的关系和行为 ) ,为了达到这个目标,必须完成以下任务:

1. 在客户和软件工程师之间沟通了解基本的用户需求。

2. 标识类 ( 即,定义属性和方法 ) 。

3. 划分类层次。

4. 表示对象—对象关系 ( 对象连接 ) 。

5. 对象行为建模。

6. 重复任务 1 到 5 ,直至完成建模。

Page 5: 4.1  概述 4.2 分析建模 4.3  Jocobson  方法 4.4  Coad 与 Yourdon 面向对象分析

5

传统方法与 OO 方法结构化分析对需求采用独特的“输入 - 加工 - 输出”视角,数据被脱离数据的变换过程而单独考虑;结构化分析方法着重于功能分解的使用。

Page 6: 4.1  概述 4.2 分析建模 4.3  Jocobson  方法 4.4  Coad 与 Yourdon 面向对象分析

6

Fichman 和 Kemerer 建议了 11 个建模方面,可用它们来比较各种传统的和面向对象的分析方法:

1. 实体的标识 / 分类。

2. 一般到特殊以及整体到部分的实体关系。

3. 其他实体关系。 4. 实体属性的描述。

5. 大型模型的划分。

6. 状态和状态间的变迁。

7. 功能的详细描述。

8. 自顶向下的分解。

9. 端到端的处理序列。

10. 排它性服务的标识。

11. 实体通信 ( 通过消息或事件 ) 。

Page 7: 4.1  概述 4.2 分析建模 4.3  Jocobson  方法 4.4  Coad 与 Yourdon 面向对象分析

7

面向对象的分析与设计( OOA&D )方法Booch 方法:包含“微开发过程”和“宏开发过程”两个过程,

Booch 的 OOA 宏观开发过程概述如下:标识类和对象;标识类和对象的语义;标识类和对象间的关系;进行一系列精化;实现类和对象。

Page 8: 4.1  概述 4.2 分析建模 4.3  Jocobson  方法 4.4  Coad 与 Yourdon 面向对象分析

8

Coad/Yourdon 方法:经常被视为最容易学习的 OOA 方法之一。建模符号相当简单且开发分析模型的指引是直接明了的。

过程如下:使用“寻找什么 (what to look for)” 标准来标识对象定义一般—特殊结构定义整体—部分结构标识主题 ( 子系统构件的表示 )定义属性定义服务

Page 9: 4.1  概述 4.2 分析建模 4.3  Jocobson  方法 4.4  Coad 与 Yourdon 面向对象分析

9

Jacobson 方法:也称为 OOSE( 面向对象软件工程 ) ,其特点是特别强调使用实例——用以描述用户和产品或系统间如何交互的场景。

过程概述如下:标识系统的用户和他们的整体责任建造需求模型建造分析模型

Page 10: 4.1  概述 4.2 分析建模 4.3  Jocobson  方法 4.4  Coad 与 Yourdon 面向对象分析

10

Rumbaugh 方法: Rambaugh 及其同事开发了用于分析、系统设计和对象级设计的对象建模技术 (Object Modeling Technique , OMT) 。

分析活动创建三个模型:对象模型 ( 对象、类、层次和关系的表示 ) ;动态模型 ( 对象和系统行为的表示 ) ;功能模型 ( 高层的类似 DFD 的时系统信息流的表示 ) 。

Page 11: 4.1  概述 4.2 分析建模 4.3  Jocobson  方法 4.4  Coad 与 Yourdon 面向对象分析

11

Wirfs - Brock 方法: Wirfs - Brock 方法[ WIR90]并没有明确地区分分析和设计任务,而是从对客户规约的估价到设计完成的一个连续过程。任务概述如下:

· 评估客户规约

· 使用语法分析从规约中抽取候选类

· 组合类以试图标识超类

· 为每个类定义责任

· 为每个类赋予责任

· 标识类之间的关系

· 定义类之间基于责任的协作

· 构造类的层次表示以显示继承关系

· 构造系统的协作图

Page 12: 4.1  概述 4.2 分析建模 4.3  Jocobson  方法 4.4  Coad 与 Yourdon 面向对象分析

12

虽然这些 OOA 方法的术语和过程步骤各有差异,但整体的OOA 过程是非常相似的。为了完成面向对象分析,软件工程师应该完成如下的分析过程:获取客户需求标识场景或用例使用基本的需求作为指南来选择类和对象为每个系统对象标识属性和操作定义组织类的结构和层次建造对象—关系模型建造对象—行为模型根据用例 / 场景来评审 OO 分析模型

Page 13: 4.1  概述 4.2 分析建模 4.3  Jocobson  方法 4.4  Coad 与 Yourdon 面向对象分析

13

统一的 OOA 方法 (UML)

Booch 、 Rumbaugh 和 Jacobson 将他们各自方法的最好特征组合成为一种统一方法,形成统一建模语言UML。

Page 14: 4.1  概述 4.2 分析建模 4.3  Jocobson  方法 4.4  Coad 与 Yourdon 面向对象分析

14

4.2 分析建模分析建模 什么是模型 ? 现实世界某些重要方面的表示。有时使用术语 为什么要构建模型 ?为什么不直接构建系统本身?

“答案是我们可以按照如下方式构建模型:突出或强调某些关键的系统特征,同时削弱系统的其他方面。” ___Ed Yourdon

Page 15: 4.1  概述 4.2 分析建模 4.3  Jocobson  方法 4.4  Coad 与 Yourdon 面向对象分析

15

分析模型是系统描述和设计模型之间的桥梁

系统描述

分析模型

设计模型

Page 16: 4.1  概述 4.2 分析建模 4.3  Jocobson  方法 4.4  Coad 与 Yourdon 面向对象分析

16

4.3 4.3 Jocobson Jocobson 方法方法 也称为 OOSE( 面向对象软件工程 ) ,该方法和其

他方法的不同点是特别强调使用实例——用以描述用户和产品或系统间如何交互的场景。

Jocobson 的 OOA 过程概述如下: 标识系统的用户和他们的整体责任 建造需求模型 定义参与者 (actor) 和他们的责任 为每个参与者标识使用实例 准备系统对象和关系的初步视图 应用使用实例作为场景去复审模型以确定有效性

Page 17: 4.1  概述 4.2 分析建模 4.3  Jocobson  方法 4.4  Coad 与 Yourdon 面向对象分析

17

建造分析模型 使用参与者交互的信息来标识界面对象 创建界面对象的结构视图 表示对象行为 分离出每个对象的子系统和模型 使用使用实例作为场景去复审模型以确定合法性

Page 18: 4.1  概述 4.2 分析建模 4.3  Jocobson  方法 4.4  Coad 与 Yourdon 面向对象分析

18

OOA 过程并不是从考虑对象开始,而是从理解系统的使用方式开始,如果系统是人机交互的,则考虑被人使用的方式;如果系统是涉及过程控制的,则考虑被机器使用的方式;或者如果系统协调和控制应用,则考虑被其他程序使用的方式。定义了使用场景后,即开始软件的建模过程。

需求收集总是任何软件分析活动的第一步。基于这些需求,软件工程师 ( 分析员 ) 可以创建一组场景,每个场景标识系统的一个使用序列。场景,经常称为用例,描述系统将如何运作。

为了创建用例,分析员必须首先标识使用该系统或产品的不同类型的人 ( 或设备 ) ,这些参与者 (actor) 真实地代表了当系统运行时人 ( 或设备 ) 所扮演的角色,更正式地定义,参与者是存在于系统之外和系统或产品通信的任何事物。

Page 19: 4.1  概述 4.2 分析建模 4.3  Jocobson  方法 4.4  Coad 与 Yourdon 面向对象分析

19

  Coad 和 Yourdon 方法经常被视为最容易学习的 OOA 方法之一。建模符号相当简单且开发分析模型的指引是直接明了的。 过程概述如下:

使用“寻找什么 (what to look for)” 标准来标识对象 定义一般—特殊结构 定义整体—部分结构 标识主题 ( 子系统构件的表示 ) 定义属性 定义服务

4.4 CoadCoad 与与 YourdonYourdon 面向对象分析面向对象分析

Page 20: 4.1  概述 4.2 分析建模 4.3  Jocobson  方法 4.4  Coad 与 Yourdon 面向对象分析

20

OOAOOA 概念模型概念模型 通过通过 OOAOOA 建立的建立的系统模型是以对象系统模型是以对象概念为中心的概念为中心的,因此称为概念模型。,因此称为概念模型。

这样的模型这样的模型由一组相关的类组成由一组相关的类组成。。 软件规格说明就是基于这样的概念模软件规格说明就是基于这样的概念模型形成的,型形成的,以模型描述为基本部分,以模型描述为基本部分,再加上再加上接口要求、性能限制接口要求、性能限制等其它方等其它方面的要求说明面的要求说明。。

Page 21: 4.1  概述 4.2 分析建模 4.3  Jocobson  方法 4.4  Coad 与 Yourdon 面向对象分析

21

构造构造 OOAOOA 概念模型的层次概念模型的层次 构造和评审构造和评审 OOAOOA 概念模型的顺序概念模型的顺序由五个层次组成。由五个层次组成。

这五个层次是分析过程中的层次。这五个层次是分析过程中的层次。 每个层次的工作都为系统的规格说每个层次的工作都为系统的规格说明增加了一个组成部分。明增加了一个组成部分。

这五个层次是:这五个层次是:类与对象、属性、类与对象、属性、服务、结构和主题服务、结构和主题。。

Page 22: 4.1  概述 4.2 分析建模 4.3  Jocobson  方法 4.4  Coad 与 Yourdon 面向对象分析

22

类名类名属性属性服务服务

Page 23: 4.1  概述 4.2 分析建模 4.3  Jocobson  方法 4.4  Coad 与 Yourdon 面向对象分析

23

1. 1. 识别类和对象识别类和对象

面向对象分析的第一个层次主要是面向对象分析的第一个层次主要是识别识别类和对象类和对象。。

类和对象是类和对象是对与应用有关的概念的抽象对与应用有关的概念的抽象。。不仅是说明应用问题的重要手段,同时不仅是说明应用问题的重要手段,同时也是构成软件系统的基本元素。也是构成软件系统的基本元素。

这一层工作是整个分析模型的基础。这一层工作是整个分析模型的基础。

Page 24: 4.1  概述 4.2 分析建模 4.3  Jocobson  方法 4.4  Coad 与 Yourdon 面向对象分析

24

选择类和对象的原则选择类和对象的原则

对象的属性应当是系统所关心的,或是系统对象的属性应当是系统所关心的,或是系统正常运行所必需的。正常运行所必需的。

类和对象应当提供某些服务或处理类和对象应当提供某些服务或处理 对象应当具有多个有意义的属性。仅有一个对象应当具有多个有意义的属性。仅有一个属性的对象最好表示为其他对象的属性。属性的对象最好表示为其他对象的属性。

所有属性对于类中所有实例都应有意义所有属性对于类中所有实例都应有意义 对象类应表示问题论域的需求对象类应表示问题论域的需求

Page 25: 4.1  概述 4.2 分析建模 4.3  Jocobson  方法 4.4  Coad 与 Yourdon 面向对象分析

25

找出候选的类和对象找出候选的类和对象 客观事物分为五类客观事物分为五类

可感知的物理实体,如:房屋,汽车等。可感知的物理实体,如:房屋,汽车等。 人或组织的角色,如:教师,计算机系等。人或组织的角色,如:教师,计算机系等。 应该记忆的事件,如:演出,交通事故等。应该记忆的事件,如:演出,交通事故等。两个或多个对象的相互作用,通常带有交易或两个或多个对象的相互作用,通常带有交易或接触的性质,如购买,教学等。接触的性质,如购买,教学等。

需要说明的概念,如:保险法,政策等需要说明的概念,如:保险法,政策等 基于语言的信息分析基于语言的信息分析

筛选出正确的类和对象筛选出正确的类和对象

选择类和对象的方法选择类和对象的方法

Page 26: 4.1  概述 4.2 分析建模 4.3  Jocobson  方法 4.4  Coad 与 Yourdon 面向对象分析

26

例:公共习题库管理系统。例:公共习题库管理系统。功能需求是: 教师可以向题库系统添加新的习题及其标准答案。 教师可以从题库中选取一组习题,作为学生作业,或者作为考试题,并在适当时间公布答案。

学生可以在系统中完成教师布置的作业,也可以自主练习。

教师可以通过系统检查学生的作业,学生也可以在教师公布答案后自己检查作业。

系统对题库进行管理,对教师和学生的权限进行设置:只有本课程教师可以添加和修改习题,并指定哪些习题答案可以公开,何时公开。

Page 27: 4.1  概述 4.2 分析建模 4.3  Jocobson  方法 4.4  Coad 与 Yourdon 面向对象分析

27

教师教师 学生学生

习题板习题板 练习本练习本

题库服务器题库服务器班级班级

考试板考试板习题习题

题库管理系统(类与对象层题库管理系统(类与对象层)

Page 28: 4.1  概述 4.2 分析建模 4.3  Jocobson  方法 4.4  Coad 与 Yourdon 面向对象分析

28

标识属性标识属性 对象所保存的信息称为它的属性,对象所保存的信息称为它的属性,

通常把它们封装在对象内部。通常把它们封装在对象内部。 类的属性所描述的是状态信息,每类的属性所描述的是状态信息,每个实例的属性值表达了该实例的状个实例的属性值表达了该实例的状态值。态值。

Page 29: 4.1  概述 4.2 分析建模 4.3  Jocobson  方法 4.4  Coad 与 Yourdon 面向对象分析

29

标识属性的方法和策略标识属性的方法和策略 按一般常识这个对象应该有哪些属性按一般常识这个对象应该有哪些属性; 在当前问题域中这个对象应该有哪些属性;在当前问题域中这个对象应该有哪些属性; 根据系统责任要求,这个对象应该有哪些属根据系统责任要求,这个对象应该有哪些属性性;

建立这个对象是为了保存和管理哪些信息;建立这个对象是为了保存和管理哪些信息; 对象为了在服务中实现其功能,应该有哪些对象为了在服务中实现其功能,应该有哪些属性;属性;

对象有哪些需要区别的状态,是否需要增加对象有哪些需要区别的状态,是否需要增加一个属性来区别这些状态;一个属性来区别这些状态;

Page 30: 4.1  概述 4.2 分析建模 4.3  Jocobson  方法 4.4  Coad 与 Yourdon 面向对象分析

30

属性的审查与筛选属性的审查与筛选 属性必须是以系统责任为目标的抽象(提供有用信息)。

属性必须描述对象的本身特征。 对象的导出属性应当略去。 仅有一个属性的对象可以标识为其它对象的属性。 这个属性是否可以通过继承得到,特殊类中不重复一般类的属性;

Page 31: 4.1  概述 4.2 分析建模 4.3  Jocobson  方法 4.4  Coad 与 Yourdon 面向对象分析

31

定义服务定义服务 对象收到消息后所能执行的操作称为对象收到消息后所能执行的操作称为它可提供的服务。它可提供的服务。

对每个对象和结构的对每个对象和结构的增加增加、、修改修改、、删删除除、、选择选择等服务等服务有时是隐含的有时是隐含的,在图,在图中不标出,但在存储类和对象有关信中不标出,但在存储类和对象有关信息的对象库中有定义。息的对象库中有定义。

其它服务则必须显式地在图中画出。其它服务则必须显式地在图中画出。

Page 32: 4.1  概述 4.2 分析建模 4.3  Jocobson  方法 4.4  Coad 与 Yourdon 面向对象分析

32题库管理系统(属性服务层题库管理系统(属性服务层)

教师姓名

教学任务...

工作

学生姓名学号班级练习

班级班级名称学生名单教师名单

题库服务器权限表

题库索引...

题库管理权限检查习题入库习题选取

习题编号

题目内容标准答案所属课程难度系数题目编写答案编写习题入库

习题板习题组

所属课程布置时间完成期限

通知选题

查阅题目公布答案查阅答案

考试板分数分布

答卷收卷阅卷

练习本使用者课程名习题解答取作业题核对答案检查作业自选题目

习题解答题目解答

标准答案答题

Page 33: 4.1  概述 4.2 分析建模 4.3  Jocobson  方法 4.4  Coad 与 Yourdon 面向对象分析

33

标识结构标识结构 典型的结构典型的结构

一般化一般化 -- 特殊化结构特殊化结构(( Gen-SpecGen-Spec 结结

构构))

整体整体 -- 部分结构部分结构(( Whole-PartWhole-Part 结构结构))

Page 34: 4.1  概述 4.2 分析建模 4.3  Jocobson  方法 4.4  Coad 与 Yourdon 面向对象分析

34

一般化一般化 -- 特殊化结构特殊化结构

文章

发表的文章 接受的文章

Page 35: 4.1  概述 4.2 分析建模 4.3  Jocobson  方法 4.4  Coad 与 Yourdon 面向对象分析

35

以特殊化的视点来看,一个以特殊化的视点来看,一个 Gen-SpeGen-Specc 结构结构可以看作是“可以看作是“ is ais a”” 或“或“ is a kiis a kind ofnd of”” 结构。例如,结构。例如, a Truck Vehicle a Truck Vehicle is ais a Vehicle Vehicle

a Truck Vehicle a Truck Vehicle is a kind ofis a kind of Vehicle Vehicle 在在 Gen-SpecGen-Spec 结构结构中,使用中,使用继承继承将较将较一般化的属性和服务放在一般化的类一般化的属性和服务放在一般化的类和对象中。和对象中。

Page 36: 4.1  概述 4.2 分析建模 4.3  Jocobson  方法 4.4  Coad 与 Yourdon 面向对象分析

36

如何发现一般—特殊结构如何发现一般—特殊结构

学习当前领域的分类知识学习当前领域的分类知识分类学是一门学问,很多行业已经形成一套科学的分类方法。例如:动物分类学、图书分类学。

按常识考虑事物的分类按常识考虑事物的分类从不同的角度考虑事物的分类。

例如:人员的分类:男、女;黄、白、黑种人; 干部、工人;股东、职员。

Page 37: 4.1  概述 4.2 分析建模 4.3  Jocobson  方法 4.4  Coad 与 Yourdon 面向对象分析

37

考察类属性与服务考察类属性与服务 看一个类的属性或服务是否适合这个类的全部对象,如果适合部分对象应从该类中划分出一些特殊类。

公司人员姓名ID股份?工资?

公司人员姓名ID

股东

股份

职员

工资

Page 38: 4.1  概述 4.2 分析建模 4.3  Jocobson  方法 4.4  Coad 与 Yourdon 面向对象分析

38

看两个或多个类是否含有相同的属性和服务,将其公共的属性的服务提取出来,构成一般类。

股东

姓名ID股份

公司人员

姓名ID

股东

股份

职员

工资

职员

姓名ID工资

Page 39: 4.1  概述 4.2 分析建模 4.3  Jocobson  方法 4.4  Coad 与 Yourdon 面向对象分析

39

考虑领域范围内的复用考虑领域范围内的复用

收款机ABC

XY

现钞收款机

D

Z

现钞收款机

ABCD

XYZ

Page 40: 4.1  概述 4.2 分析建模 4.3  Jocobson  方法 4.4  Coad 与 Yourdon 面向对象分析

40

整体整体 -- 部分结构部分结构

报社

采访组 编辑室 印刷厂

1

m 1 1

Page 41: 4.1  概述 4.2 分析建模 4.3  Jocobson  方法 4.4  Coad 与 Yourdon 面向对象分析

41

从整体的视点来看,一个从整体的视点来看,一个 Whole-ParWhole-Partt 结构结构可看作一个“可看作一个“ has ahas a”” 或“或“ is a is a part ofpart of”” 结构。例如,结构。例如,

Vehicle has a EngineVehicle has a Engine

Engine is a part of VehicleEngine is a part of Vehicle 其中,其中, VehicleVehicle 是整体对象,是整体对象, EngineEngine是局部对象。是局部对象。

Page 42: 4.1  概述 4.2 分析建模 4.3  Jocobson  方法 4.4  Coad 与 Yourdon 面向对象分析

42

如何发现整体—部分结构如何发现整体—部分结构

物理上的整体与部分物理上的整体与部分 机器 --- 零件

组织机构和它的下级机构组织机构和它的下级机构 公司 --- 部门

团体与成员团体与成员 班级— 学生

空间上的包容空间上的包容 厂房—机器

抽象事物的整体和部分抽象事物的整体和部分 学科 --- 分支学科

Page 43: 4.1  概述 4.2 分析建模 4.3  Jocobson  方法 4.4  Coad 与 Yourdon 面向对象分析

43

一般—特殊结构和整体—部分结构一般—特殊结构和整体—部分结构 区别区别

整体—部分结构:描述对象的组成关系。 一般—特殊结构:描述对象之间的继承关系。

联系联系:有些情况下,二者可以互相变通的。

汽车 制冷设备

冷藏车

汽车

冷藏车 制冷设备

冷藏车

汽车 制冷设备

Page 44: 4.1  概述 4.2 分析建模 4.3  Jocobson  方法 4.4  Coad 与 Yourdon 面向对象分析

44

概念:概念:用于表达对象之间的静态联系,即最终可通过对象属性来表示的一个对象对另一个对象的依赖关系。

表示法表示法

实 例 连 接实 例 连 接

类 B类 A连接名称

m n

1 1

1 m

m n

Page 45: 4.1  概述 4.2 分析建模 4.3  Jocobson  方法 4.4  Coad 与 Yourdon 面向对象分析

45

实例连接关系的标识实例连接关系的标识

Page 46: 4.1  概述 4.2 分析建模 4.3  Jocobson  方法 4.4  Coad 与 Yourdon 面向对象分析

46

多对多的关联的改进 改进方法改进方法::引入“互交实体”的第三个实体实例,将一个多对多的关联转换成两个一对多的关系。

nm教师 课程

nm

1 1

教师 课程

讲课任务主讲教师课程一个教师可以完成多个讲课任务,但一

个讲课任务只有一个教师去完成。

Page 47: 4.1  概述 4.2 分析建模 4.3  Jocobson  方法 4.4  Coad 与 Yourdon 面向对象分析

47

消 息 连 接消 息 连 接 消息消息是一个对象向另一个对象发出的服务请求。

消息的分类消息的分类 发送对象激活接收对象; 发送对象传送信息给接收对象; 发送对象询问接收对象; 发送对象请求接收对象提供服务。

Page 48: 4.1  概述 4.2 分析建模 4.3  Jocobson  方法 4.4  Coad 与 Yourdon 面向对象分析

48

消息连接消息连接OOA 或 OOD 模型中对对象之间行为依赖关系的表示。

消息连接表示从一个对象发送消息到另一个消息连接表示从一个对象发送消息到另一个

对象,由那个对象完成某些处理对象,由那个对象完成某些处理。。

表示法表示法用箭头表示方向从发消息的对象指向收消息的对象。

Page 49: 4.1  概述 4.2 分析建模 4.3  Jocobson  方法 4.4  Coad 与 Yourdon 面向对象分析

49

教师姓名教学任务

...工作

题库服务器权限表

题库索引...

题库管理权限检查习题入库习题选取

习题编号

题目内容标准答案所属课程难度系数题目编写答案编写习题入库

习题板习题组

所属课程布置时间完成期限通知选题查阅题目公布答案查阅答案

1m

Page 50: 4.1  概述 4.2 分析建模 4.3  Jocobson  方法 4.4  Coad 与 Yourdon 面向对象分析

50

找出消息连接的方法及策略找出消息连接的方法及策略 对于每一个对象,执行:对于每一个对象,执行:

查询该对象需要哪些对象的服务,从该对查询该对象需要哪些对象的服务,从该对象画一箭头到哪个对象;象画一箭头到哪个对象;

查询哪个对象需要该对象的服务,从那个查询哪个对象需要该对象的服务,从那个对象画一箭头到该对象;对象画一箭头到该对象;

循消息连接找到下一个对象,重复以上步循消息连接找到下一个对象,重复以上步骤。骤。

Page 51: 4.1  概述 4.2 分析建模 4.3  Jocobson  方法 4.4  Coad 与 Yourdon 面向对象分析

51

题库管理系统(结构

层)

教师姓名教学任务

...工作

学生姓名学号班级练习

班级班级名称学生名单教师名单

题库服务器权限表

题库索引...

题库管理权限检查习题入库习题选取

习题编号

题目内容标准答案所属课程难度系数题目编写答案编写习题入库

习题板习题组

所属课程布置时间完成期限通知选题查阅题目公布答案查阅答案

考试板分数分布答卷收卷阅卷

练习本使用者课程名习题解答取作业题核对答案检查作业自选题目

习题解答题目解答标准答案答题

教学任务课程名称起止时间授课班级任课教师

1m n

1m

1 1

m

m 11

m

Page 52: 4.1  概述 4.2 分析建模 4.3  Jocobson  方法 4.4  Coad 与 Yourdon 面向对象分析

52

主题层主题层 主题主题把一组具有较强联系的类组织在一起而把一组具有较强联系的类组织在一起而得到的类的集合。得到的类的集合。

主题可以看成是高层的模块或子系统。主题可以看成是高层的模块或子系统。 对于面向对象分析模型,对于面向对象分析模型,主题表示此模主题表示此模型的整体框架型的整体框架。可以是一 个。可以是一 个层次结构层次结构。。

通过对主题的识别,可以让人们能够比通过对主题的识别,可以让人们能够比较清晰地了解大而复杂的模型。较清晰地了解大而复杂的模型。

Page 53: 4.1  概述 4.2 分析建模 4.3  Jocobson  方法 4.4  Coad 与 Yourdon 面向对象分析

53

编辑管理的主题编辑管理的主题

Page 54: 4.1  概述 4.2 分析建模 4.3  Jocobson  方法 4.4  Coad 与 Yourdon 面向对象分析

54

主题的特点主题的特点 主题是由一组类构成的集合,它本身不是类。 一个主题内的对象应具有某种意义上的内在联系。

主题的划分有一定的灵活性,“仁者见仁,智者见智”。

不同的主题之间可以有重叠部分。

Page 55: 4.1  概述 4.2 分析建模 4.3  Jocobson  方法 4.4  Coad 与 Yourdon 面向对象分析

55

主题的表示

标号 标号

标号 标号

Page 56: 4.1  概述 4.2 分析建模 4.3  Jocobson  方法 4.4  Coad 与 Yourdon 面向对象分析

56

主题的划分主题的划分 划分方法划分方法

自顶向下方式先建立类图,再划分主题;适合中小型系统。

自底向上方式先确定主题,按主题进行分工,建立各子系统的类图,再汇总成为总的类图。适合大型系统。

划分步骤划分步骤 低层主题的划分 主题合并

Page 57: 4.1  概述 4.2 分析建模 4.3  Jocobson  方法 4.4  Coad 与 Yourdon 面向对象分析

57

低层主题的划分低层主题的划分 将将每一种结构每一种结构(包括(包括整体整体 -- 部分结构部分结构、和、和一般化一般化 -- 特殊化结构特殊化结构))中最上层的类提升中最上层的类提升成为主题成为主题;;

将各不属于任何结构的类提升主题将各不属于任何结构的类提升主题;; 检查在相同或类似的问题论域中以前做面检查在相同或类似的问题论域中以前做面向对象分析的结果,看是否有可直接复用向对象分析的结果,看是否有可直接复用的主题。的主题。

Page 58: 4.1  概述 4.2 分析建模 4.3  Jocobson  方法 4.4  Coad 与 Yourdon 面向对象分析

58

主题合并主题合并 根据问题域的情况根据问题域的情况如某几个主题所包含的对象类在概念上比较接近,可合并。

考虑系统责任考虑系统责任如几个主题涉及的系统责任有较大的相关性,或它们的功能同属某项大的功能,则可以合并。

把强耦合的主题合并为一个主题把强耦合的主题合并为一个主题

Page 59: 4.1  概述 4.2 分析建模 4.3  Jocobson  方法 4.4  Coad 与 Yourdon 面向对象分析

59

题库管理系统(主题

层)

教师姓名教学任务

...工作

学生姓名学号班级练习

班级班级名称学生名单教师名单

题库服务器权限表

题库索引...

题库管理权限检查习题入库习题选取

习题编号

题目内容标准答案所属课程难度系数题目编写答案编写习题入库

习题板习题组

所属课程布置时间完成期限通知选题查阅题目公布答案查阅答案

考试板分数分布答卷收卷阅卷

练习本使用者课程名习题解答取作业题核对答案检查作业自选题目

习题解答题目解答标准答案答题

教学任务课程名称起止时间授课班级任课教师

1m n

1m

1 1

m

m 11

m

Page 60: 4.1  概述 4.2 分析建模 4.3  Jocobson  方法 4.4  Coad 与 Yourdon 面向对象分析

60

题库管理系统(主题

层)

教师姓名教学任务

...工作

学生姓名学号班级练习

班级班级名称学生名单教师名单

题库服务器权限表

题库索引...

题库管理权限检查习题入库习题选取

习题编号

题目内容标准答案所属课程难度系数题目编写答案编写习题入库

习题板习题组

所属课程布置时间完成期限通知选题查阅题目公布答案查阅答案

考试板分数分布答卷收卷阅卷

练习本使用者课程名习题解答取作业题核对答案检查作业自选题目

习题解答题目解答标准答案答题

教学任务课程名称起止时间授课班级任课教师

1m n

1m

1 1

m

m 11

m

1 1

1 1

2 2

22

3

3

3

3