面向对象方法学
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
使用统一建模语言UML (Unified Modeling Language)提供的类图来建立 对象模型。
UML用例图是建立功能模型的有力工具。
9.4.1类图的基本符号
1. 定义类
UML中类的图形符号为长方形,用两条横 线把长方形分成上、中、下3个区域,3个区 域分别放类的名字、属性和服务
继承
继承是指能够直接获得已有的性质和特征, 而不必重复定义它们。在面向对象的软件 技术中,继承是子类自动地共享基类中定 义的数据和方法的机制。
单重继承:子类仅从一个父类继承属性和 方法
多重继承:子类可从多个父类继承属性和 方法
多态性
在类等级的不同层次中可以共享(公用)一个 行为(方法)的名字,然而不同层次中的每个 类却各自按自己的需要来实现这个行为。
2. 定义属性
属性用来描述类的特征,表示需要处理的数据。 定义如下:
可见性 属性名 :类型 = 初值 {性质串}
其中:可见性(visibility)表示该属性对类外的元素是否 可见。分为:
• public(+) 公有的,即模型中的任何类都可以访问该属性。 • private(-) 私有的,表示不能被别的类访问。 • protected(#) 受保护的,表示该属性只能被该类及其子类访 问。
当对象接收到发送给它的消息时,根据该 对象所属于的类动态选用在该类中定义的 实现算法
9.3 面向对象建模
面向对象方法最基本的原则,是按照人们 习惯的思维方式,用面向对象观点建立问 题域的模型,开发出尽可能自然地表现求 解方法的软件。
OMT( Object Model Technology)是一 种软件工程方法学,支持整个面向对象软 件生命周期,它覆盖了问题构成、分析、 设计和实现等阶段。
例如,Circle类中定义的代表圆的半径、颜 色等数据成员就是圆的属性
封装
对象封装了对象的数据以及对这些数据的
操作。
课程 ( 设计 )
课程名 课程号 创建日期 上课学期 学分
添加课程 ()
删除课程 ()
修改课程信息
()
教师 ( 设计 )
职称 教工号 姓名 性别 授课信息
: 对象集合
入校 () 离校 () 接受课程 () 解除课程 () 增加 () 删除 () 修改信息 ()
如果图中未明确标出关联的重数,则默认 重数是1。
(2) 关联的角色
面向对象开发软件,需要建立3种形式的模 型。
对象模型。描述系统数据结构—数据结构。
动态模型。描述系统控制结构—执行操作。
功能模型。描述系统功能—数值变化。
这三种模型从不同侧面描述了对系统的需 求。在面向对象的分析(OOA)阶段,这三 种模型是必不可少的。
9.4 对象模型
对象模型描述了系统的静态结构。OO方法 强调围绕对象而不是功能来构造系统。
可见性 操作名(参数表):返回值类型{性质串}
操作可见性的定义方法与属性相同。 参数表是用逗号分隔的形式参数的序列。 描述一个参数的语法如下:
参数名: 类型名=默认值
9.4.2 表示关系的符号
类与类之间关系有: 关联 聚集 泛化(继承) 依赖 细化
9.4.2.1 关联
关联表示两个类的对象之间存在某种语义 上的联系。
(1) 普通关联 普通关联示例
在表示关联的直线两端可以写上重数 (multiplicity),它表示该类有多少个对 象与对方的一个对象连接。
重数的表示方法通常有:
0..1
表示0到1个对象
0..* 或 *
表示0到多个对象
1+ 或 1..*
表示1到多个对象
1..15
表示1到15个对象
3
表示3个对象
实例
实例就是由某个特定的类所描述的一个具 体的对象。类是对具有相同属性和行为的 一组相似的对象的抽象,类在现实世界中 并不能真正存在。
消息
消息就是向对象发出的服务请求(互相联Leabharlann Baidu、 协同工作等)。
一个消息包含3个部分:
接收消息的对象,消息名,消息变元。
例如,MyCircle是Circle类的一个实例,当 要它在屏幕上以绿色显示自己时,应向它发 送消息如下: MyCircle.show(GREEN);
方法
方法就是对象所能执行的操作,也就是类 中所定义的服务。
方法描述了对象执行操作的算法,响应消 息的方法。在C++语言中把方法称为成员 函数。
例如,Circle类中让它显示自己的消息中, show就是其成员函数,在类中,必须给出 它的定义,即实现代码
属性
属性就是类中所定义的数据,它是对客观 世界实体所具有的性质的抽象。
第9章 面向对象方法学引论
9.1 面向对象方法学概述 9.2 面向对象的概念 9.3 面向对象建模 9.4 对象模型 9.5 动态模型 9.6 功能模型 9.7 3种模型之间的关系
9.1.1 传统方法的缺点
结构化分析方法:面向功能
软件结构严重依赖于功能,而功能是软件开发 中最不稳定的因素。
数据和操作相分离
9.1.2 面向对象开发方法
OOSD (Object-Oriented Software Development)是一种 把面向对象的思想
应用于软件开发过程,指导开发活动的系 统方法。
面向对象=对象 (objects) +类 (classes) +继承(inheritance) +通信 (communication with
如果可见性未申明,表示其可见性不确定。
{性质串}列出该属性所有可能的取值,也可 以说明属性的其他性质,如{只读}
例如,发货单类的属性“管理员”可描述 为:
- 管理员 :string = “未定”
3. 定义服务(操作) 对数据的具体处理方法的描述则放在操作
部分,操作说明了该类能做些什么工作。 UML描述操作的语法格式如下:
messages)
9.2 基本概念—对象
对客观存在事物的描述统称为对象 对象可以是事、物、或抽象概念 是将一组数据和使用该数据的一组基
本操作或过程封装在一起的实体。
类
类又称对象类(Object Class),是 一组具有相同属性和相同操作的对象 的集合。
在一个类中,每个对象都是类的实例 (instance) ,它们都可以使用类中提 供的函数。
UML用例图是建立功能模型的有力工具。
9.4.1类图的基本符号
1. 定义类
UML中类的图形符号为长方形,用两条横 线把长方形分成上、中、下3个区域,3个区 域分别放类的名字、属性和服务
继承
继承是指能够直接获得已有的性质和特征, 而不必重复定义它们。在面向对象的软件 技术中,继承是子类自动地共享基类中定 义的数据和方法的机制。
单重继承:子类仅从一个父类继承属性和 方法
多重继承:子类可从多个父类继承属性和 方法
多态性
在类等级的不同层次中可以共享(公用)一个 行为(方法)的名字,然而不同层次中的每个 类却各自按自己的需要来实现这个行为。
2. 定义属性
属性用来描述类的特征,表示需要处理的数据。 定义如下:
可见性 属性名 :类型 = 初值 {性质串}
其中:可见性(visibility)表示该属性对类外的元素是否 可见。分为:
• public(+) 公有的,即模型中的任何类都可以访问该属性。 • private(-) 私有的,表示不能被别的类访问。 • protected(#) 受保护的,表示该属性只能被该类及其子类访 问。
当对象接收到发送给它的消息时,根据该 对象所属于的类动态选用在该类中定义的 实现算法
9.3 面向对象建模
面向对象方法最基本的原则,是按照人们 习惯的思维方式,用面向对象观点建立问 题域的模型,开发出尽可能自然地表现求 解方法的软件。
OMT( Object Model Technology)是一 种软件工程方法学,支持整个面向对象软 件生命周期,它覆盖了问题构成、分析、 设计和实现等阶段。
例如,Circle类中定义的代表圆的半径、颜 色等数据成员就是圆的属性
封装
对象封装了对象的数据以及对这些数据的
操作。
课程 ( 设计 )
课程名 课程号 创建日期 上课学期 学分
添加课程 ()
删除课程 ()
修改课程信息
()
教师 ( 设计 )
职称 教工号 姓名 性别 授课信息
: 对象集合
入校 () 离校 () 接受课程 () 解除课程 () 增加 () 删除 () 修改信息 ()
如果图中未明确标出关联的重数,则默认 重数是1。
(2) 关联的角色
面向对象开发软件,需要建立3种形式的模 型。
对象模型。描述系统数据结构—数据结构。
动态模型。描述系统控制结构—执行操作。
功能模型。描述系统功能—数值变化。
这三种模型从不同侧面描述了对系统的需 求。在面向对象的分析(OOA)阶段,这三 种模型是必不可少的。
9.4 对象模型
对象模型描述了系统的静态结构。OO方法 强调围绕对象而不是功能来构造系统。
可见性 操作名(参数表):返回值类型{性质串}
操作可见性的定义方法与属性相同。 参数表是用逗号分隔的形式参数的序列。 描述一个参数的语法如下:
参数名: 类型名=默认值
9.4.2 表示关系的符号
类与类之间关系有: 关联 聚集 泛化(继承) 依赖 细化
9.4.2.1 关联
关联表示两个类的对象之间存在某种语义 上的联系。
(1) 普通关联 普通关联示例
在表示关联的直线两端可以写上重数 (multiplicity),它表示该类有多少个对 象与对方的一个对象连接。
重数的表示方法通常有:
0..1
表示0到1个对象
0..* 或 *
表示0到多个对象
1+ 或 1..*
表示1到多个对象
1..15
表示1到15个对象
3
表示3个对象
实例
实例就是由某个特定的类所描述的一个具 体的对象。类是对具有相同属性和行为的 一组相似的对象的抽象,类在现实世界中 并不能真正存在。
消息
消息就是向对象发出的服务请求(互相联Leabharlann Baidu、 协同工作等)。
一个消息包含3个部分:
接收消息的对象,消息名,消息变元。
例如,MyCircle是Circle类的一个实例,当 要它在屏幕上以绿色显示自己时,应向它发 送消息如下: MyCircle.show(GREEN);
方法
方法就是对象所能执行的操作,也就是类 中所定义的服务。
方法描述了对象执行操作的算法,响应消 息的方法。在C++语言中把方法称为成员 函数。
例如,Circle类中让它显示自己的消息中, show就是其成员函数,在类中,必须给出 它的定义,即实现代码
属性
属性就是类中所定义的数据,它是对客观 世界实体所具有的性质的抽象。
第9章 面向对象方法学引论
9.1 面向对象方法学概述 9.2 面向对象的概念 9.3 面向对象建模 9.4 对象模型 9.5 动态模型 9.6 功能模型 9.7 3种模型之间的关系
9.1.1 传统方法的缺点
结构化分析方法:面向功能
软件结构严重依赖于功能,而功能是软件开发 中最不稳定的因素。
数据和操作相分离
9.1.2 面向对象开发方法
OOSD (Object-Oriented Software Development)是一种 把面向对象的思想
应用于软件开发过程,指导开发活动的系 统方法。
面向对象=对象 (objects) +类 (classes) +继承(inheritance) +通信 (communication with
如果可见性未申明,表示其可见性不确定。
{性质串}列出该属性所有可能的取值,也可 以说明属性的其他性质,如{只读}
例如,发货单类的属性“管理员”可描述 为:
- 管理员 :string = “未定”
3. 定义服务(操作) 对数据的具体处理方法的描述则放在操作
部分,操作说明了该类能做些什么工作。 UML描述操作的语法格式如下:
messages)
9.2 基本概念—对象
对客观存在事物的描述统称为对象 对象可以是事、物、或抽象概念 是将一组数据和使用该数据的一组基
本操作或过程封装在一起的实体。
类
类又称对象类(Object Class),是 一组具有相同属性和相同操作的对象 的集合。
在一个类中,每个对象都是类的实例 (instance) ,它们都可以使用类中提 供的函数。