本实验是为后续实验做准备的。在本书中,各个程序实例都要画类图,所以读者必须掌握用某种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)整理实验结果,写出实验的心得体会。

UMLet的使用与类图的设计相关推荐

  1. 五.UMLet的使用与类图的设计

    本实验是为后续实验做准备的.在<设计模式>教程中,各个程序实例都要画类图,所以读者必须掌握用某种 UML 建模工具来画类图,本教程选择 UMLet 作为 UML 的建模工具. 实验目的 本 ...

  2. 05 UMLet的使用与类图的设计

    本实验是为后续实验做准备的.在<设计模式>教程中,各个程序实例都要画类图,所以读者必须掌握用某种 UML 建模工具来画类图,本教程选择 UMLet 作为 UML 的建模工具. 实验目的 本 ...

  3. 基础(UML类图,设计原则)

    序言: 面向对象是PHP5之后增加的功能,是PHP走向现代语言的一个标志. 在过程式设计时代,PHP以学习成本低.入门快的特点赢得很多WEB开发者的青睐,但同时也限制了PHP的发展. 借鉴Java和C ...

  4. javascript 绘制uml_js面向对象编程和UML类图的设计

    引言 前端一直以来由于JavaScript的语言特性和一些限制导致不能很好的和Java等强类型语言一样面向对象化编程,导致es6到来以后,class的语法糖或者ts中面向对象编程的设计显得比较薄弱,接 ...

  5. 实用设计软件,自带精美UML类图模板快速作图

    UML类图是什么呢?UML是在计算机软件中的一种建模语言,UML图是设计软件.程序的建模工具.UML图又包括用例图.类图.对象图.活动图等九种图形,他们分别有着不同的作用.UML类图是设计UML图中的 ...

  6. 无法识别依赖属性_设计模式起步-UML学习 - 认识UML类图(依赖)

    UML类图关系依赖 依赖 依赖描述的是两个类之间弱的联系,其中的一个类的变化会影响到另外一个类,这种影响是短暂和偶然的.(这种联系语法上表现为类A不需要持有类B对象作为自己的属性). 依赖关系符号表示 ...

  7. UML之深入浅出类图讲义

    UML之深入浅出类图讲义 在面向对象方法中,类图是最重要的模型图,它描述了系统中各个对象的类型和它们之间存在的各种关系.建立类图是建模中最基本的任务. 一张类图应该注重表达系统静态结构的一个方面,这意 ...

  8. VS 2010 通过 Architecture创建UML类图设计

    [赛迪网报道]类是对应用领域或应用解决方案中概念的描述.类图以类为中心进行组织,类图中的其他元素或属于某个类,或与类相关联.类也是对象的集合,展示了对象的结构及与系统交互的行为,其目的是显示建模系统的 ...

  9. 【系统分析与设计】UML类图绘制方法(真の能看懂~!)

    文章目录 1 类的基本表示方式 2 类之间关系的表示方式 所有的面向对象(Object Oriented)语言都离不开类的概念,理解了程序中类的设计也就理解了程序的一半.但类的具体描述方式在各个类中都 ...

最新文章

  1. 网友问答之:AD、DNS转发器、WINS不能自动启动
  2. 生成对象---工厂方法模式
  3. mysql1064 at line 6,MySQL错误1064语法,但一切似乎都很好
  4. 如何有效的在 LINQ 查询中处理异常?
  5. qt 创建文件_xmake从入门到精通2:创建和编译工程
  6. 将学校版JAVA系统迁移到Mysql数据库的工作安排
  7. @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class}) 注解的作用
  8. 距离一个优秀程序员,你还差多少?
  9. 毕设题目:Matlab优化分配
  10. Oracle 11g数据库基础教程(第2版)-课后习题-第十三章
  11. 单位工作制度牌展示_员工工号牌管理制度
  12. SteamVR简介(Yanlz+Steam+VR+Unity+AR+MR+XR+立钻哥哥+==)
  13. imdisk虚拟光驱安装linux,imdisk使用教程_Imdisk工具使用方法介绍_imdisk_imdisk虚拟光驱...
  14. V部落博客管理平台开源啦! Vue+SpringBoot强强联合!
  15. Excel 表格数据去重
  16. 独孤思维:哇,看到三点式又激动了
  17. Android api升级到31 导致的兼容性问题
  18. iPhone预计移除SIM卡槽,用户需通过eSIM激活网络
  19. 技术平台分层体系-应用开发者看待容器技术带来的变化
  20. 十年技术进阶路,让我明白了三件要事(8000字长文)

热门文章

  1. java 调用codesoft_怎么用java调用用codesoft设计的条形码文档
  2. “守住养老钱·幸福享晚年”
  3. Python实现最短路问题常见求解算法1——Label Correcting Algorithm(deque)
  4. 要有成为真正JNCIE的勇气
  5. Axis-Onvif-PTZ(安迅士摄像头控制设置)
  6. java-net-php-python-jspm高校食堂点餐系统演示录像2019计算机毕业设计程序
  7. 嵌入式开发--RS-485通讯的问题
  8. 《香帅财富报告——分化时代的财富选择》Aphrodite Wealth Trends 香帅/著 读后感2021-02-13
  9. 装饰工程预结算教程电子书_工程预结算中材料价格调整和土建造价指标的一些事...
  10. ultraEdit格式化代码