Presentation is loading. Please wait.

Presentation is loading. Please wait.

面向对象建模 对象(object) 对象具有的含义: 现实世界中某个具体的物理实体或概念在计算机逻辑中的映射和体现。 在现实世界中:

Similar presentations


Presentation on theme: "面向对象建模 对象(object) 对象具有的含义: 现实世界中某个具体的物理实体或概念在计算机逻辑中的映射和体现。 在现实世界中:"— Presentation transcript:

1 面向对象建模 对象(object) 对象具有的含义: 现实世界中某个具体的物理实体或概念在计算机逻辑中的映射和体现。 在现实世界中:
是客观世界中的一个实体

2 面向对象建模 对象(object) 对象具有的含义: 在面向对象程序中: 表达成计算机可理解、可操纵、具有一 定属性和行为的对象
在计算机世界中: 是一个可标识的存储区域

3 面向对象建模 面向对象方法是一种运用对象、类、继承、封装、聚合、消息传递、多态性等概念来构造系统的软件开发方法。
面向对象=对象 + 类 + 继承 + 消息通信

4 面向对象建模 面向对象的主要特征: 封闭性 (Encapsulation) 继承性 (Inheritance)
多态性 (Polymorphism)

5 类(class) 具有共同属性和行为的对象的抽象 类与对象的关系 类是对象的抽象 对象是类的实例 对象

6 对象、实体与类 现实世界 计算机世界 影射 对象 实体 概念世界 计算机逻 辑的实现 抽象数据类

7 面向对象建模 封装 封装是软件开发方法的重要原则,有两个涵义: 把对象的全部属性和全部服务结合在一起,形成一个不可分割的独立单位(对象)。
尽可能隐蔽对象的内部细节 (信息隐蔽)

8 对象把数据和处理数据的方法封状成一个单元
输入 过程1 数据实体 过程2 输出 过程3 传统方法数据与过程是分离的 对象 消息 属于该对象 的数据 消息 处理数据的方法 对象把数据和处理数据的方法封状成一个单元

9 面向对象建模 传统方法和面向对象方法的比较 传统方法 面向对象方法 系统是过程的集合 过程与数据实体交互 过程接受输入并产生输出
系统是交互对象的集合 对象与人或其它对象交互 对象发送与响应消息

10 继承 (继承性inheritance) 继承性是父类和子类之间共享数据和方法的机制 共性部分 继承性具有传递性 继承性包括单继承和多重继承
继承部分 增加部分 子类

11 面向对象建模 继承性作用 使软件系统具有开放性 更好地进行抽象与分类 增强代码的重用率

12 面向对象建模 多态(多态性polymorphism) 不同的对象收到同一消息可产生完全 不同的结果,这一现象叫做多态 多态的效果 
不同的对象收到同一消息可产生完全 不同的结果,这一现象叫做多态 多态的效果  用户发送一个通用的消息,而实现 的细节则由接收对象自行决定

13 面向对象建模 消息(message) 消息  对象之间相互请求或相互协作的途径,是要求某个对象执行某个功能操作的规格说明

14 面向对象建模 消息(message) 消息内容  通常包含接收方及请求接收方完成的功能信息 发送方  发出消息,请求接收方响应
消息内容  通常包含接收方及请求接收方完成的功能信息 发送方  发出消息,请求接收方响应 接收方  收到消息后,经过解释,激活方法,予以响应

15 面向对象建模 面向对象方法的主要优点: 自然性 追求软件系统对现实系统的直接模拟,尽量实现将现实世界中的事物直接映射到软件系统的解空间中。

16 面向对象建模 面向对象方法的主要优点: 可复用性(可重用性) reusebility 可扩展性 可管理性

17 面向对象建模 可复用性(可重用性) 面向对象技术允许复用的不仅仅是 代码, 通过面向对象技术, 我们可以复
用需求、分析、设计、测试计划、用户 界面以及体系结构等等, 事实上, 软件 工程生存期中的每个部分都可以复用。

18 面向对象建模 传统系统分析:面向功能 ,把系统看成 一组功能 OOA: 把问题当作一组相互作用 的实体,并确定实体间关系

19 面向对象建模 面向对象技术是一个有全新概念的 开发模式,其特点是: (1)方法是对软件开发过程所有阶段进 行综合考虑而得到的;

20 面向对象建模 面向对象技术是一个有全新概念的 开发模式,其特点是: (2)从生存期的一个阶段到下一个阶段 所使用的方法与技术具有高度的连
续性; (3)将OOA、OOD、OOP集成到生存 期的相应阶段.

21 面向对象建模 OO方法的开发过程 OO方法改进了在生存期各个阶段间的界面,因为生存期各个阶段开发出来的“部件”都是类.
在面向对象生存期的各个阶段对各个类的信息进行细化,类成为分析、设计和实现的基本单元。

22 类的生存期模型 实现 类的规 格说明 从既存 类演变 从废弃型开发 既存类 的复用 渐增式的实现 渐增式的测试 测试用 求精和 维护
例和测试 的开发 求精和 维护

23 类的设计与实现 类的规格说明指导对存放现存类的软件库进行查找 现存类提供当前应用所需功能 三种可能利用现存类的方向:  从现存类进行演变
 现存类的复用  从现存类进行演变  从废弃类进行开发

24 面向对象建模 对象之间的联系与对象模型

25 面向对象建模 面向对象方法开发软件 通常建立的三种形式的模型 描述系统数据结构的对象模型 描述系统控制结构的动态模型 描述系统功能的功能模型

26 面向对象建模 面向对象方法开发软件 通常建立的三种形式的模型 三种模型从三个不同但由密切 相关的角度模拟目标系统。
对象模型是最重要、最基本、最核心的。

27 面向对象建模 对象模型 对象模型表示静态的、结构的系统数据的性质。 OO方法强调围绕对象而不是功能来构造系统。
对模拟客观世界实体的对象以及对象彼此之间的关系的映射,描述了系统的静态结构。 OO方法强调围绕对象而不是功能来构造系统。

28 面向对象建模 类及对象间常见的联系 分类关系 (归纳关系、一般与特殊的关系) 组成关系 (组合关系、整体/部分的关系)
对象属性之间的静态的联系 对象行为的动态联系

29 面向对象建模 学生 本科生 研究生 分类关系(一般与特殊的关系)示例

30 面向对象建模 学院 实验室 学科部 办公室 组成关系(整体与部分的关系)示例

31 面向对象建模 对象模型中表现 上述联系的结构和连接

32 面向对象建模 (1)分类结构(一般/特殊结构) 分类是对象抽象的基础 分类结构表现的是事物的一般与特殊的关系,即“is-a”关系。

33 面向对象建模 (1)分类结构(一般/特殊结构)
面向对象术语中常把一般与特殊的关系称为泛化(Generalization)与特化(Specialization)联系

34 一般/特殊结构举例 继承 存户 一般类 (父类、基类、超类) 支票存户 储蓄存户 特殊类 (子类、具体类)
账号 姓名 余额 一般类 (父类、基类、超类) 存款 取款 继承 支票存户 储蓄存户 特殊类 (子类、具体类) 利息率 一个特殊类中的所有对象可继承一般类中的属性、服务、关系.

35 组装结构表示对象类之间的组成关系, 即整体与部分的关系。
(2) 组装结构(整体/部分结构) 组装结构表示对象类之间的组成关系, 即整体与部分的关系。 整体对于部分是“has-a”关系。 (部分对于整体是“a-part-of”关系) 组装结构体现了面向对象方法的 聚合(也叫聚集 Aggregation)原则。

36 整体/部分结构表示法举例 微机 1+ o 监视器 主机箱 鼠标 键盘 电源 CPU 内存 硬盘

37 实例连接表现了对象之间的静态 联系,通过对象的属性来表现对象之 间的依赖关系。
(3)实例连接(Instance Connection) 实例连接表现了对象之间的静态 联系,通过对象的属性来表现对象之 间的依赖关系。 面向对象术语中把对象之间的实 例连接称为链接(Link),把类之间的 实例连接称为关联(Association)

38 实例连接示例及表示 教师为学生 授课: 教师 学生 教学 0,m ,n 教师为学生 指导论文: 教师 学生 指导论文 0,m

39 允许实例连接带有一组属性,这些属性通过关联来描述
关联关系(链属性)的表示 允许实例连接带有一组属性,这些属性通过关联来描述 类 1 类 1 连接名称 m n 连接 属性

40 (链属性) 关联关系 教师 学生 个人 公司 雇员 雇主 指导论文 0,m 1 题目 答辩时间 成绩 名字 身份证号 名字 地址 为之工作
工资 职务

41 面向对象建模 (4)消息连接 (Message Connection) 对象之间的通信联系。
一需要另一个对象的服务,便向它发出个对象请求服务的消息,接收消息的对象响应消息,触发所要求的服务操作。 消息连接体现了对象行为的动态联系。

42 一家公司的对象模型(OMT)示例 公司 员工 工人 经理 部门 项目 产品 为之工作 名字 电话号码 主要产品 地址 姓名 身份证号码 地址
1+ 雇用 解雇 职务 部门名 管理 ,1 工人 经理 部门 1+ 参加 生产 1+ 主持 项目 产品 项目名 预算 优先级 产品名 成本 重量 1+ 1+

43 网上商店对象模型(部分)示例(UML) * * * * 顾客 定货 协作顾客 个人顾客 定货作业线 雇员 产品 1 name
address dataReceived isPrepaid number:String price:Money creditRating( ):String dispatch( ) close( ) 协作顾客 个人顾客 1 contactName creditRating creditLimit creditCard# * {creditRating( ) ==“poor”} 物品 remind( ) billForMonth( ) * 定货作业线 销售代表 Quantity:Integer price:Money isSatisfied:Boolean 雇员 * 1 产品

44 面向对象的开发过程 虽然图中各阶段的顺序是线性的,但实际过程的交错和相互作用要复杂得多。 其主要开发过程如下:
  虽然图中各阶段的顺序是线性的,但实际过程的交错和相互作用要复杂得多。 其主要开发过程如下: 论域分析(domain analysis) 应用分析(application analysis) 高层设计、下层设计 类的设计-对象设计 OOA OOD 面向对象开发过程的应用生存期模型

45 面向对象的分析 面向对象分析OOA(Object-Oriented Analysis)的目标是完成对所求解问题的分析,确定系统“作什么”,并建立系统的模型。 OOA的基本任务 运用面向对象的方法,对问题域和系统责任进行分析和理解,找出描述它们的类和对象,定义其属性和操作,及其结构、静态联系和动态联系。

46 面向对象的分析 OOA面临的问题: 1、问题域和系统责任问题 问题域(problem domain) — 被开发系统的应用领域。
系统责任(system responsibilities) — 所开发的系统应具备的职能。 2、交流问题(各类人员之间的要求) 3、需求的不断变化(用户、竞争因素、经费、技术因素)

47 1 OOA的分析过程 获取用户基本需求 标识类和对象 定义类的结构和层次 表示类(对象)间的关系 为对象行为建模 OOA分析过程

48 1 OOA的分析过程 1、获取用户基本需求   用户与开发者之间进行充分交流,常用User case来收集和描述用户的需求。即先标识使用该系统的不同的行为者(actor)。   行为者所提出的每个使用场景(或功能)称为一个用例,所有的用例则构成完整的系统需求。

49 4.3.1 OOA的分析过程 获取用户基本需求 标识类和对象 定义类的结构和层次 表示类(对象)间的关系 为对象行为建模

50 OOA模型及详细说明 一、 基本模型 基本模型是一个类图(class diagram),是以直观的方式表达系统最重要的信息。OOA基本模型的三个层次分别描述了:系统中应设哪几类对象,每类对象的内部构成,对象与外部的关系。

51 OOA模型及详细说明 补充模型有主题图和交互图。
二、 补充模型 补充模型有主题图和交互图。 1、主题(subject)又称为子系统(subsystem)是将一些联系密切的类组织在一起的类的集合。按照粒度控制原则,将系统组成几个主题,便于理解。 主题图画出了系统的主题。 2、交互图(interaction diagram) 是Use case与系统成分之间的对照图。

52 OOA模型及详细说明 三、 详细说明 按照分析方法所要求的格式,对分析模型进行说明和解释。主要以文字为主。 对象层 特征层 关系层 交 互
详 细 说 明 基本模型 (类图) 图4.9 OOA模型与详细说明

53 面向对象的设计 面向对象的设计OOD(Object-Oriented Design)是将OOA所创建的分析模型转换为设计模型,解决如何作的问题。OOD与OOA没有明显的分界,采用相同的符号。

54 OOD步骤 1、系统设计 将分析模型划分为若干子系统,子系统应该具有良好的接口,子系统内的类相互协作。标识问题本身的并发性,为子系统分配处理器。 2、对象设计 为每个类的属性和操作进行详细设计,包括它们的数据结构和实现算法。

55 OOD步骤 3、消息设计 设计连接类与它的协作者之间的消息规约(specification of the messages)。 4、复审

56 4.4.2 OOD模型 OOD模型 一、面向对象设计准则: 1)模块化 2)抽象 3)信息隐藏 4)弱耦合 5)强内聚 6)可重用

57 OOD模型 二、面向对象设计的主要内容有: 1)设计问题域组元 2)设计人机交互组元 3)设计任务管理组元 4)设计数据管理组元
PDC 问题域 组元 HIC 人机界面 组元 TMC 任务管理 DMC 数据管理 主题层 对象层 结构层 属性层 服务层 OOD模型分为4个部分 图4.10 设计模型

58 coda方法 1、Coda方法 — 由OOA,OOD构成
  随着面向对象开发方法的发展,逐渐形成了三个主要的流派:即Coda方法, Booch方法和 OMT方法。 1、Coda方法 — 由OOA,OOD构成 主要建立问题域的分析模型。该模型由5个层次组成:即主题层、对象层、结构层、属性层和服务层。 要建立4个组元的设计模型:问题域组元、人机交互组元、任务管理组元和数据管理组元。

59 coda方法 1、Coda方法 — 由OOA,OOD构成 该方法的特点是:简单、易学,对于对象、结构、服务的认定较系统、完整、可操作性强。
其开发模型包括静态模型和动态模型,静态模型分为逻辑模型和物理模型,描述了系统的构成和结构,动态模型分为状态图和时序图。

60 Coda方法的OOA 类与对象层 属性层 服务层 结构层 主题层 类的边界 实例的边界 属性 实例连接 服务 消息连接 泛化与特化结构 整体与部分结构 主题 分析过程的五个层次 在Coda方法中,构造和评审OOA概念模型的顺序由五个层次组成。这五个层次不是构成软件系统的层次,而是分析过程中的层次,即分析的不同侧面。这五个层次是:类与对象、属性、服务、结构和主题。图2.7给出了每个层次中所涉及到主要概念和相应的图形表示。

61 Coda方法的OOA 下面给出一些应用实例: 图4.12 服务层的例子 图4.13 泛化与特化结构的例子 4.5.1 Coda方法的OOA
报刊订阅 属性 服务 确认订阅 订阅请求 录入订款额 生成报告 订户 录入订户 录入地址 报告地址 图4.12 服务层的例子 采访组 编辑室 印刷厂 报社 图4.13 泛化与特化结构的例子

62 4.5.2 Coda方法的OOD Coda方法的OOD 在Coad方法,面向对象的设计模型是在面向对象的分析模型的5个层次基础上,建立系统的4个组成成分(组元),4个组元对应于面向对象设计的4个主要活动步骤:

63 Coda方法的OOD 1)设计问题域组元(problem domain component)
PDC 问题域 组元 HIC 人机界面 组元 TMC 任务管理 DMC 数据管理 主题层 对象层 结构层 属性层 服务层 图4.14 Coda OOD模型 1)设计问题域组元(problem domain component) 2)设计人机界面组元(human interaction component) 3)设计任务管理组元(task management component) 4)设计数据管理组元(data management component)

64 该方法对每一步都作了详细的描述,描述手段丰富、灵活。不仅建立了开发方法,还提出了设计人员的技术要求,不同开发阶段的资源人力配制。
Booch方法 Booch方法的开发模型包括静态模型和动态模型,静态模型分为逻辑模型和物理模型,描述了系统的构成和结构,动态模型分为状态图和时序图。 该方法对每一步都作了详细的描述,描述手段丰富、灵活。不仅建立了开发方法,还提出了设计人员的技术要求,不同开发阶段的资源人力配制。

65 Booch方法的基本模型 一、静态模型 1、类图 1 N 类名 父类 子类 (a) 关联 (b) 继承 整体类 成员类 请求服务类
一、静态模型 1、类图 类名 父类 子类 (a) 关联 (b) 继承 整体类 成员类 请求服务类 提供服务类 (c) 包含 (d) 使用 图4.15 类图表示 控制环境 冷气 管理计划 暖气 灯光 温度 执行机构 1 N 图4.16 温室管理系统的类图

66 2、对象图 对象图由对象和消息组成 6:成本( ) 4:产量( ) 2:状态( ) 5:作物::产量 对象1 对象2 编号:消息名
图4.17 对象图的表示 :计划分析 计划度量 1:收获时间(C) C:谷物 :计划管理 3:成熟时间() 6:成本( ) 5:作物::产量 4:产量( ) 2:状态( ) 图4.18 温室管理系统的对象图

67 3、状态图 4、时序图 用户服务请求 内部服务请求 服务返回 事件名/操作 状态1 状态2 定义气候 空闲 白天 日出 日落 终止气候 夜晚
图 状态图的表示 空闲 白天 定义气候 夜晚 日落 日出 终止气候 温度上升/调温( ) 温度下降/调温( ) 图4.19 环境控制器类的状态图 4、时序图 用户 对象1 对象2 用户服务请求 内部服务请求 服务返回 图4.20 温室管理系统的时序图

68 5、模块图 6、进程图 图4.21 温室管理系统的模块图 温室A 温室工作站 温室B 温室C 图4.22 温室管理系统的进程图 气候 暖气
计划 作物 定义 冷气 5、模块图 图4.21 温室管理系统的模块图 6、进程图 温室工作站 温室A 温室B 温室C 图4.22 温室管理系统的进程图

69 面向对象的建模技术(OMT) 面向对象的方法学又称为对象模型技术,OMT( Object Model Technology)是

70 对象模型技术的基本概念   OMT 方法讨论的核心就是建立三类模型:  对象模型描述了由对象和相应实体构成的系统静态结构,描述了系统中对象的标识,属性、操作及对象的相互关系,该模型使用了对象图来描述,它是分析阶段3个模型的核心,提供了其它两类模型都适用的框架。

71 对象模型技术的基本概念 OMT 方法讨论的核心就是建立三类模型:
  动态模型根据事件和状态描述了系统的控制结构,系统中与时间和操作顺序有关的内容。如:标记变化的事件,事件的顺序,定义事件背景的状态等。

72 对象模型技术的基本概念 OMT 方法讨论的核心就是建立三类模型:
    函数模型着重描述系统中与值的转换有关的问题,如函数、映射、约束和函数作用等。   三类模型描述的角度不同,却又相互联系。

73 建立对象模型 建立对象模型通常有五个层次: 1)确定类—&—对象
类和对象是在问题域中客观存在的,系统分析员的主要任务,就是通个分析找出这些类和对象。

74 建立对象模型 建立对象模型通常有五个层次: 2)确定关联
两个或多个对象之间的相互依赖,相互作用的关系就是关联,分析确定关联,要考虑问题域的边缘情况。 3)  划分主题 将大型、复杂系统进一步划分成为不同的主题,以降低系统的复杂度。

75 建立对象模型 属性是对象的性质,一般确定属性的过程包括分析和选择两个步骤。 5) 识别继承关系
4)  确定属性 属性是对象的性质,一般确定属性的过程包括分析和选择两个步骤。 5) 识别继承关系 确定了类中应该定义的属性之后,就可以利用继承机制共享公共性质,并对系统中众多的类加以组织。一般使用自底向上和自顶向下两种方式建立继承关系。

76 对象图和类图 类的描述: 对象的描述: 几何对象 颜色 文件 人 位置 文件名 姓 名:字符串 移动(delta:矢量) 文件大小
选择(P:指针型):布尔型 旋转(角度) 姓 名:字符串 年 龄: 整 型 改换工作 改换地址 文件 文件名 文件大小 最近更新日期 打印 对象的描述: (人) 李军 24 程序员 (人) 张红兵 28 绘图员 人民路8号

77 对象与类是构成对象模型的基本元素,类图的一般描述形式,由类名、属性和操作三部分组成,属性和操作还可作进一步的描述。
对象图与类图      对象与类是构成对象模型的基本元素,类图的一般描述形式,由类名、属性和操作三部分组成,属性和操作还可作进一步的描述。 类 名 属性名(1),数据类型1=缺省值1 属性名(2),数据类型2=缺省值2 ……… 操作名1(变量名1) :结果类型1 操作名2(变量名2) :结果类型2 图4.24 类的进一步描述 图4.23 类的一般描述 类名 属性 操作 (类名) 对象名 属性 操作 属性:属性名、补充细节。 操作:应用于类中对象或被类中对象使用的一种功能或者转换,包含操作允许的参数。 图4.25 对象的一般描述

78 链和关联 建立对象模型,必须要描述构成系统的对象之间的联系,链(Link)和关联(association)都是建立对象和类之间关系的手段。
  链 — 表示两个(或多个)对象之间的关系。   关联 — 描述具有公共结构和语义的一组链。   关联是描述两个或多个类之间的关系,链是关联的实例(程序设计中,关联常用一个对象到另一对象的指针实现。)。

79 链和关联 关联

80 两个类之间的关联称为二元关联,三个类之间的关联称为三元关联。
一、关联   两个类之间的关联称为二元关联,三个类之间的关联称为三元关联。 图4.27 二元关联 类1 类2 关联名 二元关联的表示 人员 公司 雇用 二元关联的例 (人员) 张涛 (公司) 通大 链的例子 项目 语言 (项目) CAD系统 (语言) C 语言 (人) 林珩 图4.28 三元关联 类1 类2 类3 三元关联的表示 三元关联的例 链的例子 如果对关联的含义作出某种限制,称为受限关联。 类A 类B 限定词 目录 文件 文件名 图4.29 受限关联 受限关联的表示 受限关联的例

81 二、重 数 引入重数进一步描述类之间的关联,也称关联的多重性。表示一个类中有多少个实例与一个相关类的某一例子有关,重数限定了相关对象的个数。
2.7.4 链和关联 二、重 数   引入重数进一步描述类之间的关联,也称关联的多重性。表示一个类中有多少个实例与一个相关类的某一例子有关,重数限定了相关对象的个数。 公司 图4. 31 多对多的关联 图4. 30 一对多的关联 表示“多个”,表示零或多个。 表示“可选”,表示“0或者1”。 工作站 窗口 控制台 图4.33 重数为0或者1

82 二、重 数 2+ 也可在连线上标注数字表示重数。 “1” — 表示只有1个 “1+” — 表示1个或多个
“1” — 表示只有1个 “1+” — 表示1个或多个 “3 ~ 5” —表示 3个到5个之间 “2,4,15” — 表示2个,4个或15个 公司 图4. 31 多对多的关联 图4. 30 一对多的关联 直线 名称 相交 2+ 图4.32 重数为2或多个 工作站 窗口 控制台 图4.33 重数为0或者1

83 链属性是关联中链的性质,链的每一个属性都有一个值。链属性的OMT符号是一个盒子。
2.7.4 链和关联 三链属性 链属性是关联中链的性质,链的每一个属性都有一个值。链属性的OMT符号是一个盒子。 图 多对多关联的链属性 文件 用户 访问许可 可访问 可进一步说明可访问(关联)性。D:\edc\date1.Dat(读-写) 李红D:\user\login.com( 读) 张立 链属性

84 三链属性 角色说明类在关联中的作用和角色,常与附加链属性一起进一步描述对象之间的联接。 关联 类B 类A 2.7.4 链和关联 公司 名字
  角色说明类在关联中的作用和角色,常与附加链属性一起进一步描述对象之间的联接。 公司 名字 个人 工作 职务 工资 关联 雇主 雇员 类A 类B 角色 图4.35 角色与链属性

85 可用聚集来代表整体与部分的关系(图2.31),还可构成不同层次的多级聚集关系(图2.32)。
2.7.4 链和关联   可用聚集来代表整体与部分的关系(图2.31),还可构成不同层次的多级聚集关系(图2.32)。 段落 句子 整体 部分 图4.36 聚集关系 图4.37 聚集关系 微机系统 监视器 主机箱 鼠标 键盘 底架 CPU RAM 风扇

86 继承性(Inheritance) 继承性分:单重继承、多重继承。
继承是使用现存的定义作为基础,建立新定义的技术。继承性通常又称为概括,表示基类与子类的关系。子类的公共属性和操作归属于基类,并为每个子类共享,子类继承了基类的特征。 继承性分:单重继承、多重继承。 运输工具 基类 子类A 子类B 陆上运输工具 水上运输工具 汽车 水陆两用车 概括描述了类和具体实例之间的关系。 图4.38 继承关系

87 继承性的实例 图 形 颜 色 中心位置 笔的浓度 笔 型 移 动 选 择 旋 转 显 示 二 维 方 向 填充类型 比例尺 填充 多边形
颜 色 中心位置 笔的浓度 笔 型 移 动 选 择 旋 转 显 示 二 维 方 向 填充类型 比例尺 填充 多边形 边数 点数 显示 直径 旋转 0 维 线 端点 一 维 方向 样条 控制点 半径 起始角 弧度角 继承性的实例 图4.39 继承性实例

88 建立动态模型 动态模型着重于系统的逻辑结构;描述某时刻对象及其联系的改变。包括状态图和事件追综图。

89 建立动态模型 有的事件传递的是简单信号,有的事件则传递的是数据值。由事件传送的数据值称为“属性”。 一、事件和状态
建立动态模型 建立动态模型 一、事件和状态 状态— 对象所具有的属性值,具有时间性和持续性。 事件— 对于对象的触发行为,指从一个对象到另一个对象的信息的单向传递。 脚本—在系统的某一执行期间内的一系列事件。 在系统中具有属性值、链路的对象,可能相互激发,引起状态的一系列变化。 有的事件传递的是简单信号,有的事件则传递的是数据值。由事件传送的数据值称为“属性”。

90 二、状态图 状态图是一个状态和事件的网络,侧重于描述每一类对象的动态行为,状态的迁移。
建立动态模型 二、状态图 状态图是一个状态和事件的网络,侧重于描述每一类对象的动态行为,状态的迁移。 状态图 状态A / 操作 状态A 活动 状态B 起始状态 终结状态 事件B[条件] 按下右键/菜单显示 图例 状态 状态迁移 菜单消失 菜单显示 状态 释放右键/擦去菜单 动态模型由多个状态图组成,每个有重要行为的类都有一个状态图。各状态图可并发地执行及独立改变状态。

91 三、事件追踪图 事件追踪图侧重描述系统执行过程中的一个特定的“场景(Scenarios)”。场景有时也叫“脚本”,是完成系统某个功能的一个事件序列。即是描述多个对象的集体行为。

92 三、事件追踪图 脚本—系统某一次特定运行时期内发生的事件序列。例如:打电话的场景: 1、拿起电话受话器 12、打电话者听见振铃声
1、拿起电话受话器 12、打电话者听见振铃声 2、电话忙音开始 13、对方接电话 3、拨电话号码数5 14、接话方停止振铃 4、电话忙音结束 15、打电话方停止振铃声 5、拨电话号码数5 16、通电话 6、拨电话号码数5 17、对方挂电话 7、拨电话号码数1 18、电话切断 8、拨电话号码数 、打电话者挂电话 …………….. 11、对方电话开始振铃

93 打电话的事件追踪图 打电话者 电话线 接电话者 打电话者 拿起接收器 拨号音开始 拨号(5) 忙音结束 拨号(1) 拨号(2) 拨号(3)
建立动态模型 打电话的事件追综图 打电话者 电话线 接电话者 打电话者 拿起接收器 拨号音开始 拨号(5) 忙音结束 拨号(1) 拨号(2) 拨号(3) 拨号(4) 拨号(8) 铃声 铃声停止 电话连通 电话断开 打电话者挂机 打电话的事件追踪图 铃声 受话方回答 铃声停止 电话连通 受话方挂机 电话断开

94 电话线状态图 空闲 拨号音 超出时间 拨号 记录的信息 忙音 连接 快速忙音 铃响 断连 放下话筒 提起话筒 超时 一位号码 无效号码
有效号码 对方应答 通路 一位号码 中断线忙 号码忙 对方电话挂断 信息送完 图4.40 打电话状态图

95 建立功能模型 功能模型着重于系统内部数据的传递与处理。定义“做什么?”的问题,表明值之间的依赖关系及其相关的功能。
描述手段为分层数据流图,DFD图有助于表示功能的依赖关系,其中的处理对应于状态图的活动和动作,数据流对应于对象图中的对象或属性。建立功能模型的步骤为:

96 建立功能模型  1) 确定输入值,输出值 先列出输入输出值,输入输出值是系统与外部世界之间的事件参数。检测问题陈述,从中找到遗漏的所有输入输出值。  2) 建立数据流 数据流图说明输出值是怎样从输入值得来的。数据流图通常按层次组成,最顶层由单个处理组成,也可由数据输入计算值及生成结果的一个综合处理构成。

97 建立功能模型 3) 描述处理 当数据流图已细化到一定程度后,对各处理进行描述,描述的方式用自然语言,伪码及判断树等。描述可以是说明的或过程的。 4) 确定对象的约束 约束是那些不存在输入输出关系的对象之间的函数依赖,同一时间内约束可以出现于两个对象中,约束也可以在一个对象不同时间中,或不同时间的不同对象中,函数的前置条件是输入值必须满足的约束,而后置条件则是输出承受的约束。

98 建立功能模型 5)添加操作 操作与对象模型中属性和关联查询,与动态模型的事件及与功能模型的处理有关,关键操作应归结到对象模型中,所添加的操作如下: 对象模型中的操作。 来自事件的操作。 来自状态上的活动的操作。 来自处理的操作。

99 面向对象的软件工程(OOSE) OOSE将面向对象的思想应用于软件工程中,建立五个模型: 1、需求模型(RM) 2、分析模型(AM) 分析
3、设计模型(DM) 4、实现模型(IM) 5、测试模型(TM) 分析 构造 测试 OOSE的开发活动主要分为三类:分析、构造和测试。

100 面向对象的软件工程(OOSE) 用例(Use case)是OOSE中的重要概念,在开发各种模型时,用例贯穿了OOSE活动的核心,描述了系统的需求及功能。

101 面向对象的软件工程(OOSE) 分析模型 use case模型通过分析来构造。 设计模型 use case模型通过设计来具体化。 实现模型 该模型依据具体化的设计来实现use case模型。 测试模型 用来测试具体化的use case模型。 贸易经理 风险分析 设置边界 进行交易 交易估价 更新帐目 《使用》 《扩展》 营销人员 超越边界 评价 记帐系统 销售人员 图2.36 用例图


Download ppt "面向对象建模 对象(object) 对象具有的含义: 现实世界中某个具体的物理实体或概念在计算机逻辑中的映射和体现。 在现实世界中:"

Similar presentations


Ads by Google