软件工程课本讲解第11章 面向对象的OMT方法(1)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第11章 面向对象的OMT方法
3. 构造动态模型
构造动态模型的步骤如下:
(1) 准备典型交互序列的脚本。
(2) 确定对象间的事件并为各脚本安排事件跟踪。 (3) 准备系统的事件流图。 (4) 开发具有重要动态行为的各个类的状态图。 (5) 检查状态图中共享事件的一致性和完整性。
最后得到:动态模型 = 状态图 + 全局事件流图。
教师 工资 职称 学位 调工资() 评职称() 类的详细表示
教师 类的简单表示
张三 800 副教授 硕士 对象的表示
第11章 面向对象的OMT方法
2. 关联和链
关联和链是建立类及对象之间关系的一种手段。
1) 关联和链的含义
链表示对象间的物理与概念的联结,如张三为通达公司工作。 关联表示类之间的一种关系,就是一些可能的链的集合。关联表 示两个类的对象之间存在某种语义上的联系 正如对象与类的关系一样,对象是类的实例,类是对象的抽 象。而链是关联的实例,关联是链的抽象。
3) 属性
属性是指类中对象所具有的数据值。如人的属性
是姓名、年龄及地址等。对每个对象来说,其中每一
属性都具有一个值,不同对象的同一属性可以具有相 同或不同的属性值。类中的各属性名是唯一的。 属性的表示如图11.2的中间区域所示,每个属性 名后可附加一些说明,即为属性的类型及缺省值,冒 号后紧跟着类型,等号后紧跟着缺省值。
做出初步的资源分配。
3
第11章 面向对象的OMT方法
类设计:设计模型是在分析模型的基础上添加实现细
节来完成的,在加工这细节时,设计人员应该 遵守在系统设计阶段确定的策略 实现:对象设计阶段所产生的对象类和联系最后都必 须翻译成具体的程序设计语言,数据库或硬件 实现,在开发过程中,程序设计应该是相对简 单机械的部分,因为所有最困难的决策已经在 设计阶段做出,目标语言在某种程度上可能影 响设计决定,但设计决不应该依赖程序设计语 言的细节,虽然目标语言在某种程序上可能影 响设计决策
高层次决策策略。
13
第11章 面向对象的OMT方法 11.1.4 对象设计 (类设计)
对象设计时,对分析模型进行详细分析和阐述并且奠
定实现的基础,从分析模型的面向客观边界的观点转到
面向实现的计算机观点上来。对象设计步骤如下: (1) 从其他模型中获取对象模型上的操作:在功能模
型中寻找各个操作,为动态模型中的各个事件定义一个
27
第11章 面向对象的OMT方法 两个类之间的关联称为二元关联,三个类之间的 关联称为三元关联。关联的表示是在类之间画一连线。 图11.3表示了二元关联
作家
使用
计算机 28
图11.3
二元关联
第11章 面向对象的OMT方法 图11.4表示一种三元关联,说明程序员使用计算机语言来开 发项目。
图11.4 三元关联 29
15
第11章 面向对象的OMT方法 (7) 确定对象属性的明确表示:是将类、关联封 装成模块。 最后得到:对象设计文档 = 细化的对象模型 + 细 化的动态模型 + 细化的功能模型。
16
第11章 面向对象的OMT方法
对象模型化技术OMT
对象模型化技术把分析时收集的信息构造在三类
模型中,即对象模型、功能模型和动态模型。
4
第11章 面向对象的OMT方法
OMT模型系统分析和设计过程概观图
产生需求
问题描述 建立模型 对象模型、动态模型、功能模型 结构及对象 设计 设 计 阶 段 分 析 阶 段
详细的对象模型 详细的动态模型 详细的功能模型
5
第11章 面向对象的OMT方法
OMT方法学是组织开发的一种过程。这种过程是建立在一些协调 技术之上的,OMT方法的基础是开发系统的3个模型,再
FM中的数据流对应OM中的
attribute,或是整个 object;
FM中的 process 产生DM中
以及OM中的 method; FM中的 process 对应OM中的 method;
FM中的数据存储及数据的源/
的 event; OM描述了FM中的动作对象、 数据存储及数据流的结构。
细化这3种模型,并优化以构成设计。对象模型由系统中
的对象及其关系组成,动态模型描述系统中对象对事件的响应及对 象间的相互作用,功能模型则确定对象值上的各种变换及变换上的 约束。
6
第11章 面向对象的OMT方法
11.1.2
系统分析
分析的目的是确定一个系统“干什么”的模型,该模型通过 使用对象、关联、动态控制流和功能变换等来描述。分析过程是 一个不断获取需求及不断与用户磋商的过程。
这个模型化的过程是一个迭代过程。
17
第11章 面向对象的OMT方法
建立 顺序
OM
Object Method
DM
DM Action Event
FM
Process Data storage Data flow
Attribute
对每个object (class) 建立DM; Action对应FM中的 process
第11章 面向对象的OMT方法 角色为关联的端点,说明类在关联中的作用和角 色。不同类的关联角色可有可无,同类的关联角色不
能省。角色的表示如图11.5所示。
讲授 教师 主讲 图11.5 课程 内容 关联的角色的表示 30
第11章 面向对象的OMT方法
2) 受限关联
受限关联由两个类及一个限定词组成,限定词是
2
第11章 面向对象的OMT方法
OMT将开发过程主要为
分析:分析人员从问题陈述入手开始,建立一个表示现实世 界重要性质的应用领域模型。 系统设计:系统设计阶段要求做出有关整个系统结构的高层 决策,在这一阶段中,目标系统应该根据分析模型和所 设置的系统整体结构划分为若干子系统。系统设计人员
必须确定哪能些性能需要优化,选择处理问题的策略,
终点对应OM中的 object;
18
第11章 面向对象的OMT方法
11.2 建模概念
11.2.1 对象模型
特征:
是三个模型中最关键的一个模型,它描 述系统的静态结构,包括构成系统的类 和对象,它们的属性和操作,及它们之 间的关系。使用对象图来表示。 对象模型的元素 类与对象 关联 关系
19
第11章 面向对象的OMT方法
操作的表示如图11.2底部区域所示,操作名后可跟参数表, 用括号括起来,每个参数之间用逗号分开,参数名后可跟类型, 用冒号与参数名分开,参数表后面用冒号来分隔结果类型,结果 类型不能省略。 。
25
类与对象表示
对象的表示
类的图形符号为长方形,用两条横线把长方形分成上、 中、下3个区域(下面两个区域可以省略)
24
第11章 面向对象的OMT方法
4) 操作和方法
操作是类中对象所使用的一种功能或变换。类中的各对象可 以共享操作,每个操作都有一个目标对象作为其隐含参数。操作 的行为取决于其目标所归属的类,对象“知道”其所归属的类, 因而能正确地实现该操作。
方法是类的操作的实现步骤。例如文件这个类,可有打印操 作,可设计不同的方法来实现ASCII文件的打印、二进制文件的打 印及数字图像文件的打印,所有这些方法逻辑上均是做同一工作 的,即打印文件。因此,可用类中print操作去执行它们,但每个 方法均由不同的一段代码来实现
操作,这个操作与控制的实现有关。 (2) 设计实现操作的算法:指选择开销最小的算法, 选择适合于算法的数据结构,定义新的内部类和操作。 给那些与单个类联系不太清楚的操作分配内容。 14
第11章 面向对象的OMT方法 (3) 优化数据的访问路径:指增加冗余联系以减 少访问开销,提高方便性,重新排列运算以获得更高 效率。为防止重复计算复杂表达,保留有关派生值。 (4) 实现系统设计中的软件控制。 (5) 为提高继承而调整类体系:是指为提高继承 而调整和重新安排类和操作,从多组类中把共同行为 抽取出来。 (6) 设计关联的实现:分析关联的遍历,使用对 象来实现关联或者对关联中的1、2个类增加值对象的 属性。
1. 问题陈述 问题陈述为记下或获取对问题的初步描述。
7
第11章 面向对象的OMT方法
2. 构造对象模型
构造对象模型的步骤如下:
(1) 确定对象类。
(2) 编制类、属性及关联描述的数据词典。 (3) 在类之间加入关联。 (4) 给对象和链加属性。 (5) 使用继承构造和简化对象类。 (6) 将类组合成模块,这种组合在紧耦合和相关 功能上进行。 最后得到:对象模型=对象模型图+数据词典。 8
9
第11章 面向对象的OMT方法
4. 构造功能模型
构造功能模型的步骤如下:
(1) 确定输入、输出值。
(2) 需要时使用数据流图来表示功能依赖关系。 (3) 描述各功能“干什么”。 (4) 确定约束。 (5) 详细说明优化标准。
最后得到:功能模型 = 数据流图 + 约束。
10
第11章 面向对象的OMT方法
第11章 面向对象的OMT方法
第11章 面向对象的OMT方法
11.1 OMT方法概述 11.2 建模概念 11.3 系统分析 11.4 系统设计 11.5 对象设计
11.6 小结
习题
1
第11章 面向对象的OMT方法
11.1 OMT方法概述
11.1.1 OMT方法学
OMT是一种软件工程方法学,支持整个软件 生存周期。它覆盖了问题构成、分析、设计和 实现等阶段。
1.对象和类
1).对象
就是应用领域中有意义的事物。对象建模的目的就 是描述对象,把对象定义成问题域的概念、抽象或者具有
明确边界和意义的事物。对象有两种用途:一是促进客观
世界的理解,二是为计算机实现提供实际基础。问题分解 为对象依赖于对问题判断和问题的性质。对象的符号表示
如图11.1所示。
20
第11章 面向对象的OMT方法
32
第11章 面向对象的OMT方法
Fra Baidu bibliotek
图11.7 关联的重数
33
第11章 面向对象的OMT方法
4) 链属性(了解)
链属性是关联的链的性质,如同属性是类中对象
的性质一样。链属性的表示如图11.8所示。在两个类
的连线上用一弧与方框相连。方框有两个区域,第二 个区域表示一个或多个属性。这种表示强调了对象属 性与链属性的相似性。可以把一对一或一对多的关联 的链属性放入一方的类中,但对多对多的关联而言, 这是不可能的,从原则上来说,链属性不应当并入类 中。因为一旦改变关联的重数,系统未来的灵活性将 会降低。 34
22
第11章 面向对象的OMT方法
仓库管理员 +编号 : int -性别 : char = 男 #年龄 : int -NAME -数量 : int +货物入库(in 编号 : int, in 数量 : int) : bool +清点货物()
图11.2 类的符号表示
23
第11章 面向对象的OMT方法
一种特定的属性,用来有效地减少关联的重数,限定
词在关联的终端对象集中说明。
图11.6
受限关联
31
第11章 面向对象的OMT方法
3) 关联的多重性
关联的多重性是指类中有多少个对象与关联的类
的一个对象相关。重数通常描述为“一”或“多”。
但更常见的情况是非负整数的子集。如轿车的车门数 目为2~4的范围,关联重数可用对象图关联线连的末 端的特定符号来表示。 小实心圆表示“多个”,从零到多。小空心圆表 示零或一,没有符号表示的是一对一关联。图11.7表 示了各种关联的重数。
(1) 将系统分解为各子系统。
(2) 确定问题中固有的并发性。
12
第11章 面向对象的OMT方法 (3) 将各子系统分配给处理器及任务。 (4) 根据数据结构、文件及数据库来选择实现存
储的基本策略。
(5) 确定全局资源和制定控制资源访问的机制。 (6) 选择实现软件控制的方法。 (7) 考虑边界条件。 最后得到:系统设计文档 = 系统的基本结构 +
5. 验证、重复并完善细化 3 种模型
最后得到:分析文档 = 问题陈述 + 对象模型 + 动态模型 + 功能模型。
11
第11章 面向对象的OMT方法
11.1.3
系统设计
在系统设计阶段建立系统的高层结构,有各种标准结构可以用作 设计的起点。面向对象的开发方法对系统设计没有什么特殊的限制,但 覆盖了完整的软件开发阶段。系统设计的开发步骤如下:
图11.1 对象的符号表示 21
第11章 面向对象的OMT方法
2) 类 类描述具有相似或相同性质(属性)的一 组对象,这组对象具有一般行为(操作)、一 般关系(对象之间的)及一般语义。类是对象
类的略写,类中对象有相同的属性、行为模式。
通过将对象聚集成类,可以使问题抽象化, 抽象增强了模型的归纳能力。类的图形表示如 图11.2所示,图11.2中的属性和操作可写可不 写,取决于所需的详细程度。
相关文档
最新文档