9面向对象方法学引论

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
淮海工学院━软件工程
在创建类的实例时应给其属性赋值,如果给某个 属性定义了初值,则该初值可作为创建实例时这个属 性的默认值。类型名和初值之间用等号(=)隔开。 用花括号括起来的性质串明确地列出该属性所有 可能的取值。例如,“发货单”类的属性“管理员”, 在UML类图中像下面那样描述: -管理员: String=“未定”
0„1 0„*或* 表示0到1个对象 表示0到多个对象
1+或1„*
1„15
表示1到多个对象
表示1到15个对象
3
表示3个对象
如果图中未明确标出关联的重数,则默认重 数是1。
淮海工学院━软件工程
(2) 关联的角色
在任何关联中都会涉及到参与此关联的对象所扮演的 角色(即起的作用),在某些情况下显式标明角色名有助 于别人理解类图。下图是一个递归关联(即一个类与它本 身有关联关系)的例子。一个人与另一个人结婚,必然一 个人扮演丈夫的角色,另一个人扮演妻子的角色。如果没 有显式标出角色名,则意味着用类名作为角色名。
Polygon类的子类 Quadrilateral
淮海工学院━软件工程
多态性(Polymorphism)
在面向对象的软件技术中,多态性是指子 类对象可以象父类对象那样使用,同样的消 息既可以发送给父类对象也可以发送给子类
对象。
多态性机制不仅增加了面向对象软件系
统的灵活性,进一步减少了信息冗余,而且
• 组织机构:有关机构,如公司、部门、小 组等;
• 地点或位置:用做系统环境或问题上下文 的场所、位置,如客户地址、收件人地址 等; • 操作规程:如操作菜单、某种数据输入过 程等。
淮海工学院━软件工程
类(class)
• 类是一组具有相同数据结构和相同操作的对象的 集合。 • 类的定义包括一组数据属性和在数据上的一组合 法操作。 • 类定义可以视为一个具有类似特性与共同行为的 对象的模板,可用来产生对象。
面向对象中的基本概念
对象的形象表示
操作1
界 面 操作2 操作3
状态 S
操作1,2,3的实现
淮海工学院━软件工程
面向对象中的基本概念
对象的特点
以数据为中心 对象是主动的 实现了数据封装 本质上具有并行性 模块独立性
淮海工学院━软件工程
淮海工学院━软件工程
淮海工学院━软件工程
淮海工学院━软件工程
淮海工学院━软件工程
类图的基本符号
1. 定义类
UML中类的图形符号为长方形,用两条横线把长方形分成 上、中、下3个区域(下面两个区域可省略),3个区域分 别放类的名字、属性和服务。
淮海工学院━软件工程
为类命名时应该遵守以下几条准则:
(1) 使用标准术语。应该使用在应用领域中人们习惯的标准术 语作为类名,不要随意创造名字。例如,“交通信号灯”比“信号 单元”这个名字好,“传送带”比“零件传送设备”好。 (2) 使用具有确切含义的名词。尽量使用能表示类的含义的日 常用语作名字,不要使用空洞的或含义模糊的词作名字。例如, “库房”比“房屋”或“存物场所”更确切。
淮海工学院━软件工程
对象(object)
• 对象是面向对象开发方法的基本成份。 • 每个对象可用它本身的一组属性和它可以 执行的一组操作来定义。 • 属性一般只能通过执行对象的操作来改变。
• 操作又称为方法或服务,它描述了对象执 行的功能,若通过消息传递,还可以为其 它对象使用。
淮海工学院━软件工程
• 在一个类中,每个对象都是类的实例 (Instance), 它们都可使用类中的函数。
淮海工学院━软件工程
类 ← 两个四边形对象
淮海工学院━软件工程
• Quadrilateral类的每个对象有相同的一组属 性和操作。因此,类Quadrilateral提供了一 个模板,表示了所有四边形对象。 • 类常常可看做是一个抽象数据类型(ADT)的实 现。但更合适的是把类看做是某种概念的模型。
第9章 面向对象方法学引论
学习目标
• 掌握什么是面向对象方法学?它有哪些优点。 • 理解喷泉模型的概念。 • 理解和掌握的对象、类、继承、多态等概念熟悉面向对象 建模的重要性; • 掌握对象模型的基本含义、图形元素、建模方法和主要用 途; • 掌握动态模型的基本含义、图形元素、建模方法和主要用 途; • 掌握功能/用例模型的基本含义、图形元素、建模方法和主 要用途; • 了解三种模型早OO方法中地位和作用。。 淮海工学院━软件工程
表示关系的符号
类与类之间通常有关联、泛化(继承)、依赖和 细化等4种关系。 1. 关联 (1) 普通关联 普通关联是最常见的关联关系,只要在类与类之 间存在连接关系就可以用普通关联表示。普通关联 的图示符号是连接两个类之间的直线。
淮海工学院━软件工程
在表示关联的直线两端可以写上重数 (multiplicity),它表示该类有多少个对象与 对方的一个对象连接。重数的表示方法通常有:
淮海工学院━软件工程
面向对象的主要优点:
1. 2. 3. 4. 5. 与人类习惯的思维一致 稳定性好 可重用性好 较易开发出大型软件产品 可维护性好 稳定性好、易于修改、容易理解、容易测试和调试
面向对象技术的优点并不是减少了开发时间, 相反,初次使用这种技术开发软件,可能比用传统的方 法所需要的实践还稍微长一点。
1+ (1个或多个) (0个或1个) (0个或多个) 12,4 (1~2个或4个) 淮海工学院━软件工程
一般化关联
• 也称为继承性。一般化关系包含基类和几个 派生类。 • 基类表示了一个较为一般、普遍的概念 • 每个派生类则是它的某个特殊形态 • 派生类除了自然地继承基类所具有的属性和 操作外,还具有反映自身特点的属性和操作。
如:myCircle.show(GREEN) 不同于结构化设计中的函数调用。
淮海工学院━软件工程
继承 (Inheritance)
• 继承是使用已有的类定义做为基础建立新 类的定义的技术。 • 新类的定义可以是既存类所声明的数据和 新类所增加的声明的组合。新类复用既存 的定义,而不要求修改既存类。 • 既存类可当做基类来引用,则新类相应地 可当做派生类来引用。
淮海工学院━软件工程
(3) 限定关联
限定关联通常用在一对多或多对多的关联关系中,可 以把模型中的重数从一对多变成一对一,或从多对多简化 成多对一。例如,某操作系统中一个目录下有许多文件, 一个文件仅属于一个目录,在一个目录内文件名确定了惟 一一个文件。
淮海工学院━软件工程
(4) 关联类
为了说明关联的性质可能需要一些附加信息。可以 引入一个关联类来记录这些信息。关联中的每个连接与 关联类的一个对象相联系。关联类通过一条虚线与关联 连接。
淮海工学院━软件工程
Polygon
referencePoint Vertices Draw( ) move(x, y) contains?(aPoint) Polygon类
Quadrilateral
referencePoint Vertices Draw( ) move(x, y) contains?(aPoint)
淮海工学院━软件工程
面向对象的要点:
1. 认为客观世界是由各种对象组成的,任何事 物都是对象,复杂的对象可以有比较简单的对 象以某种方式组合而成。 2. 把所有对象都划分成各种对象类,每个对象 类都定义了一组数据和一组方法。 3. 按照子类(或称为派生类)与父类(或称为 基类)的关系,把若干个对象类组成一个层次 结构的系统(也称为类等级)。 4. 对象彼此之间仅能通过传递消息互相联系。
淮海工学院━软件工程
类 类名
类的实例 (类名)
类定义示例 正方形 边长 位置 边界颜色 内部颜色 画图 擦图 移动
属性
操作
属性值
淮海工学院━软件工程
• 聚合,代表整体与部分的关系,这是一种 特殊形式的关联。 – 菱形框 表示整体侧对象 • 限定,用以对关联的含义做某种约束。 • 角色,用来说明关联的一端。由于多数关 联具有两个端点,因而涉及到两个角色。 • 附加的说明对象之间的连接的连接属性。
• 建立类的实例时常常使用其它类的实例,它们 提供了该类所需要的服务。 • 用到的这些实例应当受到保护不被其它对象存 取,包括同一个类的其它实例。
淮海工学院━软件工程
消息(Message)
什么是消息?
消息,就是要求某个对象执行在定义它的那个类 中所定义的某个操作的规格说明。通常,一个消息有 下述三部分组成: 接受消息的对象 消息选择符(也称为消息名) 零个或多个变元
淮海工学院━软件工程
例:类的继承层次
Polygon Triangle Quadrilateral
Rectangle
淮海工学院━软件工程
• 使用继承设计一个新类,可以视为描述一个新 的对象集,它是既存类所描述对象集的子集合。
• 这个新的子集合可以认为是既存类的一个特殊 化。 • 新类的界面可以等同于既存类的界面,新类的 界面还可以被看做是既存类界面的一个扩充界 面。例如,从一个既存的车辆类派生的四轮驱 动车类可能不仅是车辆类子集合定义的特殊化, 而且还可能在新类的界面中引入新的能力。
对象的分类
• 外部实体:与系统交换信息的外部设备、相关子 系统、操作员或用户等; • 信息结构:问题论域中的概念实体,如信号、报 表、显示信息等; • 需要记忆的事件:系统执行过程中产生并需要记 忆的事件,如单击鼠标,击打键盘等; • 角色:与系统交互的人员所扮演的角色,如学生、 教师、会计等;
淮海工学院━软件工程
淮海工学院━软件工程
对象模型化技术OMT
• 对象模型化技术把分析时收集的信息构造在三类 模型中,即对象模型、动态模型和功能模型。
对象模型
动态模型
功能模型
• 这个模型化的过程是一个迭代过程。通过不断更 新、细化,直到切合系统的真正需求为止。
淮海工学院━软件工程
对象模型
• 是三个模型中最关键的一个模型,它的作用 是描述系统的静态结构,包括构成系统的类 和对象,它们的属性和操作,及它们之间的 关系。 • 在OMT中,类与类之间的关系叫做关联。关 联代表一组存在于两个或多个对象之间的、 具有相同结构和含义的具体连接。关联可以 是物理的,也可以是逻辑的。
显著提高了软件的可重用性和可扩充。
淮海工学院━软件工程
重载(Overloading)
有两种重载: 函数重载是指在同一作用域内的若干个参数特 征不 同的函数可以使用相同函数名字。 运算符重载是指同一个运算符可以施加于不同 类型的操作数上面。当然,当参数特征不同或被 操作数的类 型不同时,实现函数的算法或运算符 的语义是不相同的。
淮海工学院━软件工程
3. 定义服务
服务也就是操作,UML描述操作的语法格式如下: 可见性操作名(参数表): 返回值类型{性质串} 操作可见性的定义方法与属性相同。 参数表是用逗号分隔的形式参数的序列。描述一个参数 的语法如下: 参数名: 类型名=默认值 当操作的调用者未提供实在参数时,该参数就使用默认 值。 与属性类似,在类中也可定义类作用域操作,在类图中 表示为带下划线的操作。这种操作只能存取本类的类作用域 属性。 淮海工学院━软件工程
(3) 必要时用名词短语作名字。为使名字的含义更准确,必要
时用形容词加名词或其他形式的名词短语作名字。例如,“最小的 领土单元”、“储藏室”、“公司员工”等都是比较恰当的名字。
总之,名字应该是富于描述性的、简洁的而且无二义性的。
淮海工学院━软件工程
2. 定义属性 UML描述属性的语法格式如下: 可见性 属性名: 类型名=初值{性质串} 属性的可见性(即可访问性)有3种: 公有的(public) 私有的(private) 保护的(protected) 分别用加号(+)、减号(-)和井号(#)表示。如果 未声明可见性,则表示该属性的可见性尚未定义。注意, 没有默认的可见性。 属性名和类型名之间用冒号(:)分隔。类型名表示 该属性的数据类型,它可以是基本数据类型,也可以是用 户自定义的类型。
第9章 面向对象方法学引论
面向对象的概念
• • • • • 什么是面向对象 对象 类 消息 继承
淮海工学院━软件工程
什么是面向对象
• Coad和Yourdon给出了一个定义:“面向 对象=对象+类+继承+通信”。 • 如果一个软件系统是使用这样 4 个概念 设计和实现的,则认为这个软件系统是面 向对象的。 • 一个面向对象的程序的每一成份应是对象, 计算是通过新的对象的建立和对象之间的 通信来执行的。
相关文档
最新文档