资源预览内容
第1页 / 共40页
第2页 / 共40页
第3页 / 共40页
第4页 / 共40页
第5页 / 共40页
第6页 / 共40页
第7页 / 共40页
第8页 / 共40页
第9页 / 共40页
第10页 / 共40页
亲,该文档总共40页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
统一建模语言(UML) UML(Unified Modeling Language)是 一种建模语言,是为面向对象开发系统的产品 进行可视化的说明和编制文档的方法。它是由 信息系统(IS,Information System) 和面向 对象领域的三位著名的方法学家:Grady Booch、 James Rumbaugh、和Ivar Jacobson提出的,由OMG 组织 (Object Management Group) 采纳作为业界标准。 UML 取代目前软件业众多的分析和设计方法 (Booch、 Coad、 Jacobson、 Odell、 Rumbaugh、 Wirfs-Brock 等),成为一种标 准,这是软件界第一次有了一个统一的建模语 言。 11.1 UML 简介1 UML 的产生和成长 UML发展历史大致可以概括为四个阶段: 第一阶段:面向对象的方法学家联合行动。1994年10月,Grady Booch和Jim Rumbaugh开始 致力于这一工作。 第二阶段:公司的联合行动。1996年, UML的开发者得到了来自公众的正面反 应,并倡议成立了UML成员协会,以完善、加强和促 进UML的定义工作。第三阶段:在OMG组织、控制下对UML规范进行的修订 和 改进,产生了UML1.2、1.3、1.4、1.5等版本。 第四阶段:目前所处阶段。目前所处阶段是本世纪开始以来的重大修订,推出 了全新的版本2.0。2 UML的定义及目标 UML 是一种标准的图形化建模语言,它是面向对象分析与设 计的一种标准表示。 1、它是一种可视化的建模语言。2、它是一种建模语言规格说明,是一种表示的标准。3、不是过程也不是方法,但允许任何一种过程和方法使用它UML 主要作者提出的目标是:提供给用户一个易于使用和表达的可视化的建模语言,使他们 能够开发和交流有意义的模型。独立于任何开发语言。独立于任何 开发过程。简单并且可扩展,具有扩展和专有化机制,便于扩展, 无需对核心概念进行修改。提供了解建模语言的一个基本手段。支 持面向对象的设计与开发中涌现出的高级概念,例如协作、框架、 模式和构件,强调在软件开发中对架构、框架、模式和构件的重用 。最佳的软件工程实践经验的集成。有利于面向对象工具的市场成 长。 3 UML 的应用领域 1在不同类型系统中的应用UML 常见的应用有:信息系统(Information System); 技术系统(Technical System); 嵌入式实时系统(Embedded Real-Time System);分布式系统(Distributed System); 系统软件(System Software);商业系统(Business System);在软件开发的不同阶段中的应用,UML适用于 系统开发过程中从需求规格描述到系统完成后 测试的不同阶段。11.2 UML 语言概述 1 视图(views)视图用来表示被建模系统的各个方 面。视图由多个图(Diagrams)构成, 它不是一个图片(graph), 而是在某 一个抽象层上对系统的抽象表示。如果 要为系统建立一个完整的模型图,只需 定义一定数量的视图,每个视图表示系 统的一个特殊的方面就可以了。另外, 视图还把建模语言和系统开发时选择的 方法或过程连接起来。2 图(diagram)图由图片(graph)组成。图片是模型元 素的符号化。把这些符号有机地组织起来形成 的图,表示了系统的一个特殊部分或某个方面 。一个典型的系统模型应有多个各种类型的图 ,图是一个具体视图的组成部分,在画一个图 时就相当于把这个图分配给某个视图了。依据 图本身的内容,有些图可能是多个视图的一部 分。UML 中包含用例图、类图、对象图、状 态图、顺序图、协作图、活动图、构件图、部 署图共九种。使用这九种图就可以描述世界上 任何复杂的事物,这充分地显示了UML 的多 样性和灵活性。 3 模型元素图为 一些通用的模型元素符号示例在图中使用的概念统称为模型元素。4 通用机制UML 语言利用通用机制为图附加一 些信息,这些信息通常无法用基本的模 型元素表示,常用的通用机制有修饰( adornment)、 笔记(note)和规格说 明(specification)等。 5 UML建模工具 随着UML的诞生与发展,涌现出了 众多的UML建模工具。如Rational Rose 、Microsoft的 Microsoft Office Visio、 Jude、免费的UML工具BOUML、Sparx Systems的Enterprise Architect(EA)、使 用java编写的开源UML产品ArgoUml、 StartUML等等。 11.3 用例建模用例建模描述一个系统应该做什么,描述 的是外部参与者所理解的系统功能。构建用例 模型是通过开发者与客户或最终使用者对需求 规格说明达成的共识,明确系统的基本功能, 为后阶段的工作打下基础。用例模型的基本组成部件是用例、参与者 和系统。用例用于描述系统的功能,也就是从 外部用户的角度,观察系统应支持哪些功能, 帮助分析人员理解系统的行为,它是对系统功 能的宏观描述。 1 用例图用例模型可以由若干个用例图组成 ,用例图中包含系统、参与者和用例等 三种模型元素。 2 参与者(actor)1)参与者是与系统交互的人或事2)寻找参与者通过回答下列的一些问题确定参与者:(1)使用系统主要功能的人是谁?(即主要参与者 )(2)需要借助于系统完成日常工作的人。(3)维护、管理系统,保证系统正常工作的人(次 要参与者)。(4)系统要控制哪些硬件设备?(5)系统需要与哪些其它系统交互?(6)对系统产生的结果感兴趣的人或事是哪些? 3 用例用例代表的是参与者感受到的一个完整的功 能。UML 中的用例是动作步骤的集合。系统 中的每种可执行情况就是一个动作,每个动作 由许多具体步骤实现。1)用例的特征(1)用例总由参与者初始化,即:参与者必 须直接或间接地指示系统执行用例。(2)用例为参与者提供值。用例必须为参与 者提供实在的值,这个值能被参与者识别。(3)用例是一个完整的描述。 2寻找用例对于已识别的参与者,通过询问下列问题 就可发现用例: (1)参与者需要系统提供哪种功能?参与者需 要做什么? (2)参与者需要读取、产生、删除、修改或存 储系统中的某种信息吗? (3)系统中发生的事件需要通知参与者吗?或 者参与者需要通知系统某件事吗?这些事件( 功能)能干些什么? (4)如果用系统的新功能处理参与者的日常工 作,是简单化了还是提高了工作效率?3) 用例的描述应包括下面几个方面: (1)用例的目标: 用例的最终任务是什么?想达到什么样的目标? (2)用例是怎样被启动(initiate)的: 哪个参与者在怎样的情况下启动执行用例?比如张三买 了车,是所以要投保的原因。 (3)参与者和用例之间的消息流: 参与者和用例之间的哪些消息是用来通知对方的?哪些 是修改或检索信息的?哪些是帮助用例做决定的?系 统和参与者之间的主消息流描述了什么问题?系统使用 或修改了哪些实体? (4)用例的多种执行方案: 在不同的条件或特殊情况下,用例能依当时条件选择一种 合适的执行方案。 (5)如何通过给参与者一个值来结束用例。 4)用例之间的关系用例之间有扩展(extend)、使 用(use)、组合三种关系。扩展和使用 是继承关系的另一种体现形式。组合则 是把相关的用例打成包(package), 当作一个整体看待。11.4 类与对象建模 1 类和对象在面向对象建模技术中,我们采用分类的方法将 客观世界的实体映射为对象,并归纳成一个个类。、 对象和他们之间的关联是面向对象技术中最基本的元 素。在UML中,类和对象模型分别由类图和对象图表示。 2 类图和对象图类图是类图属于一种静态模型,是用类和 它们之间的关系描述系统的一种图示。 对象图是类图的一个实例。表示在某一时 刻类的具体实例和这些实例之间的具体连接关 系。 3 关系类图由类和它们之间的关系组成,类与 类之间的关系有关联(association)、依赖( dependency)、泛化(generalization) 1) 关联关系关联表示两个类之间存在某种语义上的联 系,用于描述类与类之间的连接。根据不同 的含义关联可分为普通关联、递归关联 、限定关联、或关联、有序关联、三元 关联和聚合等七种。 2)聚合(aggregation)(一般聚合、共享 聚合、组合复合聚合)聚合是一种特殊形式的关联。聚合 表示类与类之间的整体与部分的关系。 3)泛化(generalization)泛化表示的是一般描述和具体描述 之间的关系,具体描述建立在一般描述 的基础上,并对其进行了扩展。具体描 述与一般描述完全一致,具有其所有特 性、成员和关系。 4)依赖(Dependency)依赖是两个模型元素间的语义连接, 一个是独立的模型元素,一个是依赖的 模型元素。 5)细化(refinement)细化是UML中的术语,表示对事物 更详细一层的描述。两个元素A、B描述 同一件事物,它们的区别是抽象层次不同, 若元素B是在元素A的基础上的更详细的 描述,则称元素B细化了元素A,或称元素A 细化成元素B。 4 约束和派生(规则)UML 中的规则称为约束和派生。约 束用于限制一个模型,我们已经讨论过 的约束有或关联、有序关联和继承约束 。派生用于描述某种事物的产生规则, 比如说一个人的年龄可以由该人的生日 和当前日期派生出来。一般说来,约束 和派生能应用于任何模型元素,但最常 用于属性、关联、继承、角色和时间 5 包对于一个复杂的系统,通常都是把它分为若干个较小的系 统(子系统)。解决这个问题的一个思路是将许多类集合成一个 更高层次的单位,形成一个高内聚、低耦合的类的集合。这个思路被松散地应用到许多对象技术中。 6 如何确定类 1)寻找类 在进行构造类图描述系统的工作时,首先要定义类,也 就是将系统要处理的数据抽象成类的属性,将处理数 据的方法抽象为操作。 2)类名 类的名字用黑体字书写在长方形的最上面,给类命名时 最好能够反映类所代表的问题域中的概念。 3)定义属性 类的属性放在类名字的下方,用来描述该类的对象所具 有的特征。 4)定义操作 存取、或改变属性值、或执行某个动作都是操作。操作 通常又称为函数。 11.5 动态建模1 消息(massage)在面向对象技术中,对象间的交互是通过 对象间消息的传递来完成的。 2状态图(State Diagram)状态图(State Diagram)用来描述一 个特定对象的所有可能状态及其引起状 态转移的事件。大多数面向对象技术都 用状态图表示单个对象在其生命周期中 的行为。 3顺序图(Sequence Diagram )顺序图用来描述对象之间动态的交互关系, 着重体现对象间消息传递的时间顺序。顺序图存在两个轴:水平轴表示不同的对象, 垂直轴表示时间。顺序图中的对象用一个带有 垂直虚线的矩形框表示,并标有对象名和类名。 垂直虚线是对象的生命线,用于表示在某段时间 内对象是存在的。对象间的通信通过在对象的 生命线间画消息来表示。消息的箭头指明消息 的类型。4 协作图(Collaboration Diagram)协作图主要描述相互合作的对象间的交互 关系和链接关系(一条链接是一个关联的实例 化)。 顺序图和协作图都用来描述对象间的交 互,但是侧重点不一样。顺序图强调的是时间 ,而协作图强调的是空间链接,显示真正的对 象以及对象间是如何联系在一起的,可以只显 示对象的内部结构,同顺序图一样,协作图也 可以说明操作的执行,用例的执行或系统中的 一次简单的交互情节。 5活动图(Activity Diagram)活动图使用状态图的符号,与状态 图有相同的开始点和结束点。活动图中 的状态称为动作状态,用圆角矩形表示 ,动作状态之间的转移用箭头表示。转 移上可以附加监护条件、发送子句和动 作表达式。1
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号