面向对象方法与UML.pps_第1页
面向对象方法与UML.pps_第2页
面向对象方法与UML.pps_第3页
面向对象方法与UML.pps_第4页
面向对象方法与UML.pps_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第12章 面向对象方法与UML v12.1 面向对象方法概述 v12.2 OO方法的基本概念和术语 v12.3 UML中的静态模型 v12.4 UML中的动态模型 v12.5 UML中的功能模型与实现模型 v12.6 面向对象方法的生命周期 12.1.1 面向对象方法引入 v1. 结构化开发方法的不足 12.1 面向对象方法概述 v 2. 面向对象方法的主要着眼点 v 1)对象:用对象作为对这些事物的抽象表示并作为系统的基本 构成单位。 v 2)对象的封装:对象的属性和服务结合为一个独立的整体,对 外屏蔽之,称作封装。 v 3)对象分类:把属性类型和服务相同的对象归为一类。 v 4)泛化与继承:运用泛化原则可以得到较一般的类父类和较 特殊的类子类。 v 5)组合:复杂的对象可以用简单的对象作为其构成部分,称为 组合。 v 6)对象之间的联系:对象之间的关系表达其静态联系,对象之 间传递消息请求服务以实现其动态联系。 12.1 面向对象方法概述 v12.1.2 面向对象的主要经典方法 v1. OMT方法 v2. Booch方法 v3. Coad/Yourdon v4. Jacobson方法 12.1 面向对象方法概述 v12.1.3 RUP (rational unified process)思路与过程 v RUP开发生命周期是一个二维的软件开发模型 v 纵轴是内容组织,为自然的逻辑活动,体现开发过程的静态结 构,描述它的术语主要包括活动(activity)、产物(artifact)、工作者 (worker)和工作流(workflow)。 v 横轴为时间组织,是过程展开的生命周期特征,体现开发过程 的动态结构,使用的术语主要包括周期(cycle)、阶段(phase)、迭 代(iteration)和里程碑(milestone)。在时间上划分为四个阶段:初始 (inception)、细化 (elaboration)、构造 (construction)和交付 (transition) 。 v 每个阶段结束于一个主要的里程碑(major milestones);本质上是 两个里程碑之间的时间跨度。每个阶段的结尾执行一次评估以 确定其目标是否已经满足。评估结果令人满意,才可以进入下 一个阶段。 12.1 面向对象方法概述 v12.1.3 RUP (rational unified process)思路与过程 12.1 面向对象方法概述 v1. 初始阶段:目标是为系统建立业务案例并确 定项目的边界。 v为此必须识别所有与系统交互的外部实体,在 较高层次上定义交互的特性。 v本阶段所关注的是整个项目进行中的业务和需 求方面的主要风险。对于建立在原有系统基础 上的开发项目,初始阶段可能很短。 v初始阶段结束的里程碑是生命周期目标(lifecycle objective)里程碑,它评价项目基本的生存能力。 。 12.1 面向对象方法概述 v2. 细化阶段 :目标是分析问题领域,建立健全的体系 结构基础,编制项目计划,淘汰项目中最高风险的 元素。 v必须在理解整个系统的基础上,设计体系结构,包 括其范围、主要功能和诸如性能等非功能需求等。 同时为项目建立支持环境,包括创建开发案例,创 建模板、准则并准备工具。 v细化阶段结束的里程碑是生命周期体系结构(lifecycle architecture)里程碑,它为系统的结构建立管理基准 并使项目小组能够在构建阶段中进行衡量,检验详 细的系统目标和范围、结构的选择以及主要风险的 解决方案。 12.1 面向对象方法概述 v3. 构建阶段 :所有剩余的构件和应用程序 功能被开发并集成为产品,所有的功能被 详细测试。 v是一个制造过程,其重点放在管理资源及 控制运作以优化成本、进度和质量。 v结束时的里程碑是初始运作(initial operational) 里程碑,决定了产品是否可以在测试环境 中进行部署。要确定软件、环境、用户可 否开始系统的运作。其产品版本常被称为 “beta”版。 12.1 面向对象方法概述 v4. 交付阶段:其重点是确保软件对最终用户是可 用的。 v交付阶段可以继续几次迭代,包括为发布做准 备的产品测试,基于用户反馈的少量的调整等 。此时,用户反馈主要集中在产品调整,设置 、安装和可用性问题,所有主要的结构问题应 该已经在项目生命周期的早期阶段解决了。 v其里程碑是产品发布(product release)里程碑。此 时,要确定目标是否实现,是否应该开始另一 个开发周期。在一些情况下这个里程碑可能与 下一个周期的初始阶段的结束重合。 12.1 面向对象方法概述 v12.1.4 面向对象方法的特点 v1)与人类习惯的思维方法一致 v2)稳定性好 v3)对需求变化的适应性 v4)可重用性好 v5)可维护性好 12.2 OO方法的基本概念和术语 v12.2.1 对象 v1. 定义:对象是对关于某事物的属性(一组信息)与行 为(属性上的操作)的抽象。 v2. 形象表示 3. 基本特点 1)抽象性 2)封装性 3)主动性 4)并行工作性 5)独立性 12.1 面向对象方法概述 v12.2.2 对象类及其他相关概念 v1. 对象类:具有相同类型属性和服务的对象的集合 ,它是为有共性的对象建立的模板。 v2. 派生继承与类层次:归纳子类得到父类的过程称 为泛化,有父类分化出子类的过程称为派生。父 类可以继承其他的类,子类也可派生出其子类, 从而形成类的继承层次关系,也称类层次。 v3. 例化与实例:实例是由某个特定的类所描述的一 个具体的对象,例化是通过属性赋值与操作具体 化而用对象类定义其实例对象的过程。 12.1 面向对象方法概述 v12.2.2 对象类及其他相关概念 v4. 属性和数据结构 v1)单值属性:在任何时应该只有一个值或者状态。比 如一个学生对象实例的“体重属性”虽然会随着时间而 变化,但在任意时刻只会有一个体重值。可以分为复 合项、导出项、基本项等3种。 v2)互斥值属性:判定某个属性为互斥属性,要看其值 出现是否依赖于其他属性值出现。 v3)多值属性:多值属性表示在任何时刻可以具有多个 值。比如学生对象实例的“所上大学属性”,某学生可 能不只上过一所大学,学生必须列出正在上和曾经上 过的所有大学、社区大学、职业培训学校。 12.1 面向对象方法概述 v12.2.2 对象类及其他相关概念 v5. 概括与封装 v用对象来描述事物时,只把事物的被业务关注的那些特性 和行为作为对象的属性和服务,并把它们有序地组织到对 象中,这就是概括。封装就是把对象的属性和服务结合成 一个独立的模块,并尽可能隐蔽其内部细节,就形成一个 不可分割的独立单位。 v外部不能直接地访问对象的属性,也不能直接看到或修改 对象的服务的结构,只能通过消息用几个允许外部使用的 服务与对象发生联系。封装有效地避免了外部错误对它的“ 交叉感染”,使错误能够局部化,因而大大减少了查错和排 错的难度,而且大大减少了内部的修改对外部的影响,即 减小了修改引起的“波动效应”。 12.1 面向对象方法概述 v6. 消息、事件与状态 v 1)消息:在OO方法中把向对象发出的服务请求称作消息。 v 2)事件:事件是在一时间点上发生的一件事情,它有能引起对 象状态转换的信息。 v 3)状态:对象的状态即其某时段所有属性的当前值。 v7. 多态与重载 v 多态性是指在一般类中定义的属性或服务被特殊类继承之后, 可以具有不同的数据类型或表现出不同的行为。 v 1)包含多态:相同的算子可以表示不同类型的运算 v 2)重载多态:相同的函数名可具有不同的参数,称为重载多态 v 3)强制多态:通过语义操作把一个变量的类型加以变化,以符合一个函数 或操作的要求 v 4)参数多态:由类属实例化的各类就都具有相同的操作,而所涉及的类型 不一样 12.1 面向对象方法概述 v12.2.3 UML简介 v 是一种用来对系统开发的产出进行可视化、规范定义、构造和 文档化的面向对象的建模语言。UML用模型来描述系统的结 构或静态特征,以及行为或动态特征。从不同的视角为系统构 架建模,形成系统的不同视图。UML由视图、图、模型元素 和通用机制等几部分组成。 vUML相关工具一览览(截止2009年10月) /Tools/Newindex1.htm v 免费UML建模工具推荐:JUDE community v 免费UML建模工具推荐:UMLet v 免费UML建模工具推荐:Argo UML v 免费UML建模工具推荐:BOUml v 免费UML建模工具推荐:Visual paradigm community 12.1 面向对象方法概述 v12.2.3 UML简介 v (1)视图(view)是表达系统的某一方面特征的UML建模元素的 子集,由多个图构成,是在某一抽象层上对系统的抽象表示。 v (2)图(diagram)是模型元素集的图形表示,通常由弧(关系)和 顶点(其他模型元素)相互连接构成。 v (3)模型元素(model element)代表面向对象中的类、对象、消 息和关系等概念,是构成图的最基本的概念。 v (4)通用机制(general mechanism)用于表示其他信息,比如 注释、模型元素的语义等。另外,UML还提供扩展机制 (extension mechanism),使UML语言能够适应一个特殊的方 法(或过程),或扩充至一个组织或用户。 12.3 UML中的静态模型 v12.3.1 类图 v 描述系统中类的静态结构,不仅定义系统中的类,表示类之间 的关系,还包括类的内部结构(类的属性和操作)。 v1. 类及其UML表示 v 类是有着相同结构、行为和关系的一组对象共性的描述。类图 中的类元素一般包含3个组成部分:类名;属性;该类提供的 服务。 属性和方法之前可附加的可见性修饰符:加号(+)表示公共public;减号(-) 表示私有private;#号表示保护protected;省略这些修饰符表示具有 package(包)级别的可见性。如果属性或方法具有下划线,则说明它是静 态的。 12.3 UML中的静态模型 v12.3.1 类图 v 2. 类间关系及其UML表示 在UML中,类之间的语义连接被定义为关系。 1)泛化关系:表示类之间的一般和特殊的关系,用一个空心箭头实线 表示,箭头指向父类。 2)实现关系:表示不继承结构,只继承行为的一种特殊的泛化关系,用 空心箭头虚线表示实现关系,空心箭头指向父类接口。 3)关联关系:描述类之间的相互作用与相互依存的对应关系,分为一对 一(1:1)、一对多(1:n或*)和多对多(n:n)等3种。 4)聚合关系和组成关系:聚合关系是整体和部分的关系,是强的关联关 系。用端点带有空菱形的线段表示,空菱形与整体类相连接。组成 关系是比聚合关系强的关系,它用一个实菱形物附在整体端表示。 5)依赖关系:表示一个类(客户)以某种方式依赖于另一个类(提供者),当 提供者改变时就必然影响到客户。 12.3 UML中的静态模型 v12.3.1 类图 v 3. UML的类图 12.1 面向对象方法概述 v12.3.2 对象模型 v1. 对象图 v显示某时刻对象和对象之间的关系。一个对象图可看成 一个类图的特殊用例,实例和类可在其中显示。与类图 的不同点在于对象图显示类的多个对象实例,而不是实 际的类。一个对象图是类图的一个实例。由于对象存在 生命周期,因此对象图只能在系统某一时间段存在。 v对象图的用途主要有:捕获实例和连接;在分析和设计 阶段创建;捕获交互的静态部分;举例说明数据/对象结 构。 v顺便指出,对象也和动态视图中的协作图相联系,协作 图显示处于交互中的对象原型。 12.1 面向对象方法概述 v12.3.2 对象模型 v2. 接口类与抽象类 v 接口类是一系列操作的集合,它定义了一组提供给外界的操作。接 口有如下特性:除了可以包含方法之外,还可以包含属性、索引器 、事件,而且这些成员都被定义为公有的。除此之外,不能包含任 何其他的成员,例如:常量、域、构造函数、析构函数、静态成员 。一个类可以直接继承多个接口,但通常只能直接继承一个类(包括 抽象类)。 v 抽象类用于部分实现一个类,再由用户按需求对其进行不同的扩展 和完善;接口只是定义一个行为的规范或规定。抽象类在组件的所 有实现间提供通用的已实现功能;接口创建在大范围全异对象间使 用的功能。抽象类主要用于关系密切的对象;而接口适合为不相关 的类提供通用功能。抽象类主要用于设计大的功能单元;而接口用 于设计小而简练的功能块。由于接口只是定义属性和方法,而与真 正实现的类型没有太大的关系,因此接口可以被多个类型重用。 12.1 面向对象方法概述 v12.3.3 包图 v是在 UML 中用类似于文件夹的符号表示的模型元素 的组合。系统中的每个元素都只能为一个包所有,一 个包可嵌套在另一个包中。使用包图可以将相关元素 归入一个子系统。一个包中可包含附属包、图表或单 个元素。 v一个“包图“可以是任何一种的UML图组成,通常是 UML用例图或UML类图。包是一个UML结构,它使 得你能够把诸如用例或类之类模型元件组织为组。 12.4 UML中的动态模型 v12.4.1 状态与状态图 v 是描述一个对象基于事件反应的动态行为,显示了该对象如何 根据当前所处的状态对不同事件做出反应。 v 状态图的符号集包括5个基本元素:初始起点,它使用实心圆 来绘制;状态之间的转换,它使用具有开箭头的线段来绘制; 状态,它使用圆角矩形来绘制;判断点,它使用空心圆或菱形 来绘制;以及一个或者多个终止点,它们使用内部包含实心圆 的圆来绘制。 12.4 UML中的动态模型 v12.4.1 状态与状态图 v1. 状态 v状态是对象执行某项活动或等待某个事件时的 条件,主要是一组相关属性值。对象可能会在 一段时间内保持某一状态。 v状态具有以下几项特征: v1)名称 2)进入/退出操作 v3)内部转移 4)子状态 v5)延迟的事件 12.4 UML中的动态模型 v12.4.1 状态与状态图 v2. 转移:是两个状态之间的关系,它表示当发生指定 事件并且满足指定条件时,第一个状态中的对象将执 行某些操作并进入第二个状态。当发生这种状态变更 时,即“触发”了转移。在触发转移之前,可认为对象 处于“源”状态;在触发转移之后,可认为对象处于“目 标”状态。 v转移具有以下几项特征 v1)源状态 2)事件触发器 v3)警戒条件 4)操作 v5)目标状态 12.4 UML中的动态模型 v12.4.1 状态与状态图 是某场演出的一张票所经过历程的状态图。票的状态始于连接到表示起始的小圆点初始状态 可售(available)状态。在票开始对外出售前,一部份票是给预约者预留的。当顾客预订 票,被预订的票首先处于锁定(locked)状态,此时顾客仍有是否确实要买这张票的选择权, 故这张票可能出售给顾客而达到已售(sold)状态,也可能因为顾客不要这张票而解除锁定状态 ,或者超过了指定的期限顾客仍未作出选择被自动解除锁定状态。预约者也可以换其他演出 的票,如果这样的话,最初预约票也可以对外出售。 12.4 UML中的动态模型 v12.4.2 活动与活动 图(Activity Diagram) v表示一个过程中的 多个顺序活动和并 行活动,有助于对业 务流程、工作流、 数据流和复杂算法 进行建模。活动图 能够同时表示控制 流和数据流。 12.4 UML中的动态模型 v12.4.2 活动与活动图(Activity Diagram) v作为一种选择,活动可以分组为泳道(swimlane),泳 道用于表示实际负责活动的角色 1. 泳道:活动图中可增加 角色的可视化维数。 2. 对象流:对象流是活动 状态与对象之间的依 赖关系,表示动作使 用对象或者动作对对 象的作用。对象流表 示活动中输入或输出 的对象,用带有箭头 的虚线表示。 12.4 UML中的动态模型 v12.4.3 对象交互时序与顺序图 v顺序图(sequence diagram)按时间顺序描述对象间的 交互模式;它利用对象的“生命线”和它们之间传递 的消息来显示对象如何按时序参与交互。 v顺序图由活动者(actor)、对象(object)、消息(message) 、生命线(lifeline)和激活(activation)(又称控制焦点(focus of control)组成。在UML中对象表示为一个矩形,其 中有对象名;消息由有标记的箭头表示;生命线由虚 线表示;激活由薄薄的矩形表示。顺序图的主要目的 是定义事件序列,产生一些希望的输出。重点不是消 息本身,而是消息产生的顺序。 12.4 UML中的动态模型 v12.4.3 对象交互时序与顺序图 12.4 UML中的动态模型 v 12.4.4 协作与协作图 v 协作图(Collaboration Diagram)是一种交互图 (interaction diagram),强 调的是发送和接收消 息的对象之间的链接 结构。 v 协作图组成的基本元 素有:活动者、对象 、链接(link)和消息。 在UML中,使用实线 标记两个对象之间的 链接,由标记在连接 上方的带有标记的箭 头表示消息。 12.5 UML中的功能模型与实现模型 v12.5.1 用例与用例图 v用例是一个行为或功能单元,表达了系统的功能和所 提供的服务。用例从用户的目标和观点来描述完成业 务要实现哪些功能。 v用例能够描述业务要求完成的功能,这种对业务的描 述的用例称为业务用例(business use case)。用例通常 描述对一个人机系统的使用功能,就称之为系统用例 (system use case)。UML 提供了用例图(use case diagram, UCD)表示法,用以描述用例和使用者及其之间的关系 。用例自身被画成一个椭圆,使用者被画成一个小人 ,用线连到用例。 12.5 UML中的功能模型与实现模型 v12.5.1 用例与用例图 12.5 UML中的功能模型与实现模型 v12.5.2 组件图 v1. 组件图(component diagram):描述的是系统的组件( 即构成应用程序的软件单元)以及组件之间的依赖关 系。一般来说,软件组件就是一个程序文件,可以是 源代码文件、二进制代码文件或可执行文件等。组件 图可以用来说明编译、链接或执行时组件之间的依赖 关系,主要面向系统开发人员。 v组件可以用UML 2规范中的三种不同方法表示 12.5 UML中的功能模型与实现模型 v12.5.2 组件图 v2. 组件接口:一个组件是提供一个或更多公共接口的 独立单元。提供的接口代表了组件提供给它的客户的 服务或要求它的服务者提供的服务的正式契约。 显示了订货Order组件有 第二个区,用来表示它提 供提供了名为 OrderEntry 和 AccountPayable 的接 口,也要求另外一个组件 提供Person接口。 12.5 UML中的功能模型与实现模型 v12.5.2 组件图 v3. 组件接口建模的另一种方法 v 建立一个里面有组件名的大长方形,并在长方形的外面放置 UML 2 规范中称为接口的图符。 v 其中,末端有一个完整的圆周的接口(棒棒糖)图符代表组件提 供的接口,末端只有半个圆的接口(插座)图符代表组件要求的 接口(接口的名字都被放置在接口符号本身附近)。 12.5 UML中的功能模型与实现模型 v12.5.2 组件图 v4. 组件关系的建模 v 当表现组件与其他的组件的关系时,棒棒糖和插座图符也必须 包括一支依赖箭头(如类图中所用的)。在有棒棒糖和插座的组 件图上,依赖箭头从要求的插座引出,并且它的箭头指向供应 者的棒棒糖。 12.5 UML中的功能模型与实现模型 v12.5.3 部署图 v 描述了运行处理节 点和位于节点上的 软件组织配置。部 署图可以描述节点 的拓扑结构、通信 路径、节点上运行 的软件组件、软件 组件包含的逻辑单 元(如对象、类等)。 主要面向开发人员 、系统集成人员和 测试人员。 12.5 UML中的功能模型与实现模型 vUML视图与图的小结 v 1用例视图(use case view),功能模型(functional model) :使用者的角度看的或需要的系统功能。用描述系统功能的 用例图(use case diagram,UCD)来表达。 v 2静态视图(static view),结构模型(structural model):展 现系统静态结构组成及特征。由描述系统描述对象类及其间关 系的 类图(class diagram)和描述在某个时段的对象及其间 关系的 对象图(object diagram)组成。 v 3动态视图(dynamic view),行为模型(behavioral model) :体现系统的动态行为特征。通过描述系统元素活动的 活 动图(activity diagram)、描述系统元素状态及其转换的 状 态图(state diagram)、按时序描述系统元素间的交互的 顺 序图(sequence diagram)或按空间也能表达时序的 协作图 (collaboration diagram)来共同揭示。 12.5 UML中的功能模型与实现模型 vUML视图与图的小结 v4实现视图(implementation view),组件模型 (component model):展示系统实现结构与行为。 用描述实现系统的元素(主要是软件)的组织的 组件 图(component diagram)来表示。 v5物理视图(physical view),配置模型(deployment model):通过描述系统设施平台的配置并把系统实现 元素部署到平台上的 部署图(deployment diagram) 来展现。 v此外还有一种不是UML的标准图,但也很有用的包图 (package diagram)。 12.6 面向对象方法的生命周期 v OOA是通过用户需求调查分析,用OO方法建立起问题域的模 型,即只分析问题所涉及的对象,包括其属性和服务的细节, 如属性的数据结构和服务流程图。而OOD则重点考虑与实现 有关的因素和用OO的观点建立一个求解域模型的过程,这些 是与实现有关的因素,包括人机界面,数据存储、任务管理等 方面。 v OO方法的一个更突出的特色就是OOA和OOD之间的界限不再 严格划分。在OOA阶段要考虑到“如何做”,但在OOA阶段不能 最终确定的具体方法与步骤总是允许留到OOD中解决。因此 OOA阶段对“如何做”的问题总是关注的少一些。而在OOD阶段 往往会加深和补

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论