转:http://blog.csdn.net/kingofbirdzjy/article/details/1967871
UML中描述对象和类之间相互关系的方式包括:依赖(Dependency),关联(Association),聚合(Aggregation),组合(Composition),泛化(Generalization),实现(Realization)等。
依赖 (Dependency):元素A的变化会影响元素B,但反之不成立,那么B和A的关系是依赖关系,B依赖A;类属关系和实现关系在语义上讲也是依赖关 系,但由于其有更特殊的用途,所以被单独描述。uml中用带箭头的虚线表示Dependency关系,箭头指向被依赖元素。
泛化(Generalization):通常所说的继承(特殊个体 is kind of 一般个体)关系,不必多解释了。uml中用带空心箭头的实线线表示Generalization关系,箭头指向一般个体。
实现(Realize):元素A定义一个约定,元素B实现这个约定,则B和A的关系是Realize,B realize A。这个关系最常用于接口。uml中用空心空心箭头和虚线表示Realize关系,箭头指向定义约定的元素。
关联(Association):元素间的结构化关系,是一种弱关系,被关联的元素间通常可以被独立的考虑。uml中用实线表示Association关系,箭头指向被依赖元素。
聚合(Aggregation):关联关系的一种特例,表示部分和整体(整体 has a 部分)的关系。uml中用带空心菱形头的实线表示Aggregation关系,菱形头指向整体。
组 合(Composition):组合是聚合关系的变种,表示元素间更强的组合关系。如果是组合关系,如果整体被破坏则个体一定会被破坏,而聚合的个体则可 能是被多个整体所共享的,不一定会随着某个整体的破坏而被破坏。uml中用带实心菱形头的实线表示Composition关系,菱形头指向整体。
其中依赖(Dependency)的关系最弱,而关联(Association),聚合(Aggregation),组合(Composition)表示的关系依次增强。换言之关联,聚合,组合都是依赖关系的一种,聚合是表明对象之间的整体与部分关系的关联,而组合是表明整体与部分之间有相同生命周期关系的聚合。
而关联与依赖的关系用一句话概括下来就是,依赖描述了对象之间的调用关系,而关联描述了对象之间的结构关系。
后面的例子将针对某个具体目的来独立地展示各种关系。虽然语法无误,但这些例子可进一步精炼,在它们的有效范围内包括更多的语义。
依赖(Dependency)
实体之间一个“使用”关系暗示一个实体的规范发生变化后,可能影响依赖于它的其他实例(图D)。 更具体地说,它可转换为对不在实例作用域内的一个类或对象的任何类型的引用。其中包括一个局部变量,对通过方法调用而获得的一个对象的引用(如下例所 示),或者对一个类的静态方法的引用(同时不存在那个类的一个实例)。也可利用“依赖”来表示包和包之间的关系。由于包中含有类,所以你可根据那些包中的 各个类之间的关系,表示出包和包的关系。
图D
关联(Association)
实体之间的一个结构化关系表明对象是相互连接的。箭头是可选的,它用于指定导航能力。如果没有箭头,暗示是一种双向的导航能力。在Java中,关联(图E) 转换为一个实例作用域的变量,就像图E的“Java”区域所展示的代码那样。可为一个关联附加其他修饰符。多重性(Multiplicity)修饰符暗示 着实例之间的关系。在示范代码中,Employee可以有0个或更多的TimeCard对象。但是,每个TimeCard只从属于单独一个 Employee。
图E
聚合(Aggregation)
聚合(图F)是关联的一种形式,代表两个类之间的整体/局部关系。聚合暗示着整体在概念上处于比局部更高的一个级别,而关联暗示两个类在概念上位于相同的级别。聚合也转换成Java中的一个实例作用域变量。
关联和聚合的区别纯粹是概念上的,而且严格反映在语义上。聚合还暗示着实例图中不存在回路。换言之,只能是一种单向关系。
图F
合成(Composition)
合成 (图G) 是聚合的一种特殊形式,暗示“局部”在“整体”内部的生存期职责。合成也是非共享的。所以,虽然局部不一定要随整体的销毁而被销毁,但整体要么负责保持局 部的存活状态,要么负责将其销毁。局部不可与其他整体共享。但是,整体可将所有权转交给另一个对象,后者随即将承担生存期职责。
Employee和TimeCard的关系或许更适合表示成“合成”,而不是表示成“关联”。
图G
泛化(Generalization)
泛化(图H)表示一个更泛化的元素和一个更具体的元素之间的关系。泛化是用于对继承进行建模的UML元素。在Java中,用extends关键字来直接表示这种关系。
图H
实现(Realization)
实例(图I)关系指定两个实体之间的一个合同。换言之,一个实体定义一个合同,而另一个实体保证履行该合同。对Java应用程序进行建模时,实现关系可直接用implements关键字来表示。
图I
相关推荐
本文将详细介绍UML类图中的六种基本关系:依赖、类属、关联、实现、聚合和组合。 #### 二、依赖(Dependency) **定义**: - 当元素A的变化会影响元素B,但元素B的变化不会反过来影响元素A时,我们说B依赖于A。 - ...
本文将详细说明UML类图中的各种实例关系。 首先,UML类图使用矩形框来表示类,每个矩形框被分为三个部分:顶部是类名,中间是类的属性,底部是类的方法。类名通常位于顶部并加粗显示,如果类是抽象的,则类名使用...
- **关联(Association)**:关联表示参与者和用例之间的关系,说明参与者如何使用用例。一条线段连接参与者和用例,表示参与者可以通过该用例与系统交互。 - **扩展(Extension)**:用例间的扩展关系表示一个用例...
基本概念用例图(UseCaseDiagram):用例图显示谁是相关的用户,用户希望系统提供什么服务(用例),以及用例之间的关系图。用例图主要的作用是获取需求、指导测试。用例图的4个基本组件:参与者(Actor)、用例(Use...
5.3.5 最终的图书馆管理系统用例图应清晰地展现了各种参与者与系统的交互,以及用例之间的关系,提供了系统功能的直观表示。 总结,用例图是理解和表达系统需求的有效工具,通过参与者、用例和它们之间的关系,我们...
举例来说,在餐饮业自动服务系统的开发中,UML的应用可能如下: - 规划阶段,通过识别和理解不同的用户群体(如顾客、服务员、管理员等),来确定系统的功能需求和权限管理。 - 用例图描绘了顾客和服务员如何与系统...
2. **对象图(Object Diagram)**:对象图是类图的一个实例化版本,它展示了一组对象及它们之间的关系,通常用来举例说明类图中的关系。 3. **序列图(Sequence Diagram)**:序列图用于描述系统中各个对象间的交互...
面向对象与UML 第一部分 软件开发活动 7 第一章 结构化的分析与设计 8 第一节 模型图 8 业务流程图 8 数据流图 11 功能结构图 12 功能树 13 网络结构图 14 程序流程图 15 第二节 需求分析 15 需求分析的任务 15 需求...
##### 事件流说明举例 **用例名**:商品信息管理 **基本操作流程**: 1. 管理员登录进入管理页面。 2. 选择商品管理选项,可以执行以下操作:商品添加、商品修改、商品删除、商品分类修改、商品置顶等。 **可选...
- **类与实例的区别**:阐述类和实例之间的关系以及如何在程序中正确使用它们。 - **对象访问**:讨论不同的方式来创建和操作对象。 - **对象的底层视图**:提供一个更深层次的理解,即对象在内存中的表示形式。 ##...
本ppt详解了uml九类图中的类图,对类图的基本概念进行描述,以及对类图之间的关联关系进行描述并举例说明
- 举例:学生表(S)、课程表(C)和选课表(SC)之间的关系,通过学号和课号作为外键连接。 总结,UML为数据库设计提供了更灵活和丰富的表达方式,将传统的数据库设计方法与现代建模技术相结合,有助于提高设计...
- 举例说明在销售领域中可能涉及到的概念类。 **8.4 领域建模的指导原则** - 提供了领域建模时应遵循的原则。 **8.5 分析相似的概念类—Register与“POST”的比较** - 通过比较两个概念类来说明如何区分相似但...
文档中举例说明了如何从分析类过渡到设计元素,展示了如何将分析类直接映射到设计类,并通过创建接口来合并子系统。例如,`BillingSystem` 和 `CourseCatalogSystem` 分别被设计为 `IBillingSystem` 和 `...
在Java实现中,UML模型可以帮助开发团队更清晰地理解业务需求,从而更有效地构建软件。 **1. UML用例图** UML用例图是需求分析阶段的关键元素,它展示了系统的主要参与者(Actors)与系统提供的功能(Use Cases)...
这套系统应当聚焦于工程项目建设中的人工、机械、材料成本管理以及各种成本浪费和不正当行为的控制,确保软件易于操作且能够显著提高工作效率。 #### 二、系统概述 ##### 2.1 系统背景 黑龙江省路桥公司第四工程处...
第三,对象图能够举例说明数据或对象结构。在上述实验中,顾客购买的商品可以看作是一个数据结构,包含不同类型的实例,如普通商品和18禁商品。通过对象图,我们可以直观地看到这些实例如何组织在一起,以及它们与...
标题所提到的知识点主要包括软件设计与体系结构的基础知识。其中,软件设计是软件工程的核心环节,涉及软件开发过程中的构建软件体系结构、设计软件...还举例说明了在房产信息管理系统开发中可能使用的具体设计模式。
2. 验收流程:功能展示—各种文档(UML 图)—代码(一条流程+注释)。 验收标准 验收标准分为必查项和抽查项,必查项则必须进行验收,抽查项验收人员则可以任意选择进行验收。 文档 a) 项目计划 1. 项目名称 2. ...