《数据结构与抽象:Java语言描述(原书第4版)》一P.4.3 统一建模语言

P.4.3 统一建模语言

图P-4中的用例图是更强大表示法的一部分,这个表示法称为统一建模语言(Unified Modeling Language,UML)。设计人员使用UML来说明软件系统中必需的类及它们的关系。UML能给出复杂系统的整体视图,比用自然语言或程序设计语言描述更有效。例如,英语可能有二义性,而Java代码提供更多的细节。给出明确的类之间的交互图,是UML的强项之一。
除了用例图之外,UML还能提供图,类图将每个类的描述放在类似于CRC卡的方框中。方框内包含类名、它的属性(attribute)(数据域)和操作(operation)(方法)。例如,图P-7显示了类CourseSchedule的方框。一般地,方框中省略了构造方法、get方法和set方法等公共操作。
随着设计的进展,当你描述一个类时你可以提供更多的细节。表示域或方法的可见性时,可以在其名字前加上一个符号,+用于公有的,-用于私有的,而#用于保护的。还可以在域、参数或返回值后加上一个冒号(:),然后写上它的数据类型。因此,在图P-7中可以有如下的数据域

而方法如下

在UML中表示接口非常类似于表示类的方式,只是要在名字前加上<>。接口Measurable的表示如图P-8所示。

自测题10 附录C中给出的类Name的类图是什么样的?

在类图中,线连接了类的方框,表示类之间的关系,包括继承层次。例如,图P-9中的类图表示类Undergrad
Student和GradStudent都继承自Student类。空心箭头指向父类。在UML中,父类Student称为UndergradStudent
和GradStudent的泛化(generalization)。如果类实现了一个接口,则从类到接口画一条有空心箭头的虚线。

关联(association)是两个不同类的对象之间的关系。一般地,关联是称为协作的CRC卡。例如,类Student、CourseSchedule和Course之间存在的关系。图P-10表示UML如何用箭头表示这些关系。例如,类CourseSchedule
和Course之间的箭头,表示类CourseSchedule的对象和类Course的对象之间的关系。这个箭头指向Course,表示职责。所以,CourseSchedule对象应该能告诉我们它包含的课程,但Course对象不能告诉我们它属于哪个课程表。UML称这种表示为可导航性(navigability)。

这种特殊的关联称为单向的(unidirectional),因为它的箭头指向一个方向。两端都有箭头的线表示的关联称为双向的(bidirectional)。例如,Student对象能找到它的课程表,而CourseSchedule对象能找到它所属的学生。可以假定不带箭头的线表示的关联的可导航性,在设计的当前阶段尚未确定。
每个箭头的末端都是数字。在CourseSchedule和Course之间的箭头的前端,你看见标注为0..10。这个符号表示每个CourseSchedule对象与0~10门课程关联。这个箭头的另一端是星号。它的含义与记号0..∞是一样的。每个Course对象可以与许多课程表相关联——或者一个都不关联。类图还表示一个Student对象和一个CourseSchedule对象之间的关系。箭头两端的这个记号称为关联的基数(cardinality)或多样性(multiplicity)。

自测题11 将图P-9和图P-10合成为一个类图。然后添加类AllCourses,它表示本学期开设的所有课程。你需要添加的新关联有哪些?
时间: 2024-08-02 04:55:08

《数据结构与抽象:Java语言描述(原书第4版)》一P.4.3 统一建模语言的相关文章

《机器学习与R语言(原书第2版)》一2.3 探索和理解数据

本节书摘来自华章出版社<机器学习与R语言(原书第2版)>一书中的第2章,第2.3节,美] 布雷特·兰茨(Brett Lantz) 著,李洪成 许金炜 李舰 译更多章节内容可以访问"华章计算机"公众号查看. 2.3 探索和理解数据 在收集数据并把它们载入R数据结构以后,机器学习的下一个步骤是仔细检查数据.在这个步骤中,你将开始探索数据的特征和案例,并且找到数据的独特之处.你对数据的理解越深刻,你将会更好地让机器学习模型匹配你的学习问题. 理解数据探索的最好方法就是通过例子.在

《机器学习与R语言(原书第2版)》一第3章 懒惰学习——使用近邻分类

本节书摘来自华章出版社<机器学习与R语言(原书第2版)>一书中的第3章,第3.1节,美] 布雷特·兰茨(Brett Lantz) 著,李洪成 许金炜 李舰 译更多章节内容可以访问"华章计算机"公众号查看. 第3章 懒惰学习--使用近邻分类 一种新型有趣的餐饮体验已经出现在世界各地的城市中,顾客在一个完全黑暗的餐厅里接受服务,而服务员在仅凭触觉和听觉记忆的路上小心地移动.这些餐厅的魅力在于这样的信仰:去掉一个人的视觉感官输入将会增强他的味觉和嗅觉,从而可以使他以一种全新的方式

《机器学习与R语言(原书第2版)》一1.3 机器如何学习

本节书摘来自华章出版社<机器学习与R语言(原书第2版)>一书中的第1章,第1.3节,美] 布雷特·兰茨(Brett Lantz) 著,李洪成 许金炜 李舰 译更多章节内容可以访问"华章计算机"公众号查看. 1.3 机器如何学习 机器学习的一个正式定义是由计算机科学家Tom M. Mitchell提出的:如果机器能够获取经验并且能利用它们,在以后的类似经验中能够提高它的表现,这就称为机器学习.尽管这个定义是直观的,但是它完全忽略了经验如何转换成未来行动的过程,当然学习总是说起

《机器学习与R语言(原书第2版)》一1.6 总结

本节书摘来自华章出版社<机器学习与R语言(原书第2版)>一书中的第1章,第1.6节,美] 布雷特·兰茨(Brett Lantz) 著,李洪成 许金炜 李舰 译更多章节内容可以访问"华章计算机"公众号查看. 1.6 总结 机器学习起源于统计学.数据库科学和计算机科学的交叉.它是一个强大的工具,能够在大量的数据中找到可行动的洞察.然而,人们仍需持谨慎的态度,避免现实生活中机器学习的普遍滥用. 从概念上讲,机器学习涉及把数据抽象为结构化表示,并把这个结构化表示进行一般化从而推广到

《机器学习与R语言(原书第2版)》一1.5 使用R进行机器学习

本节书摘来自华章出版社<机器学习与R语言(原书第2版)>一书中的第1章,第1.5节,美] 布雷特·兰茨(Brett Lantz) 著,李洪成 许金炜 李舰 译更多章节内容可以访问"华章计算机"公众号查看. 1.5 使用R进行机器学习 机器学习所需要的很多算法都没有包含在R的基本安装中.但一个很大社区的专家免费分享他们的机器学习成果,机器学习所需要的算法就是通过这种方式得到.这些必须通过手动方式安装在R基础安装包之上.多亏R是免费的开源软件,没有为这种功能额外收费.那些能在用

《机器学习与R语言(原书第2版)》一 第2章 数据的管理和理解

本节书摘来自华章出版社<机器学习与R语言(原书第2版)>一书中的第2章,第2.1节,美] 布雷特·兰茨(Brett Lantz) 著,李洪成 许金炜 李舰 译更多章节内容可以访问"华章计算机"公众号查看. 第2章 数据的管理和理解 任何机器学习项目初期的核心部分都是与管理和理解所收集的数据有关的.尽管你可能发现这些工作不像建立和部署模型那样令人有成就感(建立和部署模型阶段就开始看到了劳动的成果),但是忽视这些重要的准备工作是不明智的.任何学习算法的好坏取决于输入数据的好坏.

机器学习与R语言(原书第2版)》一1.4 实践中的机器学习

本节书摘来自华章出版社<机器学习与R语言(原书第2版)>一书中的第1章,第1.4节,美] 布雷特·兰茨(Brett Lantz) 著,李洪成 许金炜 李舰 译更多章节内容可以访问"华章计算机"公众号查看. 1.4 实践中的机器学习 到目前为止,我们已经讲述了理论上机器学习是如何工作的.为了把机器学习应用到真实世界的任务中,我们将采用由5个步骤构成的过程.不管你手头是何种任务,任何机器学习算法都能由下面这些步骤来实施:1)数据收集:数据收集步骤包括收集算法用来生成可行动知识的

《机器学习与R语言(原书第2版)》一2.2 用R管理数据

本节书摘来自华章出版社<机器学习与R语言(原书第2版)>一书中的第2章,第2.2节,美] 布雷特·兰茨(Brett Lantz) 著,李洪成 许金炜 李舰 译更多章节内容可以访问"华章计算机"公众号查看. 2.2 用R管理数据 当处理大量数据集时,面临的挑战包括收集.准备和管理来自各种不同来源的数据.尽管通过学习后面章节中的真实世界的机器学习任务,我们会深入地涉及数据准备.数据清理和数据管理,但本节重点讲述基本的R数据导入和导出功能. 2.2.1 保存.载入和移除R数据结构

《机器学习与R语言(原书第2版)》一 第1章 机器学习简介

本节书摘来自华章出版社<机器学习与R语言(原书第2版)>一书中的第1章,第1.1节,美] 布雷特·兰茨(Brett Lantz) 著,李洪成 许金炜 李舰 译更多章节内容可以访问"华章计算机"公众号查看. 第1章 机器学习简介 如果科幻故事是可信的,那么人工智能的发明将会不可避免地导致机器和其制造者之间的末日战争.在计算机使用的早期,计算机被教会玩井字棋和国际象棋这样一些简单的游戏.后来,机器被用来控制交通信号灯和通信,随后用来控制军用无人机和导弹.一旦计算机有感知力并且知

《机器学习与R语言(原书第2版)》一2.4 总结

本节书摘来自华章出版社<机器学习与R语言(原书第2版)>一书中的第2章,第2.4节,美] 布雷特·兰茨(Brett Lantz) 著,李洪成 许金炜 李舰 译更多章节内容可以访问"华章计算机"公众号查看. 2.4 总结 在本章中,我们学习了在R中管理数据的基础.从深入剖析用来存储不同类型数据的数据结构开始.R数据的基本结构是向量,它扩展和组合成更复杂的数据结构,比如,列表和数据框.数据框是与数据集概念相联系的R数据结构,数据框内同时有特征和案例.R提供了从电子表格类的数据文