在UML建模中,对类图上出现元素的理解是至关重要的。开发者必须理解如何将类图上出现的元素转换到Java中。以java为代表结合网上的一些实例:
基本元素符号:
1. 类(Classes)
类包含3个组成部分。第一个是Java中定义的类名。第二个是属性(attributes)。第三个是该类提供的方法。
属性和操作之前可附加一个可见性修饰符。加号(+)表示具有公共可见性。减号(-)表示私
有可见性。#号表示受保护的可见性。省略这些修饰符表示具有package(包)级别的可见性。如果属性或操作具有下划线,表明它是静态的。在操作中,可
同时列出它接受的参数,以及返回类型,如下图所示:
2. 包(Package)
包是一种常规用途的组合机制。UML中的一个包直接对应于Java中的一个包。在Java
中,一个包可能含有其他包、类或者同时含有这两者。进行建模时,你通常拥有逻辑性的包,它主要用于对你的模型进行组织。你还会拥有物理性的包,它直接转换
成系统中的Java包。每个包的名称对这个包进行了惟一性的标识。
3. 接口(Interface)
接口是一系列操作的集合,它指定了一个类所提供的服务。它直接对应于Java中的一个接口
类型。接口既可用下面的那个图标来表示(上面一个圆圈符号,圆圈符号下面是接口名,中间是直线,直线下面是方法名),也可由附加
了<<interface>>的一个标准类来表示。通常,根据接口在类图上的样子,就能知道与其他类的关系。
关 系:
1. 依赖(Dependency)
实体之间一个“使用”关系暗示一个实体的规范发生变化后,可能影响依赖于它的其他实例。更
具体地说,它可转换为对不在实例作用域内的一个类或对象的任何类型的引用。其中包括一个局部变量,对通过方法调用而获得的一个对象的引用(如下例所示),
或者对一个类的静态方法的引用(同时不存在那个类的一个实例)。也可利用“依赖”来表示包和包之间的关系。由于包中含有类,所以你可根据那些包中的各个类
之间的关系,表示出包和包的关系。
2. 关联(Association)
实体之间的一个结构化关系表明对象是相互连接的。箭头是可选的,它用于指定导航能力。如果
没有箭头,暗示是一种双向的导航能力。在Java中,关联转换为一个实例作用域的变量,就像图E的“Java”区域所展示的代码那样。可为一个关联附加其
他修饰符。多重性(Multiplicity)修饰符暗示着实例之间的关系。在示范代码中,Employee可以有0个或更多的TimeCard对象。但
是,每个TimeCard只从属于单独一个Employee。
3. 聚合(Aggregation)
聚合是关联的一种形式,代表两个类之间的整体/局部关系。聚合暗示着整体在概念上处于比局部更高的一个级别,而关联暗示两个类在概念上位于相同的级别。聚合也转换成Java中的一个实例作用域变量。
关联和聚合的区别纯粹是概念上的,而且严格反映在语义上。聚合还暗示着实例图中不存在回路。换言之,只能是一种单向关系。
4. 合成(Composition)
合成是聚合的一种特殊形式,暗示“局部”在“整体”内部的生存期职责。合成也是非共享的。所以,虽然局部不一定要随整体的销毁而被销毁,但整体要么负责保持局部的存活状态,要么负责将其销毁。
局部不可与其他整体共享。但是,整体可将所有权转交给另一个对象,后者随即将承担生存期职责。Employee和TimeCard的关系或许更适合表示成“合成”,而不是表示成“关联”。
5. 泛化(Generalization)
泛化表示一个更泛化的元素和一个更具体的元素之间的关系。泛化是用于对继承进行建模的UML元素。在Java中,用extends关键字来直接表示这种关系。
6. 实现(Realization)
实例关系指定两个实体之间的一个合同。换言之,一个实体定义一个合同,而另一个实体保证履行该合同。对Java应用程序进行建模时,实现关系可直接用implements关键字来表示。
分享到:
相关推荐
《彩色UML建模》是一本专注于UML(统一建模语言)的书籍,它以其独特的彩色图解方式,为读者提供了一种直观且生动的学习体验。UML是一种广泛使用的建模语言,它用于软件工程中的系统分析和设计,帮助开发者以可视化...
ArgoUML--优秀的UML建模工具MOYU ArgoUML 是一款开源的UML 建模工具,支持所有UML 1.4 的标准图形。它可以运行在任何Java 平台上,并且支持10 种语言(地区语言而不是编程语言)。它用Java构造,并遵守开源的BSD协议...
1.MAC系统:替换Contents/Java文件下的astah-pro.jar文件。astah-gui_zh.properties也复制到这个目录下。 2.Windows系统:复制到安装目录下即可。其中astah-pro.jar替换原文件。 3.包中的两个插件文件可以复制到...
UML建模与J2EE开发,统一建模语言UML,可以完成对基于J2EE的项目建模,同时通过专门的代码生成工具自动生成相应的代码。实现远端接口,实现本地接口Home。只是简单地给出一个EJB源代码和UML图的对应关系,并未涉及用...
MDT-UML2-Runtime-2.2.1插件则将这些功能集成到Eclipse IDE中,使得开发者可以直接在熟悉的开发环境中进行UML建模。 插件的主要功能包括: 1. **模型创建与编辑**:用户可以通过插件创建新的UML模型,或者打开已有...
这个压缩包“ArgoUML-0.34-setup.exe.zip”包含了ArgoUML的安装程序,版本号为0.34,这表明它是一个较早的版本,但依然被广泛用于学习和实践UML建模。 UML是一种标准化的图形表示法,用于系统分析和设计,它将复杂...
本资源提供了C#和Java的UML建模工具源代码,这对于开发者来说是一个宝贵的参考资料,有助于理解和学习如何实现这样的工具,以及如何在实际项目中应用UML。 首先,我们来看看C#的相关知识点。C#是一种面向对象的编程...
**UML建模工具-JUDE-Community(社区版)5.5.2**是一款专为软件开发人员设计的高效、易用的UML建模工具。它支持中文界面,使得国内用户在进行模型设计时更为便捷。在本文中,我们将深入探讨这款工具的核心功能、使用...
包括全套的UML建模图,用例图(3级),类图,顺序图,协作图,状态图,活动图,协作图,部署图。 附有完整的实验报告,报告包括实验内容,需求分析设计方法,思路和主要技术,软件系统建模(包括完整建模图),和三...
### 信息系统建模与UML——面向对象技术深入解析 #### 面向对象技术的基本原则 面向对象技术(OO, Object-Oriented)是一种软件开发方法论,它基于对象的概念来组织和构建软件功能。面向对象技术的核心原则包括封装...
在“汽车租赁系统”的上下文中,UML建模是设计和理解系统结构、行为和关系的一种有效方法。以下是关于这个主题的详细知识点: 1. **UML介绍**:UML是一种通用的、可视化的建模语言,它提供了多种图表类型,如用例图...
UML(Unified Modeling Language),即统一建模语言,是20世纪90年代末由Grady Booch、James Rumbaugh和Ivar Jacobson三位面向对象建模方法论的创始人共同创立的一种标准化的建模语言。UML融合了Booch方法、OMT...
ArgoUML是一款强大的UML建模工具,以其免费、跨平台和易用性赢得了用户的喜爱。通过使用ArgoUML,无论是个人开发者还是团队,都能有效地进行软件设计和项目管理。结合ROSE教材,用户可以深入学习UML理论,提升软件...
**UML建模实例——保险、图书馆、医院** UML(统一建模语言)是一种用于软件系统开发的标准化建模工具,它通过图形化的方式帮助我们理解和表达软件系统的结构和行为。在这个实例中,我们将探讨如何使用UML来对保险...
本教程将详细讲解如何在Linux上利用JUDE进行有效的UML建模。 首先,我们来看Jude的安装过程。在Linux下安装JUDE,你需要访问其官方网站或者通过第三方软件仓库获取下载链接。下载完成后,通常是一个可执行的.jar...
在“考试成绩管理UML建模”这个项目中,我们将关注如何使用Rational Rose这一专业工具来实现考试成绩管理系统的建模工作。 首先,UML是一种图形化语言,它提供了一套标准符号和图示,帮助开发人员理解、记录和沟通...
ArgoUML是一款广受欢迎的开源UML建模工具,支持UML1.4的所有标准图形,适用于多语言环境,能够在任何Java平台上运行。其界面友好,易于上手,同时具备一定的扩展性,是初学者和有经验的开发者都能使用的优秀工具。 ...
PowerDesigner UML 建模简介 PowerDesigner 是一款功能强大且性能优异的 UML 建模工具,由 Sybase, Inc. 开发,支持 UML 1.3 和 UML 2.0 的所有图表,包括用例图、序列图、类图、活动图表和组件图表等。该工具能够...