使用UML进行面向对象分析和建模.
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
对问题范围的陈述
构造系统的功能模型 标识输入和输出; 使用数据流图表示流变换; 为每个功能开发PSPEC; 规定约束和优化标准
建造对象模型
标识和问题相关的类; 定义属性和关联; 定义对象链接; 用继承来组织对象类
开发动态模型
准备场景; 定义事件并为每个场景 开发一个事件轨迹; 构造事件流图; 开发状态图; 复审行为的一致性和完整性
本章内容
6.1 面向对象建模方法概述 6.2 面向对象建模的基本概念 6.3 统一建模语言UML 6.4 使用用例建模系统需求 6.5 对象分析建模过程
6.2 面向对象的基本概念
基本概念与特点 – 对象(Object) – 消息(Message) – 类(Class) – 实例(Instance) – 继承(Inheritance) – 封装(Encapsulation) – 多态(Polymorphism)
UML Representation of Generalization/Specialization
对象/类的关联关系
对象/类的关联关系 – 是一种存在于一个或多个 对象/类之间的自然业务联系。
• 连线表示类之间的关联关系: places • 关联关系是双向的
• 一个客户提交零 个或多个订单
• 一个订单由一个 且仅有一个客户提
类(Class) 一个对象类描述具有相似性质(属性)的一 组对象,这组对象具有一般行为(操作),一 般的关系(对象之间)及一般语义。 类是对象类的缩写,类中的对象有着相同的 属性、行为模式。
6.2 面向对象的基本概念
类(Class)
结构化程序设计
数据结构 数据项 数据项 数据项 数据项
现实问题空间
抽象部分 教室类
具体部分
一个对象:教室实例
解空间
面向对象的软件开发方法
顺应人类思维习惯,让软件开发人员在解空间中直接模 拟问题空间中的对象及其行为
改善软件结构(模块化与封装),提高软件灵活性 支持软件重用 支持增量式开发,支持大型软件开发
面向对象的软件开发方法
软件工程的原则
面向对象方法的核心是对象建模技术
面向对象分析设计的基本思路
识别对象和类 通过一组互相关联的模型详细表示类之间的关系
和对象的行为,并最终描述系统的信息、功能和 行为 静态逻辑模型 动态逻辑模型
Booch方法
把系统的开发工作分为两个部分:微观过程和宏观过 程。
1.确定类和对象
2.建立理想的行为模型 (分析)
Inheritance – the concept wherein methods and/or attributes defined in an object class can be inherited or reused by another object class.
继承(cont.)
概化、特化
6.2面向对象的基本概念
封装(Encapsulation)
封装是一种信息隐蔽技术,就是把对象的属 性和行为相结合构成一个独立的基本单位, 用户只能见到对象封装界面上的信息,对象 内部对用户是隐蔽的。
封装的目的在于将对象的使用者和对象的设 计者分开,使用者不必知道行为实现的细节, 只需使用设计者提供的消息访问对象
OMG于1997年采纳为国际标准。
对象、属性和实例
表示一个对象实例, 对象实例的名称为: 412209 ; 分 类 为 : Customer。
表示一个对象实例的 属性。对象实例的名 称是唯一表示该对象 的属性值。
对象类
表示一个对象类,主 要包含三部分:对象 类的名称、属性名称、 方法名称。
继承
概化/特化 – 是一种技术,其中几类对象类的公共属性和 行为被组合成类,称为超类,超类的属性和方法可被子 类(即上述对象类)继承。 超类 – 是包含一个或多个对象子类的公共属性和行为的 实体,也称为抽象类或父类。 子类 –是一个对象类,它从一个超类继承属性和行为,并 可能包含自身所特有的属性和行为。如果它位于继承层 次的最底层,也称为实类.
方法
数据
6.2面向对象的基本概念
消息 - 消息传送与函数调用的区别
函数调用可以带或不带参数,但是消息至少带 一个参数,它表明接收该消息的对象,消息中 告诉对象做什么的部分称为消息操作; 消息操作名类似于函数名,其本质区别在于: 函数名代表一段可执行的代码,但消息操作名 具体功能的选定还取决于接收消息的对象本身 函数调用是过程式的(如何做),消息传送是 说明式的(做什么),具体如何做,由对象根 据收到的消息自行确定。
统一建模语言(UML)
UML 2.0
统一建模语言 (UML) 是 一 套 建 模规则,它使用 对象说明或描述 软件系统
公
UML 并未规定一
众 反
种系统开发方法, 馈
它只是一种广泛
接受的对象建模
标准的符号体系。
2001.2 1999.6 1997.11 1997.9发布 1997.1发布 1996.6和1996.10 OOPSAL95
建造需求模型
定义参与者和他们的责任; 为每个参与者标识用例; 准备系统对象和关系的初步视图; 应用用例作为场景去复审模 型以确定有效性
用例(use case)驱动,它 建立的所有模型都是以用例模 型为基础的。 用例——用以描述用户和系统 间如何交互的场景
Rambaugh方法(OMT方法)
创建三个模型:对象模型(对 象类、层次和关系的表示)、 动态模型(对象和系统行为的 表示)和功能模型(高层的类 似DFD的系统信息流的表示)
Rambaugh方法(OMT方法)
主要分为分析、设计和实现三个阶段。 分析阶段:确定对象模型、动态模型和功能模型 设计阶段:系统设计和对象设计 实现阶段的细节和具体的实现环境有关 OMT方法突出的特点是在分析阶段,它可以较为 全面地描述系统的静态结构,所以0MT方法适合 于数据密集型的信息系统的开发。
6.1 面向对象建模方法概述
面向对象方法学 采用面向对象的概念及其抽象机制建立应用系 统模型,将系统开发视为对象模型的转换和不 断细化过程
对象建模 是一种用于辨识系统环境中的对象和这些对象 关系的技术
面向对象的方法学
分析与设计的鸿沟
问题域
需求分析 (系统分析)
总体设计 (系统设计) 详细设计
交
重数
重数:定义 一个对象/类 对应相关对 象类的一个 实例关联可 能的最小出 现次数和最 大出现次数.
聚合关系
聚合关系:是一个较大的“整体”类饱含一个或多个较小的 “部分”类之间的关系。
本章内容
6.1 面向对象建模方法概述 6.2 面向对象建模的基本概念 6.3 统一建模语言UML 6.4 使用用例建模系统需求 6.5 对象分析建模过程
6.3 统一建模语言UML
Unified Modeling Language (UML) 是一套建模规则,它使用对象说明或描 述软件系统。
UML 并未规定一种系统开发方法,它 只是一种广泛接受的对象建模标准的符 号体系。
使用UML进行面向 对象分析和建模
OBJECT-ORIENTED ANALYSIS AND MODELING USING THE UML
第6章 Chapter 6
本章内容
6.1 面向对象建模方法概述 6.2 面向对象建模的基本概念 6.3 统一建模语言UML 6.4 使用用例建模系统需求 6.5 对象分析建模过程
买 卖 移动
6.2面向对象的基本概念
对象(Object) 对象是用来描述客观存在的事物,它是构成系统的 基本单位,是对客观世界中事物的抽象描述。
对象 = 行为(功能、方法、服务) + 属性(数据)
对象 对象 对象
接口
对象 属性 行为
6.2 面向对象的基本概念
对象是由私有数据(属性)及作用于其上的一组操作 (行为)所构成的一个封闭整体 由于对象的数据是私有的,所以要想访问其数据的 正确方法是向该对象发送消息,让对象自身选择其 内部相应的操作以完成对该项数据的访问 对象的动作取决于外界给对象的刺激,这就是消息, 消息告诉对象所要求它完成的功能。对象具有一定 的智能功能,即“知道”如何选择相应的操作来处 理对象所接收的消息
处理方法 (函数)
处理方法 (函数)
处理方法 (函数)
面向对象的程序设计
对象 数据项 数据项
处理方法
数据项 数据项
处理方法
6.2面向对象的基本概念
消息(Message) 对象之间的联系是通过传递消息来实现的。 是对象之间进行通讯的一种数据结构。 消息统一了“数据流”和“控制流”。
消息到达
面向对象的世界观
把客观世界从概念上看成是一个由相互配合而 协作的对象所组成的系统
面向对象=对象+分类+继承+通信 一个实例——椅子
一个面向对象的实例——椅子
类:家具
价格 尺寸 重量 位置 颜色
买 卖 移动
对象:桌子
价格 尺寸 重量 位置 颜色
买 卖 移动
对象:椅子
价格 尺寸 重量 位置 颜色
UML 1.4
UML 1.3
UML 1.1为OMG组织 接纳为标准
UML 1.1
UML 1.0 UML 0.9&0.91 Unified Method 0.8
合作伙伴 意见
Booch 93
OMT-2
其他方法
Booch 91
OMT-1
OOSE
普及
统
一
工业化
建
模
语 标准化
言
的
发 统一化
展
过
分散的 部分
程
6.2面向对象的基本概念
实例(Instance)
属于某类的具体对象就是该类的实例。一个类 的不同实例必定具有: 相同的操作(或行为)的集合 相同的信息结构或属性定义,但可以有不同
的属性值 不同的对象标识
6.2面向对象的基本概念
实例(Instance)
数据 项
数据 项
类(描述)
数据 项
从设计人员的角度看,对象是一个完成特定功能的程 序块
从用户的角度看,对象为他们提供了所希望的行为
6.2 面向对象的基本概念
对象(Object) 对象标识 对象生命周期 对象的分类 • 一般对象 • 主动对象 • 永久对象
6.2面向对象的基本概念
将事物进行归纳划分成不同的一些类是人们认识客观 世界的基本思维方法。这种方法依据的原则是抽象,它忽 略了客观事物非本质特性,将客观事物所具有的共同点, 即本质特性划分为一类,形成对事物的本质认识,得出事 物的抽象结果。
4.规范化类和对象 的关系
3.确定类和对象的 关系
2.确定类和对象的 语义
1.建立核心需要 (概念化)
5.管理提交以后的模型 (维护)
3.创建体系结构 (设计)
4.细化、完善实现模型 (进化)
微观过程
宏观过程
Jocobson方法(OOSE方法)
用户标识
标识系统的用户和他们 的整体责任
建造系统模型
使用参与者交互的信息来 标识界面对象; 创建界面对象的结构视图; 表示对象行为; 分离出每个对象的子系统和模型; 使用用例作为场景去复审模 型以确定合法性
处理方法
数据 项
处理方法
实例化
实例化
实例
数据 项
数据 项
数据 项
数据ቤተ መጻሕፍቲ ባይዱ项
实例
数据 项
数据 项
数据 项
数据 项
6.2面向对象的基本概念
继承(Inheritance)
是自动共享类、子类和对象中的方法和数据的机制。 是实现从可重用成分构造系统的最有效的特性
图
封闭图
开放图
多边形
椭圆
线
矩形
梯形
五边形
圆
实现 测试 计算机
传统方法
分析与设计 的鸿沟
问题域 面向对象的分析(OOA) 面向对象的设计(OOD) 面向对象的实现(OOP) 面向对象的测试(OOT)
计算机
面向对象方法
面向对象的方法学
问题求解 面向对象设计方法:实现问题空间和问题求 解空间的近似和直接模拟。
意识部分 教室
物质部分 303教室
抽象 信息隐藏 (局部化) 模块化(高内聚,低耦合) 一致性 完全性 可验证性
面向对象建模方法概述
面向对象分析(Object-Oriented Analysis, OOA)技术用于 – 1. 研究现有对象,看它们是否能够被复用或者 被调整用于新的用途; 2. 定义各种新对象和修改后的对象,它们将于 现有对象一起组合成一个有用的企业计算应 用系统
6.2 面向对象的基本概念
一个对象
..……
方法
协 公有 消息
议 私有 消息
存储结构
Pos Color ……
6.2面向对象的基本概念
多态(Polymorphism)
即一个名字具有多种语义。 同一对象接收到不同消息采用不同的行为方式 不同对象收到相同消息时产生不同的动作 重载(overload) 动态绑定 类属
构造系统的功能模型 标识输入和输出; 使用数据流图表示流变换; 为每个功能开发PSPEC; 规定约束和优化标准
建造对象模型
标识和问题相关的类; 定义属性和关联; 定义对象链接; 用继承来组织对象类
开发动态模型
准备场景; 定义事件并为每个场景 开发一个事件轨迹; 构造事件流图; 开发状态图; 复审行为的一致性和完整性
本章内容
6.1 面向对象建模方法概述 6.2 面向对象建模的基本概念 6.3 统一建模语言UML 6.4 使用用例建模系统需求 6.5 对象分析建模过程
6.2 面向对象的基本概念
基本概念与特点 – 对象(Object) – 消息(Message) – 类(Class) – 实例(Instance) – 继承(Inheritance) – 封装(Encapsulation) – 多态(Polymorphism)
UML Representation of Generalization/Specialization
对象/类的关联关系
对象/类的关联关系 – 是一种存在于一个或多个 对象/类之间的自然业务联系。
• 连线表示类之间的关联关系: places • 关联关系是双向的
• 一个客户提交零 个或多个订单
• 一个订单由一个 且仅有一个客户提
类(Class) 一个对象类描述具有相似性质(属性)的一 组对象,这组对象具有一般行为(操作),一 般的关系(对象之间)及一般语义。 类是对象类的缩写,类中的对象有着相同的 属性、行为模式。
6.2 面向对象的基本概念
类(Class)
结构化程序设计
数据结构 数据项 数据项 数据项 数据项
现实问题空间
抽象部分 教室类
具体部分
一个对象:教室实例
解空间
面向对象的软件开发方法
顺应人类思维习惯,让软件开发人员在解空间中直接模 拟问题空间中的对象及其行为
改善软件结构(模块化与封装),提高软件灵活性 支持软件重用 支持增量式开发,支持大型软件开发
面向对象的软件开发方法
软件工程的原则
面向对象方法的核心是对象建模技术
面向对象分析设计的基本思路
识别对象和类 通过一组互相关联的模型详细表示类之间的关系
和对象的行为,并最终描述系统的信息、功能和 行为 静态逻辑模型 动态逻辑模型
Booch方法
把系统的开发工作分为两个部分:微观过程和宏观过 程。
1.确定类和对象
2.建立理想的行为模型 (分析)
Inheritance – the concept wherein methods and/or attributes defined in an object class can be inherited or reused by another object class.
继承(cont.)
概化、特化
6.2面向对象的基本概念
封装(Encapsulation)
封装是一种信息隐蔽技术,就是把对象的属 性和行为相结合构成一个独立的基本单位, 用户只能见到对象封装界面上的信息,对象 内部对用户是隐蔽的。
封装的目的在于将对象的使用者和对象的设 计者分开,使用者不必知道行为实现的细节, 只需使用设计者提供的消息访问对象
OMG于1997年采纳为国际标准。
对象、属性和实例
表示一个对象实例, 对象实例的名称为: 412209 ; 分 类 为 : Customer。
表示一个对象实例的 属性。对象实例的名 称是唯一表示该对象 的属性值。
对象类
表示一个对象类,主 要包含三部分:对象 类的名称、属性名称、 方法名称。
继承
概化/特化 – 是一种技术,其中几类对象类的公共属性和 行为被组合成类,称为超类,超类的属性和方法可被子 类(即上述对象类)继承。 超类 – 是包含一个或多个对象子类的公共属性和行为的 实体,也称为抽象类或父类。 子类 –是一个对象类,它从一个超类继承属性和行为,并 可能包含自身所特有的属性和行为。如果它位于继承层 次的最底层,也称为实类.
方法
数据
6.2面向对象的基本概念
消息 - 消息传送与函数调用的区别
函数调用可以带或不带参数,但是消息至少带 一个参数,它表明接收该消息的对象,消息中 告诉对象做什么的部分称为消息操作; 消息操作名类似于函数名,其本质区别在于: 函数名代表一段可执行的代码,但消息操作名 具体功能的选定还取决于接收消息的对象本身 函数调用是过程式的(如何做),消息传送是 说明式的(做什么),具体如何做,由对象根 据收到的消息自行确定。
统一建模语言(UML)
UML 2.0
统一建模语言 (UML) 是 一 套 建 模规则,它使用 对象说明或描述 软件系统
公
UML 并未规定一
众 反
种系统开发方法, 馈
它只是一种广泛
接受的对象建模
标准的符号体系。
2001.2 1999.6 1997.11 1997.9发布 1997.1发布 1996.6和1996.10 OOPSAL95
建造需求模型
定义参与者和他们的责任; 为每个参与者标识用例; 准备系统对象和关系的初步视图; 应用用例作为场景去复审模 型以确定有效性
用例(use case)驱动,它 建立的所有模型都是以用例模 型为基础的。 用例——用以描述用户和系统 间如何交互的场景
Rambaugh方法(OMT方法)
创建三个模型:对象模型(对 象类、层次和关系的表示)、 动态模型(对象和系统行为的 表示)和功能模型(高层的类 似DFD的系统信息流的表示)
Rambaugh方法(OMT方法)
主要分为分析、设计和实现三个阶段。 分析阶段:确定对象模型、动态模型和功能模型 设计阶段:系统设计和对象设计 实现阶段的细节和具体的实现环境有关 OMT方法突出的特点是在分析阶段,它可以较为 全面地描述系统的静态结构,所以0MT方法适合 于数据密集型的信息系统的开发。
6.1 面向对象建模方法概述
面向对象方法学 采用面向对象的概念及其抽象机制建立应用系 统模型,将系统开发视为对象模型的转换和不 断细化过程
对象建模 是一种用于辨识系统环境中的对象和这些对象 关系的技术
面向对象的方法学
分析与设计的鸿沟
问题域
需求分析 (系统分析)
总体设计 (系统设计) 详细设计
交
重数
重数:定义 一个对象/类 对应相关对 象类的一个 实例关联可 能的最小出 现次数和最 大出现次数.
聚合关系
聚合关系:是一个较大的“整体”类饱含一个或多个较小的 “部分”类之间的关系。
本章内容
6.1 面向对象建模方法概述 6.2 面向对象建模的基本概念 6.3 统一建模语言UML 6.4 使用用例建模系统需求 6.5 对象分析建模过程
6.3 统一建模语言UML
Unified Modeling Language (UML) 是一套建模规则,它使用对象说明或描 述软件系统。
UML 并未规定一种系统开发方法,它 只是一种广泛接受的对象建模标准的符 号体系。
使用UML进行面向 对象分析和建模
OBJECT-ORIENTED ANALYSIS AND MODELING USING THE UML
第6章 Chapter 6
本章内容
6.1 面向对象建模方法概述 6.2 面向对象建模的基本概念 6.3 统一建模语言UML 6.4 使用用例建模系统需求 6.5 对象分析建模过程
买 卖 移动
6.2面向对象的基本概念
对象(Object) 对象是用来描述客观存在的事物,它是构成系统的 基本单位,是对客观世界中事物的抽象描述。
对象 = 行为(功能、方法、服务) + 属性(数据)
对象 对象 对象
接口
对象 属性 行为
6.2 面向对象的基本概念
对象是由私有数据(属性)及作用于其上的一组操作 (行为)所构成的一个封闭整体 由于对象的数据是私有的,所以要想访问其数据的 正确方法是向该对象发送消息,让对象自身选择其 内部相应的操作以完成对该项数据的访问 对象的动作取决于外界给对象的刺激,这就是消息, 消息告诉对象所要求它完成的功能。对象具有一定 的智能功能,即“知道”如何选择相应的操作来处 理对象所接收的消息
处理方法 (函数)
处理方法 (函数)
处理方法 (函数)
面向对象的程序设计
对象 数据项 数据项
处理方法
数据项 数据项
处理方法
6.2面向对象的基本概念
消息(Message) 对象之间的联系是通过传递消息来实现的。 是对象之间进行通讯的一种数据结构。 消息统一了“数据流”和“控制流”。
消息到达
面向对象的世界观
把客观世界从概念上看成是一个由相互配合而 协作的对象所组成的系统
面向对象=对象+分类+继承+通信 一个实例——椅子
一个面向对象的实例——椅子
类:家具
价格 尺寸 重量 位置 颜色
买 卖 移动
对象:桌子
价格 尺寸 重量 位置 颜色
买 卖 移动
对象:椅子
价格 尺寸 重量 位置 颜色
UML 1.4
UML 1.3
UML 1.1为OMG组织 接纳为标准
UML 1.1
UML 1.0 UML 0.9&0.91 Unified Method 0.8
合作伙伴 意见
Booch 93
OMT-2
其他方法
Booch 91
OMT-1
OOSE
普及
统
一
工业化
建
模
语 标准化
言
的
发 统一化
展
过
分散的 部分
程
6.2面向对象的基本概念
实例(Instance)
属于某类的具体对象就是该类的实例。一个类 的不同实例必定具有: 相同的操作(或行为)的集合 相同的信息结构或属性定义,但可以有不同
的属性值 不同的对象标识
6.2面向对象的基本概念
实例(Instance)
数据 项
数据 项
类(描述)
数据 项
从设计人员的角度看,对象是一个完成特定功能的程 序块
从用户的角度看,对象为他们提供了所希望的行为
6.2 面向对象的基本概念
对象(Object) 对象标识 对象生命周期 对象的分类 • 一般对象 • 主动对象 • 永久对象
6.2面向对象的基本概念
将事物进行归纳划分成不同的一些类是人们认识客观 世界的基本思维方法。这种方法依据的原则是抽象,它忽 略了客观事物非本质特性,将客观事物所具有的共同点, 即本质特性划分为一类,形成对事物的本质认识,得出事 物的抽象结果。
4.规范化类和对象 的关系
3.确定类和对象的 关系
2.确定类和对象的 语义
1.建立核心需要 (概念化)
5.管理提交以后的模型 (维护)
3.创建体系结构 (设计)
4.细化、完善实现模型 (进化)
微观过程
宏观过程
Jocobson方法(OOSE方法)
用户标识
标识系统的用户和他们 的整体责任
建造系统模型
使用参与者交互的信息来 标识界面对象; 创建界面对象的结构视图; 表示对象行为; 分离出每个对象的子系统和模型; 使用用例作为场景去复审模 型以确定合法性
处理方法
数据 项
处理方法
实例化
实例化
实例
数据 项
数据 项
数据 项
数据ቤተ መጻሕፍቲ ባይዱ项
实例
数据 项
数据 项
数据 项
数据 项
6.2面向对象的基本概念
继承(Inheritance)
是自动共享类、子类和对象中的方法和数据的机制。 是实现从可重用成分构造系统的最有效的特性
图
封闭图
开放图
多边形
椭圆
线
矩形
梯形
五边形
圆
实现 测试 计算机
传统方法
分析与设计 的鸿沟
问题域 面向对象的分析(OOA) 面向对象的设计(OOD) 面向对象的实现(OOP) 面向对象的测试(OOT)
计算机
面向对象方法
面向对象的方法学
问题求解 面向对象设计方法:实现问题空间和问题求 解空间的近似和直接模拟。
意识部分 教室
物质部分 303教室
抽象 信息隐藏 (局部化) 模块化(高内聚,低耦合) 一致性 完全性 可验证性
面向对象建模方法概述
面向对象分析(Object-Oriented Analysis, OOA)技术用于 – 1. 研究现有对象,看它们是否能够被复用或者 被调整用于新的用途; 2. 定义各种新对象和修改后的对象,它们将于 现有对象一起组合成一个有用的企业计算应 用系统
6.2 面向对象的基本概念
一个对象
..……
方法
协 公有 消息
议 私有 消息
存储结构
Pos Color ……
6.2面向对象的基本概念
多态(Polymorphism)
即一个名字具有多种语义。 同一对象接收到不同消息采用不同的行为方式 不同对象收到相同消息时产生不同的动作 重载(overload) 动态绑定 类属