面向对象方法与UML.pps

上传人:za****8 文档编号:11810475 上传时间:2020-05-03 格式:PPS 页数:46 大小:1.60MB
返回 下载 相关 举报
面向对象方法与UML.pps_第1页
第1页 / 共46页
面向对象方法与UML.pps_第2页
第2页 / 共46页
面向对象方法与UML.pps_第3页
第3页 / 共46页
点击查看更多>>
资源描述
第12章面向对象方法与UML,12.1面向对象方法概述12.2OO方法的基本概念和术语12.3UML中的静态模型12.4UML中的动态模型12.5UML中的功能模型与实现模型12.6面向对象方法的生命周期,12.1.1面向对象方法引入,1.结构化开发方法的不足,12.1面向对象方法概述,2.面向对象方法的主要着眼点1)对象:用对象作为对这些事物的抽象表示并作为系统的基本构成单位。2)对象的封装:对象的属性和服务结合为一个独立的整体,对外屏蔽之,称作封装。3)对象分类:把属性类型和服务相同的对象归为一类。4)泛化与继承:运用泛化原则可以得到较一般的类父类和较特殊的类子类。5)组合:复杂的对象可以用简单的对象作为其构成部分,称为组合。6)对象之间的联系:对象之间的关系表达其静态联系,对象之间传递消息请求服务以实现其动态联系。,12.1面向对象方法概述,12.1.2面向对象的主要经典方法1.OMT方法2.Booch方法3.Coad/Yourdon4.Jacobson方法,12.1面向对象方法概述,12.1.3RUP(rationalunifiedprocess)思路与过程RUP开发生命周期是一个二维的软件开发模型纵轴是内容组织,为自然的逻辑活动,体现开发过程的静态结构,描述它的术语主要包括活动(activity)、产物(artifact)、工作者(worker)和工作流(workflow)。横轴为时间组织,是过程展开的生命周期特征,体现开发过程的动态结构,使用的术语主要包括周期(cycle)、阶段(phase)、迭代(iteration)和里程碑(milestone)。在时间上划分为四个阶段:初始(inception)、细化(elaboration)、构造(construction)和交付(transition)。每个阶段结束于一个主要的里程碑(majormilestones);本质上是两个里程碑之间的时间跨度。每个阶段的结尾执行一次评估以确定其目标是否已经满足。评估结果令人满意,才可以进入下一个阶段。,12.1面向对象方法概述,12.1.3RUP(rationalunifiedprocess)思路与过程,12.1面向对象方法概述,1.初始阶段:目标是为系统建立业务案例并确定项目的边界。为此必须识别所有与系统交互的外部实体,在较高层次上定义交互的特性。本阶段所关注的是整个项目进行中的业务和需求方面的主要风险。对于建立在原有系统基础上的开发项目,初始阶段可能很短。初始阶段结束的里程碑是生命周期目标(lifecycleobjective)里程碑,它评价项目基本的生存能力。,12.1面向对象方法概述,2.细化阶段:目标是分析问题领域,建立健全的体系结构基础,编制项目计划,淘汰项目中最高风险的元素。必须在理解整个系统的基础上,设计体系结构,包括其范围、主要功能和诸如性能等非功能需求等。同时为项目建立支持环境,包括创建开发案例,创建模板、准则并准备工具。细化阶段结束的里程碑是生命周期体系结构(lifecyclearchitecture)里程碑,它为系统的结构建立管理基准并使项目小组能够在构建阶段中进行衡量,检验详细的系统目标和范围、结构的选择以及主要风险的解决方案。,12.1面向对象方法概述,3.构建阶段:所有剩余的构件和应用程序功能被开发并集成为产品,所有的功能被详细测试。是一个制造过程,其重点放在管理资源及控制运作以优化成本、进度和质量。结束时的里程碑是初始运作(initialoperational)里程碑,决定了产品是否可以在测试环境中进行部署。要确定软件、环境、用户可否开始系统的运作。其产品版本常被称为“beta”版。,12.1面向对象方法概述,4.交付阶段:其重点是确保软件对最终用户是可用的。交付阶段可以继续几次迭代,包括为发布做准备的产品测试,基于用户反馈的少量的调整等。此时,用户反馈主要集中在产品调整,设置、安装和可用性问题,所有主要的结构问题应该已经在项目生命周期的早期阶段解决了。其里程碑是产品发布(productrelease)里程碑。此时,要确定目标是否实现,是否应该开始另一个开发周期。在一些情况下这个里程碑可能与下一个周期的初始阶段的结束重合。,12.1面向对象方法概述,12.1.4面向对象方法的特点1)与人类习惯的思维方法一致2)稳定性好3)对需求变化的适应性4)可重用性好5)可维护性好,12.2OO方法的基本概念和术语,12.2.1对象1.定义:对象是对关于某事物的属性(一组信息)与行为(属性上的操作)的抽象。2.形象表示3.基本特点1)抽象性2)封装性3)主动性4)并行工作性5)独立性,12.1面向对象方法概述,12.2.2对象类及其他相关概念1.对象类:具有相同类型属性和服务的对象的集合,它是为有共性的对象建立的模板。2.派生继承与类层次:归纳子类得到父类的过程称为泛化,有父类分化出子类的过程称为派生。父类可以继承其他的类,子类也可派生出其子类,从而形成类的继承层次关系,也称类层次。3.例化与实例:实例是由某个特定的类所描述的一个具体的对象,例化是通过属性赋值与操作具体化而用对象类定义其实例对象的过程。,12.1面向对象方法概述,12.2.2对象类及其他相关概念4.属性和数据结构1)单值属性:在任何时应该只有一个值或者状态。比如一个学生对象实例的“体重属性”虽然会随着时间而变化,但在任意时刻只会有一个体重值。可以分为复合项、导出项、基本项等3种。2)互斥值属性:判定某个属性为互斥属性,要看其值出现是否依赖于其他属性值出现。3)多值属性:多值属性表示在任何时刻可以具有多个值。比如学生对象实例的“所上大学属性”,某学生可能不只上过一所大学,学生必须列出正在上和曾经上过的所有大学、社区大学、职业培训学校。,12.1面向对象方法概述,12.2.2对象类及其他相关概念5.概括与封装用对象来描述事物时,只把事物的被业务关注的那些特性和行为作为对象的属性和服务,并把它们有序地组织到对象中,这就是概括。封装就是把对象的属性和服务结合成一个独立的模块,并尽可能隐蔽其内部细节,就形成一个不可分割的独立单位。外部不能直接地访问对象的属性,也不能直接看到或修改对象的服务的结构,只能通过消息用几个允许外部使用的服务与对象发生联系。封装有效地避免了外部错误对它的“交叉感染”,使错误能够局部化,因而大大减少了查错和排错的难度,而且大大减少了内部的修改对外部的影响,即减小了修改引起的“波动效应”。,12.1面向对象方法概述,6.消息、事件与状态1)消息:在OO方法中把向对象发出的服务请求称作消息。2)事件:事件是在一时间点上发生的一件事情,它有能引起对象状态转换的信息。3)状态:对象的状态即其某时段所有属性的当前值。7.多态与重载多态性是指在一般类中定义的属性或服务被特殊类继承之后,可以具有不同的数据类型或表现出不同的行为。1)包含多态:相同的算子可以表示不同类型的运算2)重载多态:相同的函数名可具有不同的参数,称为重载多态3)强制多态:通过语义操作把一个变量的类型加以变化,以符合一个函数或操作的要求4)参数多态:由类属实例化的各类就都具有相同的操作,而所涉及的类型不一样,12.1面向对象方法概述,12.2.3UML简介是一种用来对系统开发的产出进行可视化、规范定义、构造和文档化的面向对象的建模语言。UML用模型来描述系统的结构或静态特征,以及行为或动态特征。从不同的视角为系统构架建模,形成系统的不同视图。UML由视图、图、模型元素和通用机制等几部分组成。UML相关工具一览(截止2009年10月),12.1面向对象方法概述,12.2.3UML简介(1)视图(view)是表达系统的某一方面特征的UML建模元素的子集,由多个图构成,是在某一抽象层上对系统的抽象表示。(2)图(diagram)是模型元素集的图形表示,通常由弧(关系)和顶点(其他模型元素)相互连接构成。(3)模型元素(modelelement)代表面向对象中的类、对象、消息和关系等概念,是构成图的最基本的概念。(4)通用机制(generalmechanism)用于表示其他信息,比如注释、模型元素的语义等。另外,UML还提供扩展机制(extensionmechanism),使UML语言能够适应一个特殊的方法(或过程),或扩充至一个组织或用户。,12.3UML中的静态模型,12.3.1类图描述系统中类的静态结构,不仅定义系统中的类,表示类之间的关系,还包括类的内部结构(类的属性和操作)。1.类及其UML表示类是有着相同结构、行为和关系的一组对象共性的描述。类图中的类元素一般包含3个组成部分:类名;属性;该类提供的服务。属性和方法之前可附加的可见性修饰符:加号(+)表示公共public;减号(-)表示私有private;#号表示保护protected;省略这些修饰符表示具有package(包)级别的可见性。如果属性或方法具有下划线,则说明它是静态的。,12.3UML中的静态模型,12.3.1类图2.类间关系及其UML表示在UML中,类之间的语义连接被定义为关系。1)泛化关系:表示类之间的一般和特殊的关系,用一个空心箭头实线表示,箭头指向父类。2)实现关系:表示不继承结构,只继承行为的一种特殊的泛化关系,用空心箭头虚线表示实现关系,空心箭头指向父类接口。3)关联关系:描述类之间的相互作用与相互依存的对应关系,分为一对一(1:1)、一对多(1:n或*)和多对多(n:n)等3种。4)聚合关系和组成关系:聚合关系是整体和部分的关系,是强的关联关系。用端点带有空菱形的线段表示,空菱形与整体类相连接。组成关系是比聚合关系强的关系,它用一个实菱形物附在整体端表示。5)依赖关系:表示一个类(客户)以某种方式依赖于另一个类(提供者),当提供者改变时就必然影响到客户。,12.3UML中的静态模型,12.3.1类图3.UML的类图,12.1面向对象方法概述,12.3.2对象模型1.对象图显示某时刻对象和对象之间的关系。一个对象图可看成一个类图的特殊用例,实例和类可在其中显示。与类图的不同点在于对象图显示类的多个对象实例,而不是实际的类。一个对象图是类图的一个实例。由于对象存在生命周期,因此对象图只能在系统某一时间段存在。对象图的用途主要有:捕获实例和连接;在分析和设计阶段创建;捕获交互的静态部分;举例说明数据/对象结构。顺便指出,对象也和动态视图中的协作图相联系,协作图显示处于交互中的对象原型。,12.1面向对象方法概述,12.3.2对象模型2.接口类与抽象类接口类是一系列操作的集合,它定义了一组提供给外界的操作。接口有如下特性:除了可以包含方法之外,还可以包含属性、索引器、事件,而且这些成员都被定义为公有的。除此之外,不能包含任何其他的成员,例如:常量、域、构造函数、析构函数、静态成员。一个类可以直接继承多个接口,但通常只能直接继承一个类(包括抽象类)。抽象类用于部分实现一个类,再由用户按需求对其进行不同的扩展和完善;接口只是定义一个行为的规范或规定。抽象类在组件的所有实现间提供通用的已实现功能;接口创建在大范围全异对象间使用的功能。抽象类主要用于关系密切的对象;而接口适合为不相关的类提供通用功能。抽象类主要用于设计大的功能单元;而接口用于设计小而简练的功能块。由于接口只是定义属性和方法,而与真正实现的类型没有太大的关系,因此接口可以被多个类型重用。,12.1面向对象方法概述,12.3.3包图是在UML中用类似于文件夹的符号表示的模型元素的组合。系统中的每个元素都只能为一个包所有,一个包可嵌套在另一个包中。使用包图可以将相关元素归入一个子系统。一个包中可包含附属包、图表或单个元素。一个包图可以是任何一种的UML图组成,通常是UML用例图或UML类图。包是一个UML结构,它使得你能够把诸如用例或类之类模型元件组织为组。,12.4UML中的动态模型,12.4.1状态与状态图是描述一个对象基于事件反应的动态行为,显示了该对象如何根据当前所处的状态对不同事件做出反应。状态图的符号集包括5个基本元素:初始起点,它使用实心圆来绘制;状态之间的转换,它使用具有开箭头的线段来绘制;状态,它使用圆角矩形来绘制;判断点,它使用空心圆或菱形来绘制;以及一个或者多个终止点,它们使用内部包含实心圆的圆来绘制。,12.4UML中的动态模型,12.4.1状态与状态图1.状态状态是对象执行某项活动或等待某个事件时的条件,主要是一组相关属性值。对象可能会在一段时间内保持某一状态。状态具有以下几项特征:1)名称2)进入/退出操作3)内部转移4)子状态5)延迟的事件,12.4UML中的动态模型,12.4.1状态与状态图2.转移:是两个状态之间的关系,它表示当发生指定事件并且满足指定条件时,第一个状态中的对象将执行某些操作并进入第二个状态。当发生这种状态变更时,即“触发”了转移。在触发转移之前,可认为对象处于“源”状态;在触发转移之后,可认为对象处于“目标”状态。转移具有以下几项特征1)源状态2)事件触发器3)警戒条件4)操作5)目标状态,12.4UML中的动态模型,12.4.1状态与状态图是某场演出的一张票所经过历程的状态图。票的状态始于连接到表示起始的小圆点初始状态可售(available)状态。在票开始对外出售前,一部份票是给预约者预留的。当顾客预订票,被预订的票首先处于锁定(locked)状态,此时顾客仍有是否确实要买这张票的选择权,故这张票可能出售给顾客而达到已售(sold)状态,也可能因为顾客不要这张票而解除锁定状态,或者超过了指定的期限顾客仍未作出选择被自动解除锁定状态。预约者也可以换其他演出的票,如果这样的话,最初预约票也可以对外出售。,12.4UML中的动态模型,12.4.2活动与活动图(ActivityDiagram)表示一个过程中的多个顺序活动和并行活动,有助于对业务流程、工作流、数据流和复杂算法进行建模。活动图能够同时表示控制流和数据流。,12.4UML中的动态模型,12.4.2活动与活动图(ActivityDiagram)作为一种选择,活动可以分组为泳道(swimlane),泳道用于表示实际负责活动的角色,泳道:活动图中可增加角色的可视化维数。2.对象流:对象流是活动状态与对象之间的依赖关系,表示动作使用对象或者动作对对象的作用。对象流表示活动中输入或输出的对象,用带有箭头的虚线表示。,12.4UML中的动态模型,12.4.3对象交互时序与顺序图顺序图(sequencediagram)按时间顺序描述对象间的交互模式;它利用对象的“生命线”和它们之间传递的消息来显示对象如何按时序参与交互。顺序图由活动者(actor)、对象(object)、消息(message)、生命线(lifeline)和激活(activation)(又称控制焦点(focusofcontrol)组成。在UML中对象表示为一个矩形,其中有对象名;消息由有标记的箭头表示;生命线由虚线表示;激活由薄薄的矩形表示。顺序图的主要目的是定义事件序列,产生一些希望的输出。重点不是消息本身,而是消息产生的顺序。,12.4UML中的动态模型,12.4.3对象交互时序与顺序图,12.4UML中的动态模型,12.4.4协作与协作图协作图(CollaborationDiagram)是一种交互图(interactiondiagram),强调的是发送和接收消息的对象之间的链接结构。协作图组成的基本元素有:活动者、对象、链接(link)和消息。在UML中,使用实线标记两个对象之间的链接,由标记在连接上方的带有标记的箭头表示消息。,12.5UML中的功能模型与实现模型,12.5.1用例与用例图用例是一个行为或功能单元,表达了系统的功能和所提供的服务。用例从用户的目标和观点来描述完成业务要实现哪些功能。用例能够描述业务要求完成的功能,这种对业务的描述的用例称为业务用例(businessusecase)。用例通常描述对一个人机系统的使用功能,就称之为系统用例(systemusecase)。UML提供了用例图(usecasediagram,UCD)表示法,用以描述用例和使用者及其之间的关系。用例自身被画成一个椭圆,使用者被画成一个小人,用线连到用例。,12.5UML中的功能模型与实现模型,12.5.1用例与用例图,12.5UML中的功能模型与实现模型,12.5.2组件图1.组件图(componentdiagram):描述的是系统的组件(即构成应用程序的软件单元)以及组件之间的依赖关系。一般来说,软件组件就是一个程序文件,可以是源代码文件、二进制代码文件或可执行文件等。组件图可以用来说明编译、链接或执行时组件之间的依赖关系,主要面向系统开发人员。组件可以用UML2规范中的三种不同方法表示,12.5UML中的功能模型与实现模型,12.5.2组件图2.组件接口:一个组件是提供一个或更多公共接口的独立单元。提供的接口代表了组件提供给它的客户的服务或要求它的服务者提供的服务的正式契约。,显示了订货Order组件有第二个区,用来表示它提供提供了名为OrderEntry和AccountPayable的接口,也要求另外一个组件提供Person接口。,12.5UML中的功能模型与实现模型,12.5.2组件图3.组件接口建模的另一种方法建立一个里面有组件名的大长方形,并在长方形的外面放置UML2规范中称为接口的图符。其中,末端有一个完整的圆周的接口(棒棒糖)图符代表组件提供的接口,末端只有半个圆的接口(插座)图符代表组件要求的接口(接口的名字都被放置在接口符号本身附近)。,12.5UML中的功能模型与实现模型,12.5.2组件图4.组件关系的建模当表现组件与其他的组件的关系时,棒棒糖和插座图符也必须包括一支依赖箭头(如类图中所用的)。在有棒棒糖和插座的组件图上,依赖箭头从要求的插座引出,并且它的箭头指向供应者的棒棒糖。,12.5UML中的功能模型与实现模型,12.5.3部署图描述了运行处理节点和位于节点上的软件组织配置。部署图可以描述节点的拓扑结构、通信路径、节点上运行的软件组件、软件组件包含的逻辑单元(如对象、类等)。主要面向开发人员、系统集成人员和测试人员。,12.5UML中的功能模型与实现模型,UML视图与图的小结1用例视图(usecaseview),功能模型(functionalmodel):使用者的角度看的或需要的系统功能。用描述系统功能的用例图(usecasediagram,UCD)来表达。2静态视图(staticview),结构模型(structuralmodel):展现系统静态结构组成及特征。由描述系统描述对象类及其间关系的类图(classdiagram)和描述在某个时段的对象及其间关系的对象图(objectdiagram)组成。3动态视图(dynamicview),行为模型(behavioralmodel):体现系统的动态行为特征。通过描述系统元素活动的活动图(activitydiagram)、描述系统元素状态及其转换的状态图(statediagram)、按时序描述系统元素间的交互的顺序图(sequencediagram)或按空间也能表达时序的协作图(collaborationdiagram)来共同揭示。,12.5UML中的功能模型与实现模型,UML视图与图的小结4实现视图(implementationview),组件模型(componentmodel):展示系统实现结构与行为。用描述实现系统的元素(主要是软件)的组织的组件图(componentdiagram)来表示。5物理视图(physicalview),配置模型(deploymentmodel):通过描述系统设施平台的配置并把系统实现元素部署到平台上的部署图(deploymentdiagram)来展现。此外还有一种不是UML的标准图,但也很有用的包图(packagediagram)。,12.6面向对象方法的生命周期,OOA是通过用户需求调查分析,用OO方法建立起问题域的模型,即只分析问题所涉及的对象,包括其属性和服务的细节,如属性的数据结构和服务流程图。而OOD则重点考虑与实现有关的因素和用OO的观点建立一个求解域模型的过程,这些是与实现有关的因素,包括人机界面,数据存储、任务管理等方面。OO方法的一个更突出的特色就是OOA和OOD之间的界限不再严格划分。在OOA阶段要考虑到“如何做”,但在OOA阶段不能最终确定的具体方法与步骤总是允许留到OOD中解决。因此OOA阶段对“如何做”的问题总是关注的少一些。而在OOD阶段往往会加深和补充对系统需求的理解,从而进一步完善分析结果。分析和设计活动是一个多次反复迭代的过程。在实现阶段同样可以对分析和设计结果加以补充和完善,可以用喷泉模型来形象地表示OO方法的开发过程,12.6面向对象方法的生命周期,12.6.1面向对象分析(OOA)OOA的基本任务,通过识别问题域(管理业务流程)中的对象与类及其相互间关系,分析其行为方法,建立问题域的面向对象的模型。通过现状调查,借助于SSA中行之有效的模型工具BPD和ERD等,得到现状业务UCD,确定问题领域的全局永久对象类及其类图。以现状业务流程为基础,进行业务流程再造,得到由活动图表达的再造的业务流程。其中的对象除了永久对象外,还要补充必要的临时对象,据此修改完善全局永久类图,构思包括临时对象类及其临时关系的各子业务的局部类图,组成问题域的静态模型。导出再造业务的UCD。依据活动图中的对象流,参考类图,构思各类对象的状态图,反过来再修改完善活动图;综合得到各类对象的状态图,参考活动图,构建顺序图或协作图。得到业务流程再造后的问题域的静态模型类图,功能模型UCD,和由活动图、状态图及顺序图或协作图组成的动态模型,完成了OOA的基本任务。,12.6面向对象方法的生命周期,12.6.2面向对象设计(OOD)OOD也可以划分为总体一般设计与详细具体设计,前者不针对具体特定的平台配置,主要设计系统的总体结构,明确各个组分之间的关系;后者针对具体特定的平台配置,设计各个组分的具体结构,并关注其实现,得到一个可以直接实现的系统具体方案。与SSD不同的是,OOD中对OOA中得到的问题域模型可以直接拿来,重点是,在其基础上,从系统如何实现与运行的角度,设计人机接口部件、数据管理部件和任务管理部件,然后按实现的具体要求,改进完善它。最终得到这4大部件组成的系统实现方案。,12.6面向对象方法的生命周期,12.6.3面向对象实现(OOI)和系统运行与管理依据OOD所得到的系统实现方案,用选定的DBMS和程序设计语言,完成建库编程,并进行测试,编写用户使用手册,进行安装调试,就可以得到一个结构良好的可实际运行的MIS。持续对系统进行维护,发现和修订错误,进行局部功能调整以适应用户最新要求。面向对象的特点又决定了面向对象方法开发的MIS,维护简单,可扩充性好、代码重用率高。这就为系统运行维护创造了前所未有的优越条件。,
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!