ch06-面向对象与UML
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第6章 面向对象与UML 信息系统分析与设计
二、面向对象的基本概念 7.多态性 多态性(polymorphism)指相同的操作(或 函数,过程)可作用于多种类型的对象并获得不 同的结果。在面向对象方法中,可给不同类型的 对象发送相同的消息,而不同的对象分别做出不 同的处理。例如给整数对象和复数对象定义不同 的数据结构和加法运算,但可以给它们发送相同 的消息“做加法运算”,整数对象接收此消息后 做整数加法运算,复数对象则做复数加法运算, 产生不同的结果。多态性增强了软件的灵活性、 重用性、可理解性。
第6章 面向对象与UML
信息系统分析与设计
二、面向对象的基本概念 1.对象 在面向对象方法中,对象是一组数据(属性)和 施加于这些数据上的一组操作代码(操作)构成 的独立类体。 换言之,对象是一个有着各种特殊属性(数据) 和行为方式(方法)的逻辑实体。 对象是一个封闭体,它向外界提供一组接口界面, 外界通过这些接口与对象进行交互,这样对象就 具有较强的独立性、自治性和模块性,从而为软 件的重用奠定了坚实的基础。
第6章 面向对象与UML 信息系统分析与设计
一、用例图(Use Case Diagram)
Use Case
Actor
用例图是显示一组用例、参与者,以及它们之间关系的图 用例图以一种可视化的方式描述系统的功能需求 用例图从用户角度描述系统功能 用例图是其他模型的基础 用例图只能静态地描述系统功能,为了描述系统的行为, 可以使用活动图、顺序图等。 用例图多用于静态建模阶段(主要是业务建模和需求建模)。
结构化分析方法:面向功能
程序=(算法)+(数据结构)
软件结构严重依赖于功能,而功能是软件开发中最不稳定的因素。 数据和操作相分离 面向对象将系统变化限制在对象范围内,并加以控制,变化对系统的影 响范围小。
对象=(算法+数据结构) 程序= 对象 + 关系
第6章 面向对象与UML
“A Fool with a Tool is Still a Fool!” UML只是我们表达建模思想的工具,其背后的思想才是最重要的。
第6章 面向对象与UML 信息系统分析与设计
二、UML体系结构
视图(view):表示系统建模的多个方面,多个视图应 该保持一致性; 用例视图(use case view):用于描述系统应该具 备的功能集合,它是从系统的外部用户角度出发对 系统的抽象。(描述系统做什么) 主要使用用例图;偶尔使用活动图。 逻辑视图(logical views):描述系统的静态结构 和动态行为(描述系统怎么做的) 类图、对象图(静态建模机制),状态图、序 列图、协作图、活动图(动态建模机制) 进程视图(Process view) :进程视图体现了系 统的动态或行为特征,进程视图描述将系统分解为 进程和任务,以及这些并发元素之间的通信与同步。 由动态建模机制中的图组成 实现视图(Implementation view):实现视图体 现了系统实现的结构和行为特征,描述用于组建系 统的物理组件。 由构件图构成 部署视图(deployment view):显示系统的物理结 构 由部署图构成
三、为什么要面向对象?
3.对象封装和继承可以很好地支持软件复用。 对象封装允许应用开发者将对象模块视作黑匣子,通过界 面去理解和操作对象,而不去关心实现细节;(接口复用) 对象继承容许对象实现复用具有相同特性的其它对象的代 码,而不要去重复开发。(代码复用) 基于对象的统一的语义模型,对象技术可提供统一的机制 (如对象总线)将对象模块组装在一起,极大地复用已有的 对象,满足各种应用需求。除了各种可复用的公共对象模 块外,信息化社会的进步还要求人们开发满足各种应用需 求的领域对象。(对象复用)
类图(Class diagram) 对象图(Object diagram) 组件图(Compomnent diagram) 部署图(Deployment diagram) 动态图(行为图) 顺序图(Sequence diagram) 协作图(Collaboration diagram) 状态图(Statechart diagram) 活动图(Activity diagram) 还有一个用于分组的包图(Package diagram)
信息系统分析与设计
三、为什么要面向对象?
2.面向对象更符合模块化要求
模块的特征 模块的基本特征是抽象和实现信息隐藏。模块分模块界 面和模块体两部分。模块对外的联系和相互作用只能通 过模块接口进行。模块体是模块的具体实现细节,对外 是不可见的。 抽象和信息隐藏正是面向对象的主要特征。 模块化原则 可分解性:降低系统的复杂程度;模块应该具备一定的 层次结构。 可组合性:组合的模块中有些是可以复用的;模块必须 具备较高的通用性和适用性,具备规范的接口,易于组 装。 可理解性:模块必须具有完整的语义特征,易于理解。 第6章 面向对象与UML 信息系统分析与设计 面向对象正好满足模块化的要求。
第6章 面向对象与UML
信息系统分析与设计
二、面向对象的基本概念 4.类 在面向对象的软件技术中,类可以定义为由数据 结构及相关操作所形成的集合,或所有相似对象 的状态变量和行为构成的模板。 类是对一组对象的抽象归纳与概括,更确切地说, 类是对一组具有相同数据成员和相同操作成员的 对象的定义或说明。而每个对象都是某个类的一 个具体实例。
第6章 面向对象与UML
第一节 面向对象方法
面向对象方法
所谓面向对象技术,顾名思义,就是以对象观点来分析现 实世界中的问题。从普通人认识世界的观点出发,把事物 归类、综合,提取共性并加以描述。 在面向对象的系统中,世界被看成是独立对象的集合,对 象之间通过过程(在面向对象术语中称之为“消息”)相 互通信。 面向对象方法是一种运用对象、类、继承、封装、聚合、 消息传送和多态性等概念来构造系统的软件开发方法。 面向对象是近20年来国内外IT行业最为关注的技术之一, 面向对象技术是一种按照人们对现实世界习惯的认识论和 思维方式来研究和模拟客观世界的方法学。
第6章 面向对象与UML
信息系统分析与设计
二、面向对象的基本概念
5.继承 继承是对象类间的一种相关关系,指对象继承它所在类的 结构、操作和约束,也指一个类继承另外一个类的结构、 操作和约束。继承体现了一种共享机制。 继承机制既是一个对象类获得另一对象类特征的过程,也 是一个以分层分级结构组织、构造和重用类的工具。它是 解决客观对象“相似但又不同”的妙法。 继承机制具有能清晰体现相似类间的层次结构关系;能减 小代码和数据的重复冗余度,大大增强程序的重用性;能 通过增强一致性来减少模块间的接口和界面,大大增强程 序的易维护性等特点。
第6章 面向对象与UML 信息系统分析与设计
三、为什么要面向对象?
1. 面向对象技术采用主体-动作模式来刻画世界,符合人类认识世界的 规律。 现实世界就是由普遍联系的对象构成的。
系统的易变性和稳定性
功能数据流实体对象(过程抽象数据抽象) 需求容易变; 外部界面容易变; 数据属性容易变; 问题空间的对象是稳定的。
第6章 面向对象与UML
信息系统分析与设计
二、面向对象的基本概念
6.封装 封装(encapsulation)即信息隐藏。它保证软件部件 具有较好的模块性,可以说封装是所有主流信息系统方法 学中的共同特征,它对于提高软件清晰度和可维护性,以 及软件的分工有重要的意义。我们从两个方面来理解封装 的含义。 (1)当设计一个程序的总体结构时,程序的每个成分应 该封装或隐藏为一个独立的模块,定义每一模块时应主要 考虑其实现的功能,而尽可能少地显露其内部处理逻辑。 (2)封装表现在对象概念上。对象是一个很好的封装体, 它把数据和服务封装于一个内在的整体。对象向外提供某 种界面(接口),可能包括一组数据(属性)和一组操作 (服务),而把内部的实现细节(如函数体)隐藏起来, 外部需要该对象时,只需要了解它的界面就可以,即只能 通过特定方式才能使用对象的属性或对象。这样既提供了 服务,又保护自己不轻易受外界的影响。
UML是一种文档化语言
总之,UML 是一种基于面向对象的、可视化的、可用于开 发全过程的标准建模语言。 具有面向对象、表示能力强、独立于开发过程和程序语言 等特点。
第6章 面向对象与UML 信息系统分析与设计
一、UML概述
3.UML主要内容 UML体系比较复杂,但主要有三个方面的内容: (1)UML基本图素。它是构成UML模型图的基本元素。 (2)UML模型图及建模规则。UML基本图素按特定的规则有 机地组合而成模型图,从而构成一个有机的、完整的 UML 模型图。 (3)UML的扩展机制。 UML具有很广的应用领域,其中最常用的是为软件系统建模, UML还可用来描述其他非软件系统,如一个机构的组成或 机构中的工作流程等。
第6章 面向对象与UML 信息系统分析与设计
二、面向对象的基本概念 3.方法 “方法”对应于对象的能力,它是实现对象所具 有的功能操作代码段,是响应消息的“方法”。 方法是类中定义的成员函数,它是该类对象所能 执行的操作的算法实现。 方法与消息是一一对应的,每当对象收到一个消 息,方法正是与对象相连决定怎么做的操作执行 代码。所以方法是实现每条消息具体功能的手段。
第6章 面向对象与UML
信息系统分析与设计
三、为什么要面向对ห้องสมุดไป่ตู้?
4.面向对象方法使开发的系统更易维护 软件开发过程不同阶段应该采纳相同的系统模型,使得不 同阶段之间的信息不会因为转移而发生变形;如果发生变 形,软件的追踪性就无法得到保证,软件的验证非常困难。 面向对象的系统开发各阶段都是使用统一的建模方法。 企业信息系统必须适应环境的经常性变化,应该根据企业 内部的真实对象对系统进行建模,这样当系统的功能发生 变化时,只需要对真实对象的功能进行改变,而其接口可 以不发生变化。
第6章 面向对象与UML
逻辑视图 (Logic view)
实现视图 (Implementation view) 用例视图 (Use case view)
进程视图 (Process view)
部署视图 (Deployment view)
信息系统分析与设计
第三节 UML图
UML图
UML提供了九种不同的图(Diagrams),分为静态图和动态图两大 类。 静态图(结构图) 用例图(Use case diagram)
第6章 面向对象与UML
信息系统分析与设计
第二节 UML简介
一、UML概述
1.UML背景 UML 是这些最好的建模方法中最好部分的集成
第6章 面向对象与UML
信息系统分析与设计
一、UML概述
2.UML简介 UML是一种建模语言
UML是一种可视化的语言
UML是一种可用于详细描述的语言 UML是一种构造语言
第6章 面向对象与UML 信息系统分析与设计
二、面向对象的基本概念 2.消息 对象通过对外提供服务发挥自身作用,对象之间 的相互服务是通过消息来连接实现的。消息是为 了实现某一功能而要求某个对象执行其中某个功 能操作的规格说明。它一般含有下述信息:提供 服务的对象标识、服务标识、输入信息和响应信 息。对象接收消息,根据消息及消息参数调用自 己的服务,处理并予以响应,从而实现系统功能。 消息是对象之间相互作用和相互协作的一种机制, 更通俗地讲,OOP中的术语“消息”只不过是现 实世界中的“请求”、“命令”等日常生活用语 的同义词。
第6章 面向对象与UML
信息系统分析与设计
1. OO方法的产生和发展 面向对象的思想首先出现在程序设计的语言中, 即面向对象的程序设计方法(ObjectOriented Programming, OOP) 真正的面向对象设计(OOP)还是来源于Alan Keyz主持设计的Smalltalk语言 20世纪80年代中期,也就是C++ 语言十分热 门的时候,面向对象分析(OOA)的研究开始发 展,进而延伸到面向对象设计(OOD)
二、面向对象的基本概念 7.多态性 多态性(polymorphism)指相同的操作(或 函数,过程)可作用于多种类型的对象并获得不 同的结果。在面向对象方法中,可给不同类型的 对象发送相同的消息,而不同的对象分别做出不 同的处理。例如给整数对象和复数对象定义不同 的数据结构和加法运算,但可以给它们发送相同 的消息“做加法运算”,整数对象接收此消息后 做整数加法运算,复数对象则做复数加法运算, 产生不同的结果。多态性增强了软件的灵活性、 重用性、可理解性。
第6章 面向对象与UML
信息系统分析与设计
二、面向对象的基本概念 1.对象 在面向对象方法中,对象是一组数据(属性)和 施加于这些数据上的一组操作代码(操作)构成 的独立类体。 换言之,对象是一个有着各种特殊属性(数据) 和行为方式(方法)的逻辑实体。 对象是一个封闭体,它向外界提供一组接口界面, 外界通过这些接口与对象进行交互,这样对象就 具有较强的独立性、自治性和模块性,从而为软 件的重用奠定了坚实的基础。
第6章 面向对象与UML 信息系统分析与设计
一、用例图(Use Case Diagram)
Use Case
Actor
用例图是显示一组用例、参与者,以及它们之间关系的图 用例图以一种可视化的方式描述系统的功能需求 用例图从用户角度描述系统功能 用例图是其他模型的基础 用例图只能静态地描述系统功能,为了描述系统的行为, 可以使用活动图、顺序图等。 用例图多用于静态建模阶段(主要是业务建模和需求建模)。
结构化分析方法:面向功能
程序=(算法)+(数据结构)
软件结构严重依赖于功能,而功能是软件开发中最不稳定的因素。 数据和操作相分离 面向对象将系统变化限制在对象范围内,并加以控制,变化对系统的影 响范围小。
对象=(算法+数据结构) 程序= 对象 + 关系
第6章 面向对象与UML
“A Fool with a Tool is Still a Fool!” UML只是我们表达建模思想的工具,其背后的思想才是最重要的。
第6章 面向对象与UML 信息系统分析与设计
二、UML体系结构
视图(view):表示系统建模的多个方面,多个视图应 该保持一致性; 用例视图(use case view):用于描述系统应该具 备的功能集合,它是从系统的外部用户角度出发对 系统的抽象。(描述系统做什么) 主要使用用例图;偶尔使用活动图。 逻辑视图(logical views):描述系统的静态结构 和动态行为(描述系统怎么做的) 类图、对象图(静态建模机制),状态图、序 列图、协作图、活动图(动态建模机制) 进程视图(Process view) :进程视图体现了系 统的动态或行为特征,进程视图描述将系统分解为 进程和任务,以及这些并发元素之间的通信与同步。 由动态建模机制中的图组成 实现视图(Implementation view):实现视图体 现了系统实现的结构和行为特征,描述用于组建系 统的物理组件。 由构件图构成 部署视图(deployment view):显示系统的物理结 构 由部署图构成
三、为什么要面向对象?
3.对象封装和继承可以很好地支持软件复用。 对象封装允许应用开发者将对象模块视作黑匣子,通过界 面去理解和操作对象,而不去关心实现细节;(接口复用) 对象继承容许对象实现复用具有相同特性的其它对象的代 码,而不要去重复开发。(代码复用) 基于对象的统一的语义模型,对象技术可提供统一的机制 (如对象总线)将对象模块组装在一起,极大地复用已有的 对象,满足各种应用需求。除了各种可复用的公共对象模 块外,信息化社会的进步还要求人们开发满足各种应用需 求的领域对象。(对象复用)
类图(Class diagram) 对象图(Object diagram) 组件图(Compomnent diagram) 部署图(Deployment diagram) 动态图(行为图) 顺序图(Sequence diagram) 协作图(Collaboration diagram) 状态图(Statechart diagram) 活动图(Activity diagram) 还有一个用于分组的包图(Package diagram)
信息系统分析与设计
三、为什么要面向对象?
2.面向对象更符合模块化要求
模块的特征 模块的基本特征是抽象和实现信息隐藏。模块分模块界 面和模块体两部分。模块对外的联系和相互作用只能通 过模块接口进行。模块体是模块的具体实现细节,对外 是不可见的。 抽象和信息隐藏正是面向对象的主要特征。 模块化原则 可分解性:降低系统的复杂程度;模块应该具备一定的 层次结构。 可组合性:组合的模块中有些是可以复用的;模块必须 具备较高的通用性和适用性,具备规范的接口,易于组 装。 可理解性:模块必须具有完整的语义特征,易于理解。 第6章 面向对象与UML 信息系统分析与设计 面向对象正好满足模块化的要求。
第6章 面向对象与UML
信息系统分析与设计
二、面向对象的基本概念 4.类 在面向对象的软件技术中,类可以定义为由数据 结构及相关操作所形成的集合,或所有相似对象 的状态变量和行为构成的模板。 类是对一组对象的抽象归纳与概括,更确切地说, 类是对一组具有相同数据成员和相同操作成员的 对象的定义或说明。而每个对象都是某个类的一 个具体实例。
第6章 面向对象与UML
第一节 面向对象方法
面向对象方法
所谓面向对象技术,顾名思义,就是以对象观点来分析现 实世界中的问题。从普通人认识世界的观点出发,把事物 归类、综合,提取共性并加以描述。 在面向对象的系统中,世界被看成是独立对象的集合,对 象之间通过过程(在面向对象术语中称之为“消息”)相 互通信。 面向对象方法是一种运用对象、类、继承、封装、聚合、 消息传送和多态性等概念来构造系统的软件开发方法。 面向对象是近20年来国内外IT行业最为关注的技术之一, 面向对象技术是一种按照人们对现实世界习惯的认识论和 思维方式来研究和模拟客观世界的方法学。
第6章 面向对象与UML
信息系统分析与设计
二、面向对象的基本概念
5.继承 继承是对象类间的一种相关关系,指对象继承它所在类的 结构、操作和约束,也指一个类继承另外一个类的结构、 操作和约束。继承体现了一种共享机制。 继承机制既是一个对象类获得另一对象类特征的过程,也 是一个以分层分级结构组织、构造和重用类的工具。它是 解决客观对象“相似但又不同”的妙法。 继承机制具有能清晰体现相似类间的层次结构关系;能减 小代码和数据的重复冗余度,大大增强程序的重用性;能 通过增强一致性来减少模块间的接口和界面,大大增强程 序的易维护性等特点。
第6章 面向对象与UML 信息系统分析与设计
三、为什么要面向对象?
1. 面向对象技术采用主体-动作模式来刻画世界,符合人类认识世界的 规律。 现实世界就是由普遍联系的对象构成的。
系统的易变性和稳定性
功能数据流实体对象(过程抽象数据抽象) 需求容易变; 外部界面容易变; 数据属性容易变; 问题空间的对象是稳定的。
第6章 面向对象与UML
信息系统分析与设计
二、面向对象的基本概念
6.封装 封装(encapsulation)即信息隐藏。它保证软件部件 具有较好的模块性,可以说封装是所有主流信息系统方法 学中的共同特征,它对于提高软件清晰度和可维护性,以 及软件的分工有重要的意义。我们从两个方面来理解封装 的含义。 (1)当设计一个程序的总体结构时,程序的每个成分应 该封装或隐藏为一个独立的模块,定义每一模块时应主要 考虑其实现的功能,而尽可能少地显露其内部处理逻辑。 (2)封装表现在对象概念上。对象是一个很好的封装体, 它把数据和服务封装于一个内在的整体。对象向外提供某 种界面(接口),可能包括一组数据(属性)和一组操作 (服务),而把内部的实现细节(如函数体)隐藏起来, 外部需要该对象时,只需要了解它的界面就可以,即只能 通过特定方式才能使用对象的属性或对象。这样既提供了 服务,又保护自己不轻易受外界的影响。
UML是一种文档化语言
总之,UML 是一种基于面向对象的、可视化的、可用于开 发全过程的标准建模语言。 具有面向对象、表示能力强、独立于开发过程和程序语言 等特点。
第6章 面向对象与UML 信息系统分析与设计
一、UML概述
3.UML主要内容 UML体系比较复杂,但主要有三个方面的内容: (1)UML基本图素。它是构成UML模型图的基本元素。 (2)UML模型图及建模规则。UML基本图素按特定的规则有 机地组合而成模型图,从而构成一个有机的、完整的 UML 模型图。 (3)UML的扩展机制。 UML具有很广的应用领域,其中最常用的是为软件系统建模, UML还可用来描述其他非软件系统,如一个机构的组成或 机构中的工作流程等。
第6章 面向对象与UML 信息系统分析与设计
二、面向对象的基本概念 3.方法 “方法”对应于对象的能力,它是实现对象所具 有的功能操作代码段,是响应消息的“方法”。 方法是类中定义的成员函数,它是该类对象所能 执行的操作的算法实现。 方法与消息是一一对应的,每当对象收到一个消 息,方法正是与对象相连决定怎么做的操作执行 代码。所以方法是实现每条消息具体功能的手段。
第6章 面向对象与UML
信息系统分析与设计
三、为什么要面向对ห้องสมุดไป่ตู้?
4.面向对象方法使开发的系统更易维护 软件开发过程不同阶段应该采纳相同的系统模型,使得不 同阶段之间的信息不会因为转移而发生变形;如果发生变 形,软件的追踪性就无法得到保证,软件的验证非常困难。 面向对象的系统开发各阶段都是使用统一的建模方法。 企业信息系统必须适应环境的经常性变化,应该根据企业 内部的真实对象对系统进行建模,这样当系统的功能发生 变化时,只需要对真实对象的功能进行改变,而其接口可 以不发生变化。
第6章 面向对象与UML
逻辑视图 (Logic view)
实现视图 (Implementation view) 用例视图 (Use case view)
进程视图 (Process view)
部署视图 (Deployment view)
信息系统分析与设计
第三节 UML图
UML图
UML提供了九种不同的图(Diagrams),分为静态图和动态图两大 类。 静态图(结构图) 用例图(Use case diagram)
第6章 面向对象与UML
信息系统分析与设计
第二节 UML简介
一、UML概述
1.UML背景 UML 是这些最好的建模方法中最好部分的集成
第6章 面向对象与UML
信息系统分析与设计
一、UML概述
2.UML简介 UML是一种建模语言
UML是一种可视化的语言
UML是一种可用于详细描述的语言 UML是一种构造语言
第6章 面向对象与UML 信息系统分析与设计
二、面向对象的基本概念 2.消息 对象通过对外提供服务发挥自身作用,对象之间 的相互服务是通过消息来连接实现的。消息是为 了实现某一功能而要求某个对象执行其中某个功 能操作的规格说明。它一般含有下述信息:提供 服务的对象标识、服务标识、输入信息和响应信 息。对象接收消息,根据消息及消息参数调用自 己的服务,处理并予以响应,从而实现系统功能。 消息是对象之间相互作用和相互协作的一种机制, 更通俗地讲,OOP中的术语“消息”只不过是现 实世界中的“请求”、“命令”等日常生活用语 的同义词。
第6章 面向对象与UML
信息系统分析与设计
1. OO方法的产生和发展 面向对象的思想首先出现在程序设计的语言中, 即面向对象的程序设计方法(ObjectOriented Programming, OOP) 真正的面向对象设计(OOP)还是来源于Alan Keyz主持设计的Smalltalk语言 20世纪80年代中期,也就是C++ 语言十分热 门的时候,面向对象分析(OOA)的研究开始发 展,进而延伸到面向对象设计(OOD)