软件工程课本讲解第11章 面向对象的OMT方法(1)
第11章 面向对象的OMT方法 角色为关联的端点,说明类在关联中的作用和角 色。不同类的关联角色可有可无,同类的关联角色不
能省。角色的表示如图11.5所示。
讲授 教师 主讲 图11.5 课程 内容 关联的角色的表示 30
第11章 面向对象的OMT方法
2) 受限关联
受限关联由两个类及一个限定词组成,限定词是
24
第11章 面向对象的OMT方法
4) 操作和方法
操作是类中对象所使用的一种功能或变换。类中的各对象可 以共享操作,每个操作都有一个目标对象作为其隐含参数。操作 的行为取决于其目标所归属的类,对象“知道”其所归属的类, 因而能正确地实现该操作。
方法是类的操作的实现步骤。例如文件这个类,可有打印操 作,可设计不同的方法来实现ASCII文件的打印、二进制文件的打 印及数字图像文件的打印,所有这些方法逻辑上均是做同一工作 的,即打印文件。因此,可用类中print操作去执行它们,但每个 方法均由不同的一段代码来实现
(1) 将系统分解为各子系统。
(2) 确定问题中固有的并发性。
12
第11章 面向对象的OMT方法 (3) 将各子系统分配给处理器及任务。 (4) 根据数据结构、文件及数据库来选择实现存
储的基本策略。
(5) 确定全局资源和制定控制资源访问的机制。 (6) 选择实现软件控制的方法。 (7) 考虑边界条件。 最后得到:系统设计文档 = 系统的基本结构 +
9
第11章 面向对象的OMT方法
4. 构造功能模型
构造功能模型的步骤如下:
(1) 确定输入、输出值。
(2) 需要时使用数据流图来表示功能依赖关系。 (3) 描述各功能“干什么”。 (4) 确定约束。 (5) 详细说明优化标准。
最后得到:功能模型 = 数据流图 + 约束。
10
第11章 面向对象的OMT方法
1. 问题陈述 问题陈述为记下或获取对问题的初步描述。
7
第11章 面向对象的OMT方法
2. 构造对象模型
构造对象模型的步骤如下:
(1) 确定对象类。
(2) 编制类、属性及关联描述的数据词典。 (3) 在类之间加入关联。 (4) 给对象和链加属性。 (5) 使用继承构造和简化对象类。 (6) 将类组合成模块,这种组合在紧耦合和相关 功能上进行。 最后得到:对象模型=对象模型图+数据词典。 8
终点对应OM中的 object;
18
第11章 面向对象的OMT方法
11.2 建模概念
11.2.1 对象模型
特征:
是三个模型中最关键的一个模型,它描 述系统的静态结构,包括构成系统的类 和对象,它们的属性和操作,及它们之 间的关系。使用对象图来表示。 对象模型的元素 类与对象 关联 关系
19
第11章 面向对象的OMT方法
这个模型化的过程是一个迭代过程。
17
第11章 面向对象的OMT方法
建立 顺序
OM
Object Method
DM
DM Action Event
FM
Process Data storage Data flow
Attribute
对每个object (class) 建立DM; Action对应FM中的 process
细化这3种模型,并优化以构成设计。对象模型由系统中
的对象及其关系组成,动态模型描述系统中对象对事件的响应及对 象间的相互作用,功能模型则确定对象值上的各种变换及变换上的 约束。
6
第11章 面向对象的OMT方法
11.1.2
系统分析
分析的目的是确定一个系统“干什么”的模型,该模型通过 使用对象、关联、动态控制流和功能变换等来描述。分析过程是 一个不断获取需求及不断与用户磋商的过程。
22
第11章 面向对象的OMT方法
仓库管理员 +编号 : int -性别 : char = 男 #年龄 : int -NAME -数量 : int +货物入库(in 编号 : int, in 数量 : int) : bool +清点货物()
图11.2 类的符号表示
23
第11章 面向对象的OMT方法
5. 验证、重复并完善细化 3 种模型
最后得到:分析文档 = 问题陈述 + 对象模型 + 动态模型 + 功能模型。
11
第11章 面向对象的OMT方法
11.1.3
系统设计
在系统设计阶段建立系统的高层结构,有各种标准结构可以用作 设计的起点。面向对象的开发方法对系统设计没有什么特殊的限制,但 覆盖了完整的软件开发阶段。系统设计的开发步骤如下:
操作的表示如图11.2底部区域所示,操作名后可跟参数表, 用括号括起来,每个参数之间用逗号分开,参数名后可跟类型, 用冒号与参数名分开,参数表后面用冒号来分隔结果类型,结果 类型不能省略。 。
25
类与对象表示
对象的表示
类的图形符号为长方形,用两条横线把长方形分成上、 中、下3个区域(下面两个区域可以省略)
操作,这个操作与控制的实现有关。 (2) 设计实现操作的算法:指选择开销最小的算法, 选择适合于算法的数据结构,定义新的内部类和操作。 给那些与单个类联系不太清楚的操作分配内容。 14
第11章 面向对象的OMT方法 (3) 优化数据的访问路径:指增加冗余联系以减 少访问开销,提高方便性,重新排列运算以获得更高 效率。为防止重复计算复杂表达,保留有关派生值。 (4) 实现系统设计中的软件控制。 (5) 为提高继承而调整类体系:是指为提高继承 而调整和重新安排类和操作,从多组类中把共同行为 抽取出来。 (6) 设计关联的实现:分析关联的遍历,使用对 象来实现关联或者对关联中的1、2个类增加值对象的 属性。
32
第11章 面向对象的OMT方法
图11.7 关联的重数
33
第11章 面向对象的OMT方法
4) 链属性(了解)
链属性是关联的链的性质,如同属性是类中对象
的性质一样。链属性的表示如图11.8所示。在两个类
的连线上用一弧与方框相连。方框有两个区域,第二 个区域表示一个或多个属性。这种表示强调了对象属 性与链属性的相似性。可以把一对一或一对多的关联 的链属性放入一方的类中,但对多对多的关联而言, 这是不可能的,从原则上来说,链属性不应当并入类 中。因为一旦改变关联的重数,系统未来的灵活性将 会降低。 34
11.1.4 对象设计 (类设计)
对象设计时,对分析模型进行详细分析和阐述并且奠
定实现的基础,从分析模型的面向客观边界的观点转到
面向实现的计算机观点上来。对象设计步骤如下: (1) 从其他模型中获取对象模型上的操作:在功能模
型中寻找各个操作,为动态模型中的各个事件定义一个
一种特定的属性,用来有效地减少关联的重数,限定
词在关联的终端对象集中说明。
图11.6
受限关联
31
第11章 面向对象的OMT方法
3) 关联的多重性
关联的多重性是指类中有多少个对象与关联的类
的一个对象相关。重数通常描述为“一”或“多”。
但更常见的情况是非负整数的子集。如轿车的车门数 目为2~4的范围,关联重数可用对象图关联线连的末 端的特定符号来表示。 小实心圆表示“多个”,从零到多。小空心圆表 示零或一,没有符号表示的是一对一关联。图11.7表 示了各种关联的重数。
第11章 面向对象的OMT方法
3. 构造动态模型
构造动态模型的步骤如下:
(1) 准备典型交互序列的脚本。
(2) 确定对象间的事件并为各脚本安排事件跟踪。 (3) 准备系统的事件流图。 (4) 开发具有重要动态行为的各个类的状态图。 (5) 检查状态图中共享事件的一致性和完整性。
最后得到:动态模型 = 状态图 + 全局事件流图。
2
第11章 面向对象的OMT方法
OMT将开发过程主要为
分析:分析人员从问题陈述入手开始,建立一个表示现实世 界重要性质的应用领域模型。 系统设计:系统设计阶段要求做出有关整个系统结构的高层 决策,在这一阶段中,目标系统应该根据分析模型和所 设置的系统整体结构划分为若干子系统。系统设计人员
必须确定哪能些性能需要优化,选择处理问题的策略,
27
第11章 面向对象的OMT方法 两个类之间的关联称为二元关联,三个类之间的 关联称为三元关联。关联的表示是在类之间画一连线。 图11.3表示了二元关联
作家
使用
计算机 28
图11.3
二元关联
第11章 面向对象的OMT方法 图11.4表示一种三元关联,说明程序员使用计算机语言来开 发项目。
图11.4 三元关联 29
15
第11章 面向对象的OMT方法 (7) 确定对象属性的明确表示:是将类、关联封 装成模块。 最后得到:对象设计文档 = 细化的对象模型 + 细 化的动态模型 + 细化的功能模型。
16
第11章 面向对象的OMT方法
对象模型化技术OMT
对象模型化技术把分析时收集的信息构造在三类
模型中,即对象模型、功能模型和动态模型。
3) 属性
属性是指类中对象所具有的数据值。如人的属性
是姓名、年龄及地址等。对每个对象来说,其中每一
属性都具有一个值,不同对象的同一属性可以具有相 同或不同的属性值。类中的各属性名是唯一的。 属性的表示如图11.2的中间区域所示,每个属性 名后可附加一些说明,即为属性的类型及缺省值,冒 号后紧跟着类型,等号后紧跟着缺省值。
教师 工资 职称 学位 调工资() 评职称() 类的详细表示
教师 类的简单表示
张三 800 副教授 硕士 对象的表示
第11章 面向对象的OMT方法
2. 关联和链
关联和链是建立类及对象之间关系的一种手段。
1) 关联和链的含义
软件工程第十一章面向对象设计
THANKS
感谢观看
01
抽象类是一种不能被实例化的 类,它只能被其他类继承。
02
抽象类可以包含抽象方法和具 体方法。抽象方法是没有具体 实现的方法,需要在继承抽象 类的子类中实现。
03
通过继承抽象类,子类可以继 承抽象类的属性和方法,并且 可以重写或实现抽象类中的方 法。
接口与抽象类的选择
在设计软件时,选择使用接口还是抽象类取决于具体需求和设计目标。
关系
关系描述了对象之间的交互和联系。 常见的关系包括关联、聚合和继承。
继承与多态的设计
继承
继承是一种实现代码重用的方式,子类可以继承父类的属性和方法,并可以扩展或覆盖它们。通过继承,可以建 立类之间的层次结构,使得代码更加清晰和易于维护。
多态
多态是指一个接口可以有多种实现方式,或者一个对象可以有多种形态。多态可以提高代码的灵活性和可扩展性, 使得程序更加易于维护和修改。
02
类与对象的设计
类的定义与属性
类的定义
类是对象的抽象,它描述了一组具有相同属性和行为的对象。类定义了对象的结构、行为和关系。
属性
属性是类中用于描述对象状态的变量。每个对象都有其自己的属性值,这些属性值决定了对象的状态 。
对象的行为与关系
行为
行为是类中定义的方法,用于描述对 象可以执行的操作。方法定义了对象 的行为和功能。
高层模块不应该依赖于低层模块,它们都应 该依赖于抽象。
面向对象设计的优势
提高代码可重用性
通过类和继承实现代码重用,减少重 复代码。
提高代码可维护性
面向对象设计使得代码结构更加清晰, 易于理解和维护。
提高开发效率
通过快速原型开发,快速构建软件系 统。
面向对象的建模方法
面向对象的建模方法[摘要]评述面向对象的几种建模方法并作一比较,阐述统一建模语言的优越性,并对其组成、特征、建模过程进行描述。
[关键词]软件工程建模面向对象一、引言面向对象方法学也称为面向对象的开发方法,它属于软件工程的范畴。
面向对象方法学的出发点和基本原则是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程接近人类认识世界解决问题的方法与过程。
也就是说,面向对象方法是一种崭新的思维方法,它是把程序看作是相互协作而又彼此独立的对象的集合。
由于对象的独立封装,模块的可构造性、可扩充性、可重用性也大大加强,从而面向对象的软件工程能够胜任当今大规模复杂、易变软件系统开发应用的要求。
面向对象的软件工程要求首先对系统建立模型是对现实的简化,它提供了系统的蓝图。
一个好的模型只需抓住影响事物发展的主要矛盾,而忽略那些次要矛盾。
每个系统可以从不同方面用不同的模型来描述。
因而每个模型都是在语义上闭合的系统抽象。
通过建模可以按照实际情况对系统进行可视化模型详细地说明了系统结构或行为,指导我们构造系统模板二、面向对象建模方法建模是构造软件系统最基本的步骤,在软件工程学科中提供了多种多样的建模方法和高效的工具,其目的是为了在软件开发过程的早期就发现设计中可能隐含的缺陷和错误,对于今日的大型软件系统,采用一种合适的建模方法,建立一个良好的模型是成功的关键。
在市场上已有一些公司,如Ratio na1,Caye nne, Plat in um等开始提供商品化的建模工具,即通常所谓的CASE工具,使得建模过程实现了一定的自动化的标准化,并逐步走向实用,而这些工具的后面,便是具有不同特色的建模方法。
下面分析比较Booch,OMT,OOSE,UML等几种主要的面向对象的建模方法:(一)Booch 方法Booch方法是由Grady Booch提出的,是一种主要面向设计的方法,它通过二维图形来建立面向对象的分析和设计模型,强调设计过程的不断反复知道满足要求为止。
软件工程课本讲解面向对象的OMT方法
化旳动态模型 + 细化旳功能模型。
16
第11章 面向对象的OMT方法
对象模型化技术OMT 对象模型化技术把分析时搜集旳信息构造在三类
模型中,即对象模型、功能模型和动态模型。
这个模型化旳过程是一种迭代过程。
17
第11章 面向对象的OMT方法
图11.4 三元关联 29
第11章 面向对象的OMT方法
角色为关联旳端点,阐明类在关联中旳作用和角 色。不同类旳关联角色可有可无,同类旳关联角色不 能省。角色旳表达如图11.5所示。
教师
讲授
课程
主讲
内容
图11.5 关联旳角色旳表达
30
第11章 面向对象的OMT方法
2) 受限关联
受限关联由两个类及一种限定词构成,限定词是 一种特定旳属性,用来有效地降低关联旳重数,限定 词在关联旳终端对象集中阐明。
技术之上旳,OMT措施旳基础是开发系统旳3个模型,再 细化这3种模型,并优化以构成设计。对象模型由系统中 旳对象及其关系构成,动态模型描述系统中对象对事件旳响应及对 象间旳相互作用,功能模型则拟定对象值上旳多种变换及变换上旳
约束。
6
第11章 面向对象的OMT方法
11.1.2 系统分析
分析旳目旳是拟定一种系统“干什么”旳模型,该模型经过 使用对象、关联、动态控制流和功能变换等来描述。分析过程是 一种不断获取需求及不断与顾客磋商旳过程。
8
第11章 面向对象的OMT方法
3. 构造动态模型
构造动态模型旳环节如下: (1) 准备经典交互序列旳脚本。 (2) 拟定对象间旳事件并为各脚本安排事件跟踪。 (3) 准备系统旳事件流图。 (4) 开发具有主要动态行为旳各个类旳状态图。 (5) 检验状态图中共享事件旳一致性和完整性。 最终得到:动态模型 = 状态图 + 全局事件流图。
软件工程面向对象方法学概述
面向对象方法学—优点
(4)可维护性好。 ❖面向对象的软件稳定性好 ❖面向对象的软件比较容易修改 ❖面向对象的软件容易理解 ❖易于测试和调试
13
喷泉模型
▪ 喷泉模型是面向对象软件过程的典型模型 ▪ 采用面向对象方法开发软件时,重点是面
向问题的对象的分析和定义,这个过程是 不断充实和反复迭代的, ▪ “喷泉”体现了面向对象软件开发过程迭 代和无缝的特性
▪ 一个系统应从不同的角度进行描述,从 一个角度观察到的系统称为一个视图 (view)。
新 数据用于表示对象的静态属性,是 途 对象的状态信息。
径
20前2一1页/1/12
6
软
件
面向对象方法学—要点
工
程
(3)按照子类(派生类)与父类 (基类)的关系,把若干个对象类组
的 成一个层次结构的系统(类等级)。
新 在这种层次结构中,通常下层的派生
途
类具有和上层的基类相同的特性(包 括数据和方法),这种现象称为继承
2021/1/12
37
面向对象建模
用面向对象方法开发软件,通常需要建 立三种形式的模型:
• 描述系统数据结构的对象模型 • 描述系统控制结构的动态模型 • 描述系统功能的功能模型
这三个模型从不同的侧面反映了系统的内 容,综合全面地反映了目标系统的需求。
20前2一1页/1/12
38
面向对象建模
用面向对象方法开发软件,在任何 情况下,对象模型始终都是最重要、 最基本、最核心的。
2021/1/12
3
面向对象方法学—要点
▪ 将客观世界遇到的问题与计算机中求解建 立联系
▪ 客观世界中的实体抽象为问题域中的对象 ▪ 计算机中的实体称为解空间对象
软件工程面向对象
面向对象软件工程面向对象方法学的提出•结构化软件工程方法学•面向过程、以算法为核心、把数据和过程作为相对独立的部分•对早期只重视编程、不重视用户需求和开发过程,只重视代码、不重视文档来说,是一个巨大的进步•给软件产业带来了巨大的进步,部分缓解了软件危机•在许多中小型软件项目中获得了很大的成功•但是,它存在着明显的缺点•当把这种方法学应用于大型软件产品的开发时,似乎很少取得成功面向对象方法学概述•面向对象方法学的出发点和原则•尽可能模仿人类习惯的思维方式,使软件开发的方法与过程尽可能接近人类认识世界、解决问题的方法与过程•面向对象方法的特点•与人类习惯的思维方法一致:按照人们习惯的思维方式建立模型,模拟客观世界•稳定性好:实体是相对稳定的,以对象为中心构建的软件系统必然是相对稳定的•可重用性好:对象类提供了比较理想的模块化机制和可重用机制•易于开发大型软件:把大型产品看作一系列本质上相互独立的小产品来处理•可维护性好:容易理解、容易修改、易于测试四个要点:对象+类+继承+通信•面向对象软件是由对象组成•软件中的任何元素都是对象•对象是把静态属性的数据和动态属性的操作封装在一起而形成的统一体•复杂对象由简单对象组成•把所有对象都划分成若干类•每个类都定义了一组数据和方法(即施加于对象的操作);•按照子类与父类的关系,把若干个对象类组成一个层次结构的系统(即继承);•对象彼此之间仅能通过传递消息相互联系(对象的私有信息都被封装在对象类中)。
Coad和Yourdon给出了一个定义:面向对象=对象+类+继承+通信基本概念(1)•类(Class)•是对具有相同属性和行为的一(多)个对象的描述•是一个支持继承的抽象数据类型•实例(Instance)•就是由某个特定的类所描述的一个具体的对象•消息(Message)•是要求某个对象执行类中所定义的某个操作的规格说明•其组成为:接收消息的对象、消息名和变元•方法(Method)•就是对象所能执行的操作(类中定义的服务)•属性(Attribute)•就是类中所定义的数据,是对客观世界实体所具有的性质的抽象基本概念(2)•封装•是把数据和实现操作的代码集中起来放在对象内部,不能从外部进行访问和修改。
面向对象方法概述
张山 (instance)
Class 中国人 张山的 Attributes 李士 (instance) Class 杭州人 中国人李士的 Attributes 杭州人李士的 Attributes
首页
上页
下页
末页
退出
特点: 特点: 杭州人的 中有与中国人的同名, 中有与中国人的同名 若杭州人的 methods中有与中国人的同名,则 时以杭州人为 杭州人为准 不执行中 李士执行该 method 时以杭州人为准,不执行中 国人中定义的同名 国人中定义的同名 method。 。
OOD
OOP OOP
1.3.5 面向对象开发方法的组成
1、OOA法 OOA法
1、OOA法 OOA法 就是要解决“作什么”的问题。 就是要解决“作什么”的问题。OOA 法的基本任务就是要 建立三种模型: 建立三种模型: 对象模型(信息模型) 对象模型(信息模型) 定义构成系统的类和对象,它们的属性与操作。 定义构成系统的类和对象,它们的属性与操作。 状态模型(动态模型) 状态模型(动态模型) 描述任何时刻对象的联系及其联系的改变,即时序。 描述任何时刻对象的联系及其联系的改变,即时序。常 用状态图, 事件追踪图描述。 用状态图, 事件追踪图描述。 处理模型(函数模型) 处理模型(函数模型) 描述系统内部数据的传送处理。 描述系统内部数据的传送处理。 显然,在三大模型中,最重要的是对象模型。 显然,在三大模型中,最重要的是对象模型。
6.1.2 面向对象的基本概念
6.1.2 面向对象的概念
理解面向对象的基本概念对于学习和掌握面向对象的 开发方法是十分重要的。 开发方法是十分重要的。 对象(Object) 类(Class) Class) 继承(Inheritance) Inheritance) 消息(Information) 多态性(Polymorphism) 永久对象(Persistent object) 重载
面向对象程序设计(Java)课程教学大纲(软件工程)
面向对象程序设计(Java)教学大纲一、说明(一)课程性质本课程是计算机科学与技术(软件工程)专业的专业必修课,是软件开发类的主要基础课程。
(二)教学目的本课程通过讲授Java语言的基础知识、最新技术和Java程序的设计开发方法,使学生理解和掌握面向对象程序设计的基本思想,熟练地使用Java语言进行程序的编写、编译以及调试工作,熟悉Java平台的基本框架及体系结构,能独立、比较熟练地用Java技术和主流IDE进行中小规模的程序设计和开发,为后续课程及大中型应用软件的研究、设计打下基础。
(三)教学内容知识方面:了解Java语言程序设计基础知识,Java语言的产生背景及其主要特点,掌握Java 语言的数据类型、常量、变量、表达式,掌握Java语言的程序控制结构、以及字符串、数组等,理解Java面向对象编程的基本思想及其特征,掌握图形编程、事件处理、Swing用户界面设计;掌握部署应用程序和Applet、异常处理与调试技巧;了解泛型程序设计、集合框架;掌握多线程编程知识,Java输入输出流,了解网络编程和数据库开发知识。
技能方面:会独立编写简单的Java应用程序;会独立编写简单的Java小应用程序(Java Applet);能应用AWT和Swing常用组件设计图形化用户界面;掌握Java异常处理机制的简单应用;能编写简单的多线程程序;掌握使用Java输入输出流,能实现对文件的处理。
掌握JDBC,能够对数据库进行处理。
(四)教学时数108学时(课堂授课:36学时;实验:72学时)/ 4学分。
(五)教学方式多媒体教学、上机试验。
二、本文理论部分第1章Java程序设计概述与环境教学要点:了解Java语言的发展历程;掌握Java语言的基本特点;了解Java虚拟机和Java运行系统;了解Java程序编写规范等;了解Java开发环境及常用编辑软件。
教学时数:2学时。
教学内容:1.1 Java的发展及其特点(0.5学时)Java程序设计平台、Java“白皮书”的关键术语、Java发展简史、以及关于Java的常见误解。
Python面向对象基本概念PPT课件
封装把对象的所有组成部分组合在一起,封装定 义程序如何引用对象的数据,封装实际上使用方 法将类的数据隐藏起来,控制用户对类的修改和 访问数据的程度。
公有数据 私有数据
数据
ห้องสมุดไป่ตู้方法
方法
对象A
对象B
-
6.1 面向对象基本概念——继承
➢ 自然界通过继承而繁衍发展 ➢ 程序中的继承是从抽象到具体的过程
-
6.1 面向对象基本概念——继承
对象
映射
现实世界 实体
类
计算机
计算机逻辑的实现
抽象数据类
人脑
-
6.1 面向对象基本概念
掌握面向对象的困难之处在于思路的转换,以对 象世界的思维方式来思考问题。
定义类和建立对象是面向对象编程的主要任务。
-
6.1 面向对象基本概念
类和对象的关系 把相似的对象抽象成一个类。 在软件中,类,就是一个模板,它定义了通用 于一个特定种类的所有对象的状态(变量)和 行为(方法)。 类是创建对象的模板,对象是类的实例。
什么是子类? 子类是作为另一个类的扩充或修正所定义的一个类。
bicycle (super class)
sub class
Mountain bikes Racing bikes
Tandem bikes
-
6.1 面向对象基本概念——继承
继承是子类利用父类中定义的方法和变量就像它 们属于子类本身一样。
-
6.1 面向对象基本概念——多态
多态即“有多种形式”。意味着根据对象(类)类型 的不同而表现出不同的行为。 多态即多种形态,在运行时确定其状态,在编译阶 段无法确定其类型,这就是多态。 Python中的变量是弱类型的,在定义时不用指明 其类型,它会根据需要在运行时确定变量的类型。
面向对象方法
面向对象方法面向对象方法是当前的主流开发方法,拥有大量不同的方法,主要包括OMT(Object Model Technology,对象建模技术)方法、Coad/Yourdon方法、OOSE(Object-Oriented Software Engineering,面向对象的软件工程)及Booch方法等,而OMT、OOSE及Booch最后统一成为UML(United Model Language,统一建模语言)。
1.Coad/Yourdon方法Coad/Yourdon方法主要由面向对象的分析(Object-Oriented Analysis, OOA)和面向对象的设计(Object-Oriented Design, OOD)构成,特别强调OOA和OOD采用完全一致的概念和表示法,使分析和设计之间不需要表示法的转换。
该方法的特点是表示简练、易学,对于对象、结构、服务的认定较系统、完整,可操作性强。
在Coda/Yourdon方法中,OOA的任务主要是建立问题域的分析模型。
分析过程和构造OOA概念模型的顺序由5个层次组成,分别是类与对象层、属性层、服务层、结构层和主题层,它们表示分析的不同侧面。
OOA需要经过5个步骤来完成整个分析工作,即标识对象类、标识结构与关联(包括继承、聚合、组合及实例化等)、划分主题、定义属性和定义服务。
OOD中将继续贯穿OOA中的5个层次和5个活动,它由4个部分组成,分别是人机交互部件、问题域部件、任务管理部件和数据管理部件,其主要的活动就是这4个部件的设计工作。
2.Booch方法Booch认为软件开发是一个螺旋上升的过程,每个周期包括4个步骤,分别是标识类和对象、确定类和对象的含义、标识关系、说明每个类的接口和实现。
Booch方法的开发模型包括静态模型和动态模型,静态模型分为逻辑模型(类图、对象图)和物理模型(模块图、进程图),描述了系统的构成和结构。
动态模型包括状态图和顺序图。
《软件工程》课件第11章 面向对象的OMT方法
1. 问题陈述 问题陈述为记下或获取对问题的初步描述。
第11章 面向对象的OMT方法
2. 构造对象模型 构造对象模型的步骤如下: (1) 确定对象类。 (2) 编制类、属性及关联描述的数据词典。 (3) 在类之间加入关联。 (4) 给对象和链加属性。 (5) 使用继承构造和简化对象类。 (6) 将类组合成模块,这种组合在紧耦合和相关 功能上进行。 最后得到:对象模型=对象模型图+数据词典。
第11章 面向对象的OMT方法
两个类之间的关联称为二元关联,三个类之间的 关联称为三元关联。关联的表示是在类之间画一连线。 图11.3表示了二元关联,图11.4表示一种三元关联, 说明程序员使用计算机语言来开发项目。
第11章 面向对象的OMT方法 图11.3 二元关联
第11章 面向对象的OMT方法 图11.4 三元关联
第11章 面向对象的OMT方法
操作的表示如图11.2底部区域所示,操作名后可跟 参数表,用括号括起来,每个参数之间用逗号分开,参 数名后可跟类型,用冒号与参数名分开,参数表后面用 冒号来分隔结果类型,结果类型不能省略。
2. 关联和链 关联和链是建立对象及类之间关系的一种手段。 1) 关联和链的含义 链表示对象间的物理与概念的联结,如张三为通 达公司工作。关联表示类之间的一种关系,就是一些可 能的链的集合。 正如对象与类的关系一样,对象是类的实例,类是 对象的抽象。而链是关联的实例,关联是链的抽象。
第11章 面向对象的OMT方法
3. 构造动态模型 构造动态模型的步骤如下: (1) 准备典型交互序列的脚本。 (2) 确定对象间的事件并为各脚本安排事件跟踪。 (3) 准备系统的事件流图。 (4) 开发具有重要动态行为的各个类的状态图。 (5) 检查状态图中共享事件的一致性和完整性。 最后得到:动态模型 = 状态图 + 全局事件流图。
