面向对象方法学引论

合集下载

ch3 面向对象方法学引论

ch3 面向对象方法学引论

计语言,进行编码。
8
面向对象方法的优点
1. 与人类习惯的思维方式一致 2. 稳定性好 3. 可重用性好 4. 较易开发大型软件产品 5. 可维护性好
9
outline
面向对象方法学概述 面向对象的概念 面向对象建模 对象模型 动态模型 功能模型
10
面向对象的基本概念
对象(object) 类(class) 消息(message) 封装(encapsulation) 继承(inheritence) 多态(polymorphism)
强调对一个系统中的对象特征和行为的定义。建立系统的
三类模型。
OOD(Object-Oriented Design)面向对象的设计 与OOA密切配合顺序实现对现实世界的进一步建模。 OOP (Object-Oriented Program)面向对象的程序设计 是面向对象的技术中发展最快的,使用面向对象的程序设
28
Circle Draw()
Triangle Draw()
outline
面向对象方法学概述 面向对象的概念 面向对象建模 对象模型 动态模型 功能模型
29
面向对象建模
面向对象方法最基本的原则,是按照人们习惯的 思维方式,用面向对象观点建立问题域的模型, 开发出尽可能自然地表现求解方法的软件。 面向对象开发软件,需要建立3种形式的模型。 对象模型:描述系统数据结构—数据结构。 动态模型:描述系统控制结构—执行操作。 功能模型:描述系统功能—数值变化。 这三种模型从不同侧面描述了对系统的需求。在 面向对象的分析(OOA)阶段,这三种模型是必不 可少的。
面向对象方法学概述 面向对象的概念 面向对象建模 对象模型 动态模型 功能模型

第九章面向对象方法学引论

第九章面向对象方法学引论
• 软件开发需要把问题解决模型化。
– 模型化是理解一个复杂系统的工具; – 模型是系统早期抽象的重要结构;
• 常用的面向对象分析与设计模型
– – – – Rumbaugh 等人的 OMT 模型 Coad 和 Yourdon 的模型 Booch 开发模型 UML 统一建模语言
Rumbaugh的对象模型化技术OMT (object modeling technique) • 对象模型化技术的三类模型:对象 模型、动态模型和功能模型。
商品查询
查询商品价格 查询商品成分
顾客
查询商品信息
库存系统
出售商品
预售商品
售货员
网上销售商品
售货管理
总账系统
打折销售商品
用况规格说明:销售商品
说明 顾客持所欲购买的商品至收银台结帐,店员刷商品条 码后,根据数量及单价计算总金额商品售出后,商品 编码、单价、总金额存入电脑,数据记载到“库存系 统”和“总帐系统”中(含预售、网络购物、打折销 售)。。
部署图
活动图
团队 团队标识 承担工作
部门 部门标识 部门名称
1 0..* 项目
0..* 1..* 雇员
雇员标识: char 姓名: char 职务: char 工资: long 0..*
1
1..*
客户 客户标识 客户名称 客户地址 客户电话 客户代表
1..*
1
0..* 项目标识 项目名称
1 1..*
设计模型
实现模型
用户、顾客、开发者等
软件工程方法的一个重要概念 : 事务分离原则



分析模型与设计模型分开建立。 分析模型主要描述系统将要做什么,完全 不考虑具体的实现方法和技术细节。 设计模型描述在给定的实现环境下如何创 建一个特定的软件系统。 前者确定系统的行为,后者给出系统实现的 蓝图。 需求定义模型主要用于获取和处理系统的整 体需求。

面向对象方法学引论.pptx

面向对象方法学引论.pptx
第34页/共67页
图9.14 多重继承示例
第35页/共67页
完全继承指的是父类的所有子类都已在类图中穷举出来了,图示符号是指定{完全}约束。不完全继承与完全继承恰好相反,父类的子类并没有都穷举出来,随着对问题理解的深入,可不断补充和维护,这为日后系统的扩充和维护带来很大方便。不完全继承是一般情况下默认的继承关系。
第2页/共67页
Message
Send by method
对象Object
Object
= 属性Attribute
Attributes: location; employee; ……
+ 操作Method
Methods: send; sell; ……
注意:对象内部的属性不允许外部用户直接改动,只有当它提供了相应的服务操作时,用户才能通过发送消息来提请它执行。
④ 消息(message):对象间只能通过发送消息进行联系,外界不能处理对象的内部数据,只能通过消息请求它进行处理(如果它提供相应消息的话)。
第4页/共67页
OOM:以object 为核心,强调对现实概念的模拟而不强调算法。“面向对象方法学的基本原则,是按照人们习惯的思维方式建立问题域的模型,开发出尽可能直观、自然地表现求解方法的软件系统”。
表示关系的符号
第17页/共67页
类1
类2
角色
角色
关联名
角色表示该类在这个关联中的作用。如果没有显式标出角色名,则意味着用类名作为角色名。重数:该类有多少个对象与对方的一个对象连接。
关联
重数
1、关联
第18页/共67页
在表示关联的直线两端可以写上重数(multiplicity),它表示该类有多少个对象与对方的一个对象连接。重数的表示方法通常有:0…1 表示0到1个对象0…*或* 表示0到多个对象1+或1…* 表示1到多个对象1…15 表示1到15个对象3 表示3个对象如果图中未明确标出关联的重数,则默认重数是1。

第6章 面向对象方法学引论

第6章 面向对象方法学引论
例2:发送消息 MyCircle.Show(Green)
18
《 软件工程导论》
第6章 面向对象方法学引论
消息
注意 倒置 区别:
call turnLeft(hom1,40)
传统软件技术
先 申请一个过 程单元
然后 向其提供操 作的对象
消息 hom1.turnLeft(40)
面向对象技术
先 申请一个对象 然后 执行其中一
已存在的类通常称作超类,新的类通常称作子类。
继承(从C到D) 是指:
类D在类C中隐式的定义其每个属性和操作,就好像这 些属性和操作是在类D本身中定义一样。
C称为D的超类;D称为C的子类。
对象类D可以充分利用类C对象的属性和操作。
21
《 软件工程导论》
第6章 面向对象方法学引论
继承(inheritance)
消息是一个实例对象与另一个实例对象的通信单元,是 要求某个实例对象执行类中定义的某个操作。
发送给一个实例对象的消息定义了一个操作名和一个参 数表(可能是空的),并指定某一个实例对象。
一个实例对象接收的消息则调用消息中指定的操作,并 将形式参数与参数表中相应的值结合起来。
17
《 软件工程导论》
第6章 面向对象方法学引论
3
《 软件工程导论》
第6章 面向对象方法学引论
6.1 面向对象方法学概述
90年代,以OOA/OOD方法逐渐走向实用。一些专家按 照面向对象思想,对系统分析和系统设计工作的步骤、 方法、图形工具等进行了详细的研究,提出了许多不同 的实施方案。其中最有影响的有: 1988年 Shlaer 和 Mellor发表第一本OOA书; 1990年 Coad 和 Yourdon 发展出更简单的合作行 为思想; Booch 进行综合工作; Rumbaugh 提出的 OMT(对象模型化技术); Jacobson 的 OOSE(面向对象的软件工程);

第九章 面向对象方法学引论

第九章 面向对象方法学引论
以数据为中心。
对象是主动的。
实现了数据封装。 本质上具有并行性。 模块独立性好。
2、面向对象的概念 ——类
类(Class)
具有相同属性和服务的一组对象的集合,它为属于该 类的全部对象提供了统一的抽象描术。其内部包括属性和 服务两个主要部分。 类代表一个抽象的概念或事物,对象是在客观世界中实际 存在的类的实例。 例如:在学校教学管理系统中,“学生”是一个类,一个 具体学生“张明”是一个对象,也是“学生”类的一个实 例。
同类对象具有相同的属性和服务,是指它们的定义形 式相同,而不是说每个对象的属性值都相同。 类是静态的,类的存在、语义和关系在程序执行前就 已经定义好了。 对象是动态的,对象在程序执行时可以被创建和删除。 在面向对象的系统分析和设计中,并不需要逐个对对 象进行说明,而是着重描述代表一批对象共性的类。
第九章 面向对象方法学引论
黄冈师范学院
主要内容 面向对象方法学概述 面向对象的概念
对象、类、属性、方法、封装、继承、多态、消息等
面向对象建模
对象模型、动态模型、功能模型 可视化建模与Uml语言
3种模型之关的关系
面向对象方法与结构化方法
结构化方法 问题域
自然 语言
面向对象方法
问题域
第9章 课程内容提纲
1 面向对象方法学概述
2 面向对象的概念
3 面向对象建模 4 对象模型 5 态动建模 6 功能建模
7 3种模型之间的关系
2、面向对象的概念 —— 对象
对象(Object)
对象是问题域或实现域中某些事物的一个抽象,它反 映该事物在系统中需要保存的信息和发挥作用;它是 构成系统的一个基本单位,由一组属性和对这组属性 进行操作的一组服务组成。

面向对象方法学引论

面向对象方法学引论

文件在目录 内是唯一的
39
关联的属性
进一步说明对象间关联的性质,可引入 一个关联类来记录这些附加信息。关联类通 过一条虚线与关联连接。
40
41
类图
借方 人 * 抵押 本金 利率 到期 *{有 序 } 房屋 信贷银行 银行 * 债权人 * 金融机构
持有人
财产
*
42
2、聚合
一种“整体与成员”的关系。表示整体 类的那一端增加一个菱形框。 包括共享聚合和组合聚合。如:
20
6 、封装(encapsulation )
封装是把对象的属性和实现操作的代码 结合成一个独立的系统单位,并尽可能隐藏 对象的内部细节,对象以外的部分不能直接 作用于对象的内部数据(属性),对象间的 通信只能通过明确的消息来进行。
21
7、继承( inheritance)
在现存类定义的基础上,建立新定义类 的技术。 新类的定义可以是现存类所声明的数据、 定义与新类所增加的声明的组合。 新类复用现存类的定义,而不要求修改 现存类。 现存类可当作父类(泛化类、基类或超 类)来引用,则新类相应地可当作子类(特 化类、子女类或派生类)来引用。
49
关系 行为者 方框代表系统
椭圆代表用例
图9.16自动售货机系统用例图
50
建模实例:某金融贸易系统用例图 (UML )
51
建模实例:用例图举例( UML )
52
用例之间的关系
13
表示内部状态的数据、实现各操作的代码及 局部数据,被隐藏,无法从外面看见、访问 或修改; 使用对象的时候,只能通过对象与外界的界 面来操作; 操作时,只需知道该操作的名字和所需要的 参数,不需要知道这些操作是如何实现的; 简单、方便,安全性和可靠性高。

第7章 面向对象方法学引论

第7章 面向对象方法学引论

面向对象方法学比较自然地模拟了人类认识客观 世界的思维方式,它所追求的目标和遵循的基本原则, 就是使描述问题的问题空间和在计算机中解决问题的
用面向对象观点建立系统的模型,能够促进和加 深对系统的理解,有助于开发出更容易理解、更容易 维护的软件。通常,人们从三个互不相同然而又密切 相关的角度建立起三种不同的模型。它们分别是描述 系统静态结构的对象模型、描述系统控制结构的动态 模型、以及描述系统计算结构的功能模型。其中,对
与传统方法相反,面向对象方法是一种以数据或
信息为主线,把数据和处理相结合的方法。面向对象
方法把对象作为由数据及可以施加在这些数据上的操 作所构成的统一体
· 认为客观世界是由各种对象组成的,任何事物
都是对象,复杂的对象可以由比较简单的对象以某种
方式组合而成。 · 把所有对象都划分成各种对象类(简称为类,
一个典型的软件系统组合了上述三方面内容:它 使用数据结构(对象模型),执行操作(动态模型),并 且完成数据值的变化(功能模型)
7.5 对象模型
对象模型表示静态的、结构化的系统的“数据” 性质。它是对模拟客观世界实体的对象以及对象彼此 间的关系的映射,描述了系统的静态结构。Fra bibliotek7.5.1
表示类—&—
3. ·以数据为中心。 ·对象是主动的。
·实现了数据封装。
·本质上具有并行性。 ·模块独立性好。
7.3.2
1. 类(Class) 在面向对象的软件技术中,“类”就是对具有相 同数据和相同操作的一组相似对象的定义,也就是说, 类是对具有相同属性和行为的一个或多个对象的描述,
通常在这种描述中也包括对怎样创建该类的新对象的
字,然而不同层次中的每个类却各自按自己的需要来

软件工程-面向对象方法学引论

软件工程-面向对象方法学引论
行为者触发(激活)用例,并与用例交换信息。 实践表明,行为者对确定用例是非常有用的。 可先列出行为者清单,再针对每个行为者列出它的用例。
这样做就比较容易地建立起用例模型。
4.用例之间的关系 扩展关系和使用关系,它们是泛化关系的两种不同形式。
1) 扩展关系 向一个用例中添加一些新的动作后构成了另一个用例,
三种模型之间的关系
1)针对每个类建立的动态模型, 描述了类实例的生命周期或运行周期。
2)状态转换驱使行为发生, 这些行为在数据流图中被映射成处理,
在用例图中被映射成用例, 它们同时与类图中的服务相对应。 3)功能模型中的处理(或用例)对应于对象模型中的
类所提供的服务。 有时一个处理(或用例)对应于多个服务, 也有一个服务对应多个处理(或用例)的时候。
通常下层的派生类具有和上层的基类相同的特性 (包括数据和方法)。
4) 对象彼此之间仅能通过传递消息互相联系。
6.1.2面向对象方法学的优点
• 1. 与人类习惯的思维方法一致 • 2. 稳定性好 • 3. 可重用性好 • 4. 较易开发大型软件产品 • 5. 可维护性好
9.2面向对象的概念
• 9.2.1对象 • 1. 对象的形象表示
对象模型为建立动态模型和功能模型,提供了实质 性的框架。
国际上UML(Unified Modeling Language;统一建 模语言)作为面向对象技术的标准建模语言。
通常,使用UML提供的类图来建立对象模型。
9.4对象模型
9.4.1类图的基本符号 • 1. 定义类
类名
Circle(圆)
属性 操作(服务)
接口),符合高内聚、低耦合的设计原则。
9.2.2其他概念
• 1. 类(class) • 2. 实例(instance) • 3. 消息(message) • 4. 方法(method) • 5. 属性(attribute) • 6. 封装(encapsulation) • 7. 继承(inheritance) • 8. 多态性(polymorphism) • 9. 重载(overloading)
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

❖ 面向对象方法学的出发点和基本原则,是尽 可能模拟人类习惯的思维方式,使开发软件 的方法与过程尽可能接近人类认识世界解决 问题的方法与过程
痛苦的系统,艰难的维护
❖ 在传统的面向过程的软件开发中,是由变量 直接过渡到功能,中间靠复杂的算法维系, 这就是人们常说的“语义断层”。
❖ 而面向对象方法由变量到方法,再到模块, 最后到软件。
面向对象方法学 引论
❖ 面向对象的思想最初起源于20世纪60年代中 期的仿真程序设计语言Simula 67
❖ 20世纪80年代初 Smalltalk成为面向对象技术 发展的一个重要里程碑 。
❖ 传统的软件工程方法学在许多中、小规模软 件项目中都获得了成功,但当把这种方法学 应用于大型软件产品的开发时,似乎取得成 功的例子很少。
概括地说,面向对象方法具有下述4个要点: ❖ (1) 认为客观世界是由各种对象组成的
❖ (2)派生类)与父类(或称为基 类)的关系,把若干个对象类组成一个层次结 构的系统
❖ (4) 对象彼此之间仅能通过传递消息互相联系。
面向对象的方法学可以用下列方程来概括: ❖ OO=objects +classes +inheritance+
communication with messages
面向对象方法学的优点
❖ 1. 与人类习惯的思维方法一致
❖ 2. 稳定性好
❖ 3. 可重用性好
❖ 4. 较易开发大型软件产品
❖ 5. 可维护性好
对象
❖ 在应用领域中有意义的、与所要解决的问题 有关系的任何事物都可以作为对象
对象的定义
❖ (1) 定义1: 对象是具有相同状态的一组操作 的集合。
❖ (2) 定义2: 对象是对问题域中某个东西的抽 象,这种抽象反映了系统保存有关这个东西 的信息或与它交互的能力。
❖ (3) 定义3: 对象∷=〈ID,MS,DS,MI〉。其中, ID是对象的标识或名字,MS是对象中的操作 集合,DS是对象的数据结构,MI是对象受理 的消息名集合(即对外接口)。
对象的特点
❖ 以数据为中心。 ❖ 本质上具有并行性。 ❖ 模块独立性好。
相关文档
最新文档