UMLet的使用与类图的设计
本实验是为后续实验做准备的。在本书中,各个程序实例都要画类图,所以读者必须掌握用某种UML建模工具来画类图,本书选择 UMLet 作为 UML 的建模工具。
实验目的本实验的主要目的如下。
- 理解类的基本概念,掌握如何从需求分析中抽象出类的方法。
- 理解类之间关系,掌握如何分析具体实例中的类之间的关系。
- 掌握在 UMLet 中绘制类图的基本操作方法。
实验原理1. UMLet的使用UMLet 是一款免费且开源的 UML 建模工具,它可以将原型导出为 bmp、eps、gif、jpg、pdf、png、svg 等格式,还可以集成到 Eclipse 中,作为 Eclipse 的插件在 Windows、Mac OS 和 Linux 等平台上运行。它可在 UMLet 官网下载安装。
用 UMLet 建模非常简单,方法如下:首先打开 UMLet,然后在窗体右上侧区域内双击想要添加的对象,该对象将被自动添加到面板中;再选中刚刚添加进来的对象,并在右下角的属性面板中修改该对象的属性;最后保存创建完成的 UML 模型图。如果需要还可将结果导出为其他格式的文件,如图 1 所示。

图1 UMLet 14.2的运行界面
如果要在 Eclipse 中安装 UMLet 插件,其方法如下。
- 下载相关版本的 UMLet 插件的压缩包,然后将解压的文件 com.umlet.plugin-14.2.jar 复制到 Eclipse 下的 plugins 目录下。
- 重启 Eclipse,选择“文件(F)” — 新建(N) ” — “其他(0)…” —“UMlet Diagram”,建立 UML 模型,如图 2 所示。

图2 在Eclipse中安装UMLet插件
UMLet 在 Eclipse 中的使用方法同前面介绍的一样。
2. 类图的UML表示UML 中定义了用例图、类图、对象图、状态图、活动图、时序图、协作图、构件图、部署图等 9 种图形,在“软件设计模式”中经常用到的是类图,所以本实验主要介绍类图的画法,以及类与类之间的关系。
(1) 类类是面向对象系统组织结构的核心,它是对一组具有相同属性、操作、关系和语义的对象的抽象。在 UML 中,类使用带有分隔线的矩形来表示,它包括名称部分(Name)、属性部分(Attribute)和操作部分(Operation)。
其中,属性的表示形式是:[可见性]属性名:类型[=默认值]
操作的表示形式是:[可见性]名称(参数列表)[:返回类型]
注意:“可见性”包括公有(public)、私有(private)、受保护(protected)和朋友(fiiendly)等 4 种,在类图中分别用符号+、-、#、~来表示。
图 3 所示是类的 UML 图形表示方式。

图3 类的UML画法
(2) 类之间的关系在软件系统中,类不是孤立存在的,类与类之间存在各种关系。根据类与类之间的耦合度从弱到强排列,有依赖关系、关联关系、聚合关系、组合关系、泛化关系和实现关系等 6 种,它们的功能在UML中的类图及类图之间的关系一文中已经介绍,下面介绍它们在 UML 中的表示方式。
- 依赖关系(Dependency),使用带箭头的虚线来表示,箭头从使用类指向被依赖的类。
- 关联关系(Association),分为双向关联和单向关联两种。其中,双向关联可以用带两个箭头或者没有箭头的实线来表示,单向关联用带一个箭头的实线来表示,箭头从使用类指向被关联的类。还可以在关联线的两端标注角色名,补充说明它们的角色。
- 聚合关系(Aggregation),用带空心菱形的实线来表示,菱形指向整体。
- 组合关系(Composition),用带实心菱形的实线来表示,菱形指向整体。
- 泛化关系(Generalization),用带空心三角箭头的实线来表示,箭头从子类指向父类。
- 实现关系(Realization),用带空心三角箭头的虚线来表示,箭头从实现类指向接口。
图 4 所示是类之间的关系在 UML 中的图形表示方式。

图4 UML中的类的关系图
实验内容
(1) 通过对“类之间的关系”的学习,在生活中找到相关实例。
(2) 用 UMLet 对以上实例中的类的关系建模。
实验要求所设计的实验必须满足以下两点。
- 类图中至少有一个类包含相关属性和方法,目的是掌握属性和方法的画法。
- 所举的若干实例要包含前面介绍的 UML 类与类之间的 6 种关系,并正确画出其相互关系图。
实验步骤(1)进行需求分析,从生活中提取出相关实例。
(2)分析以上实例,找到相关类并确定它们之间的关系,然后利用 UMLet 画出类以及类之间的关系图,图 5 以对理学家朱熹的介绍为例介绍类图的画法。

图5 UML中的类之间关系实例图
(3)整理实验结果,写出实验的心得体会。
更多技术资讯可关注:itheimaGZ获取
UMLet的使用与类图的设计的更多相关文章
- UML九种图 之 用例图和类图
前言 近期写UML文档,看视频的时候感觉掌握的还能够,当真正写文档的时候才发现不是一件easy的事.写文档自己又翻开自己的笔记看了一遍又一遍. 以下就给大家介绍一下我画的几张图: 用例图 ...
- umlの类图
版权声明:本文为博主原创文章,若要转载请注明出处!^_^ https://blog.csdn.net/u010892841/article/details/24844825 类图class diagr ...
- UML类图与面向对象设计原则
1. 引言 从大一开始学习编程,到如今也已经有两年了.从最初学习的Html,Js,JaveSe,再到JavaEE,Android,自己也能写一些玩具.学习过程中也无意识的了解了一些所谓的设计模 ...
- 设计模式学习(二):面向对象设计原则与UML类图
一.UML类图和面向对象设计原则简介 在学习设计模式之前,需要找我一些预备知识,主要包括UML类图和面向对象设计原则. UML类图可用于描述每一个设计模式的结构以及对模式实例进行说明,而模式结构又是设 ...
- 【软件设计】UML类图怎么看
前言 无论使用哪种语言,都离不开面向过程与面向对象两个流派,而类图是面向对象程序设计中至关重要的一种软件表达形式,如何看懂类图,并设计好的软件架构,是我们作为软件工程师必不可少的技能之一. 今天小黑把 ...
- 《GO Home Trash!》UML类图,ER图以及数据库设计
<Go Home Trash!>UML类图 ER图以及数据库中数据表 分析: 这款软件经过我们前期的讨论以及需求分析,确定了用户,客服以及管理员三个实体.在设计UML类图时,对各个实体之间 ...
- Java开发设计——UML类图
Java开发设计——UML类图 摘要:本文主要介绍了UML类图的相关知识. 简介 在UML中,类使用包含类名.属性和操作且带有分隔线的长方形来表示,类图分为三层. 第一层是类的名称,如果是抽象类或接口 ...
- UML类图的补充及软件设计原则
UML类图的补充及软件设计原则 UML 从目标系统的不同角度出发,定义了用例图.类图.对象图.状态图.活动图.时序图.协作图.构件图.部署图等 9 种图. 1.uml补充 统一建模语言(Unified ...
- 使用工厂方法模式设计能够实现包含加法(+)、减法(-)、乘法(*)、除法(/)四种运算的计算机程序,要求输入两个数和运算符,得到运算结果。要求使用相关的工具绘制UML类图并严格按照类图的设计编写程序实
2.使用工厂方法模式设计能够实现包含加法(+).减法(-).乘法(*).除法(/)四种运算的计算机程序,要求输入两个数和运算符,得到运算结果.要求使用相关的工具绘制UML类图并严格按照类图的设计编写程 ...
随机推荐
- POJ 1200 Crazy Search 字符串的Hash查找
第一次涉及HASH查找的知识 对于字符串的查找有很多前人开发出来的HASH函数,比较常用的好像是ELF 和 BKDR. 这道题没想到突破点是在于其nc值,告诉你组成字符串的字母种类. 还有用26进制, ...
- 黑客攻防技术宝典web实战篇:测试后端组件习题答案
随书答案. 某网络设备提供用于执行设备配置的 Web 界面.为什么这种功能通常易于受 到操作系统命令注入攻击? 用于配置网络设备的应用程序通常包含使用正常的 Web 脚本 API 无法轻松实 现的功能 ...
- iPhone到底能不能充一整夜电?
其实在国内,手机充电一直是个"玄学问题".早在多年前就有大神向小白敦敦教导,"新买的手机要将电用完,并充12个小时,如此反复三次才能延长手机电池寿命".甚至直到 ...
- [转载]matlab视频读取函数VideoReader
看到以前matlab中读取视频多 使用mmreader等(参考<matlab读取/播放视频的函数>),而现在matlab有一个专门的视频读取类VideoReader完成视频读取的功能. 相 ...
- LeetCode——623.在二叉树中增加一行
给定一个二叉树,根节点为第1层,深度为 1.在其第 d 层追加一行值为 v 的节点. 添加规则:给定一个深度值 d (正整数),针对深度为 d-1 层的每一非空节点 N,为 N 创建两个值为 v 的左 ...
- c#学习笔记06——XML
XML概述:eXtensible Markup Language,可扩展标记语言.网络应用开发的一项新技术.同HTML一样是一种标记语言,但是数据描述能力要强很多.XML具有描述所有已知未知数据的能力 ...
- session和token区别
分布式系统认证/授权目前分布式系统存在两种常用的认证授权方式:分布式session和token 1.session的概念 session中存放登录用户的个人信息,创建session时,随机生成一个se ...
- 自由职业平台Upwork申请上市,能给国内猪八戒网带来什么启示?
当下,在互联网的全面渗入下已经对整个社会的运行机制.大众的生活产生了前所未有的影响.尤其是在工作方面,更是衍生出诸多新兴职业.如,主播.水军.新媒体运营.自媒体人等.值得注意的是,这些职业绝大部分都有 ...
- 1027A. Palindromic Twist#变形回文串
题目内容:http://codeforces.com/contest/1027/problem/A 题目解析:输入T组字符串,每个字符串都必须改变一次,每个字母改变的规则是变成相邻的字母,字母a只能变 ...
- 四十、LAMP与LNMP加速与缓存优化进阶实战上部
实例: 一. 所有服务器配置定时时间同步,必须通过web server上网. 有两种方式: 1.服务器A能进行上网,作为web server ,通过指定为ntp服务器,所有服务器访问这个服务器 2.服 ...