A. 请问uml怎么画关联和类图间的虚线
打开visio画图软件,在左边的导航中选择“软件”选项,在右边会有很多图,我们会看到UML图
我们会进入画图的界面,在上面导航区有个百分比的选项,默认的画图区域比较小,我们可以调整百分比,更方便自己画图
在左边的导航里有很多相关的组件,只要点击大标题即可展开,我们可以根据自己的需要选择想要的类、依赖关系等组件,如果你用的很熟的话也可以在上面搜索得到你想到的组件
在左边的导航里有很多相关的组件,只要点击大标题即可展开,我们可以根据自己的需要选择想要的类、依赖关系等组件,如果你用的很熟的话也可以在上面搜索得到你想到的组件。
组件需要改变其名字,我们只要鼠标双击,便可以改变组件的名字,属性,得到我们想到的组件名称等。
组件需要改变其名字,我们只要鼠标双击,便可以改变组件的名字,属性,得到我们想到的组件名称等。
B. uml 类图
应该是依赖关系。A类实例化B类所以应该A依赖于B
A----->B 图 应该这么画
构造方法也是方法啊,肯定写在方法里
UML类图的构成就是类名,变量,方法。
另外,你表示类之间的关系,画的是UML图中的类图,类图中关系的类型有
一般化(泛化)/关联/聚合/合成/依赖/这几种
C. 如何应用uml类图绘制系统的类及类之间的关系
第五十七回柴桑口卧龙吊丧耒阳县凤雏理事第五十八回马孟起兴兵雪恨曹阿瞒割须弃袍
D. UML类图依赖关系和关联关系的区别
1.依赖关系(Dependencies)
UML类图依赖关系是一种使用关系,特定事物的改变有可能会影响到使用该事物的事物,反之不成立。在你想显示一个事物使用另一个事物时使用,两个元
素之间的一种关系,其中一个元素(服务者)的变化将影响另一个元素(客户),或向它(客户)提供所需信息。它是一种组成不同模型关系的简便方法。依赖表示
两个或多个模型元素之间语义上的关系。它只将模型元素本身连接起来而不需要用一组实例来表达它的意思。它表示了这样一种情形,提供者的某些变化会要求或指
示依赖关系中客户的变化。
根据这个定义,关联和泛化都是依赖关系,但是它们有更特别的语义,故它们有自己的名字和详细的语义。我们通常用依赖这个词来指其他的关系。依赖用一
个从客户指向提供者的虚箭头表示,用一个构造型的关键字来区分它的种类,通常情况下,UML类图依赖关系体现在某个类的方法使用另一个类作为参数。
2.关联关系(Association)
关联是一种结构化的关系,指一种对象和另一种对象有联系。给定有关联的两个类,可以从一个类的对象得到另一个类的对象。关联有两元关系和多元关系。
两元关系是指一种一对一的关系,多元关系是一对多或多对一的关系。一般用实线连接有关联的同一个类或不同的两个类。当你想要表示结构化关系时使用关联,如
果几个类元的实例之间有联系,那么这几个类元之间的语义关系即关联。关联描述了系统中对象或实例之间的离散连接。
关联将一个含有两个或多个有序表的类元,在允许复制的情况下连接起来。最普通的关联是一对类元之间的二元关联。关联的实例之一是链。每个链由一组对
象(一个有序列表)构成,每个对象来自于相应的类。二元链包含一对对象。关联带有系统中各个对象之间关系的信息。当系统执行时,对象之间的连接被建立和销
毁。关联关系是整个系统中使用的“胶粘剂”,如果没有它,那么只剩下不能一起工作的孤立的类。在关联中如果同一个类出现不止一次,那么一个单独的对象就可
以与自己关联。如果同一个类在一个关联中出现两次,那么两个实例就不必是同一个对象,通常的情况都如此。二元关联用一条连接两个类的连线表示。
聚集表示部分与整体关系的关联,它用端点带有空菱形的线段表示,空菱形与聚集类相连接。组成是更强形式的关联,整体有管理部分的特有的职责,它用一
个实菱形物附在组成端表示。每个表示部分的类与表示整体的类之间有单独的关联,但是为了方便起见,连线结合在一起,现在整组关联就像一棵树。
E. UML类图怎么画
用过draw.io、StarUML. 、MagicDraw、亿图图示,最后确定了国产亿图图示,使用习惯和符号元素、操作上都是我的参考,你可以试用下
F. UML类图怎么画
UML 类图简介 UML 对很多人来说应该不是一个陌生的概念,这一两年来,UML 被大家越来越多的讨论着。本来 UML 跟我这个主题似乎并不能扯上多大的关系(它是语言无关的,甚至可以说其本身就是一种语言——用于交流的)。我在此谈到它有两个目的: 1. UML 是针对面向对象软件开发的,而 C++正是这样的一种语言 2. UML 在设计中被越来越多的使用着,而下一篇杂谈准备讨论设计模式,如果不了解 UML,那么无法进行下去 UML,全称:Unified Modeling Language,其目的是为了对软件密集型的制品进行可视化、详述、构造和文档化的图形语言。UML 是依据许多前人的思想总结出的成果,1997 年被 OMG 通过并成为标准(所以在《设计模式》书中如果你看到与标准不一样的地方,不要奇怪,那本书是 95 年的)。关于 UML 的历史和更详细的描述,可以参考《UML 参考手册》。UML 主要由一系列视图组成,其中包括静态视图(Static vi ew),用例视图(Use case view)活动视图(Acti vity view)等,不同的图用处自然也不一样,而对开发人员来讲(或者说为我的下一篇来说),更重要的应该是静态视图中的类图(class diagram)和交互视图(Interaction view)中的顺序图(Sequence diagram),请注意 view 和 diagram 的区别。 类图 静态视图说明了对象的结构,其中最常用的就是类图,类图可以帮助我们更直观的了解一个系统的体系结构,有时侯,描述系统快照的对象图(Object diagram)也是很有用的。在这里,我们主要介绍类图,下面的图就是一个简单的类图: 在类图中,类由矩形框来表示,如上图中,定义了 4 个类,分别为 Base、A、B、 C,类之间的关系通过各种线条和其他符号来表示,在上图中,空心的三角表示继承关系,在 UML 的术语中,这种关系被称为泛化(Generalization),所以上面的类用等价代码表示为: class Base{…}; class A:public Base{…}; class B:public Base{…}; class C:public Base{…}; 我们再看下一幅图: 这幅图与上幅几乎没有什么区别,唯一的不同就是 Base 类中增加了成员,一个私有的 integer _x(UML 术语为 property)和一个公有的 fun()的函数(method),是否需要这些类的内部细节 UML 本身并没有限制,完全取决于你自己如何使用, UML 的用处在于帮助你了解系统,所以只要你自己觉得足够清楚,那么够了,不要再复杂了。 接着看第三幅图: 上面图中的箭头表示一种关系,箭头另一边有一个菱形(空心)表示聚合(aggregation),聚合的意义表示 has-a 关系,其等价代码如下: class A{…}; class B{ A* theA;…}; 聚合是一种相对松散的关系,聚合类 B 不需要对被聚合的类 A 负责。 下面的图: 这幅图与上面的唯一区别是菱形为实心的,它代表了一种更为坚固的关系——组合(composition)。组合表示的关系也是 has-a,不过在这里,A 的生命期受 B 控制,通常情况,等价代码如下: class A{…}; class B{A theA;…}; 即 A 会随着 B 的创建而创建,随 B 的消亡而消亡。 下图: 这里 B 与 A 的关系只是一种依赖关系,这种关系表明,如果类 A 被修改,那么类 B 会受到影响,一个简单的例子就是: class A{…}; class B{fun(A params);…}; 常用的关系就是我们上面用的这些,通过这些关系和类表示的类图,我们可以用图形化的方式描述一个系统的设计部分,当你习惯使用 UML 后,你会发现,这往往比你告诉同伴某某类从某某类派生,派生类又和某某类具有什么关系容易的多。 顺序图: UML 中另外一个常用的图形就是交互视图中的顺序图,在以往的过程化语言中,我们通常使用流程图来描述一个函数(系统)是如何工作的,而在面向对象的系统中,这显然是不可行的,而顺序图正是来解决这个问题的。 假设有如下的伪代码: class circle { public: void fillcolor() { // ... }; void draw() { fillcolor(); }; }; class window { public: void drawcircle() { _circle.draw(); }; private: circle _circle; }; 对于下面的调用: window wnd; wnd.drawcircle(); 对应的顺序图如下: 图中上方的方块表示参与的对象,垂直的虚线表示对象的生命线,方框表示激活,其中箭头表示了一个调用消息(也可以有回送 return),如果是异步的消息,则用半箭头表示,其中 draw 表示了一个自调用(self call) 至此,UML 中最常用的(从开发人员的角度),当然 UML 的内容远远不只这些,这里的介绍只是一些简单的概括,并且 UML 本身也在不断的发展之中,无论怎样,我觉得 UML 会越来越多的深入我们的开发过程中,特别是对下一篇我们要介绍的设计模式而言,类图是主要的描述工具(到那个时候你会体会到 UML 描述的优越)。 如果你看过《设计模式》着本书,你会发现与我上面所描述的有一些细微的不同,不要紧张,《设计模式》是 GOF95 年的作品,那时候 UML 还没有形成,而且,其中也明确那是 OMT 方法(Jim Rumbaugh 在通用电气发表的建模技术——Object Modeling Technique)和 Booch 方法。
G. 如何用OmniGraffle画UML类图
你好,希望我的回答能帮到你,首先简单介绍一下类图,在UML的静态机制中,类图是一个重点,它不但是设计人员关心的核心,更是实现人员关注的核心。类图有三个要素:类名、属性和操作。绘制类图并不难,Omnigraffle自带类图模板,所以不需要费什么功夫就能绘制完成。单击右侧的“型版”按钮,在菜单栏中找到“图表”模块,在图表下选择“UX套件UML”,下方会出现“UX套件UML”模块,前几项就是类图模板,直接用鼠标拖动到画布上即可。
类图中需要添加文字信息,双击类图模板中的原英文就能修改文字,还可以对类图本身和文本填充颜色,这些都在“对象”检查器里:在填充检查器里可以填充类图颜色,字体检查器可以更改文本的字体和颜色。
类图不是单独一个,几个类连接在一起才是完整的类图,连接线可以显示类与类之间的关系,所以连接线也是类图的重要部分,类图的连接线可以是直线,或者是单向和双向箭头,这一点和流程图不同,连接线也是在型版里,“UX套件UML”下方是“UX套件连接”,这个模块里就有不少连接线选择,根据自己的需求选用即可网页链接。
H. 面向对象技术与uml,画对象类图
标准建模语言UML的重要内容可以由下列五类图(共9种图形)来定义:
·第一类是用例图
从用户角度描述系统功能,并指出各功能的操作者.
·第二类是静态图(Static
diagram)
包括类图、对象图和包图.其中类图描述系统中类的静态结构.不仅定义系统中的类,表示类之间的联系如关联、依赖、聚合等,也包括类的内部结构(类的属性和操作).类图描述的是一种静态关系,在系统的整个生命周期都是有效的.对象图是类图的实例,几乎使用与类图完全相同的标识.他们的不同点在于对象图显示类的多个对象实例,而不是实际的类.一个对象图是类图的一个实例.由于对象存在生命周期,因此对象图只能在系统某一时间段存在.包由包或类组成,表示包与包之间的关系.包图用于描述系统的分层结构.
·第三类是行为图(Behavior
diagram)
描述系统的动态模型和组成对象间的交互关系.其中状态图描述类的对象所有可能的状态以及事件发生时状态的转移条件.通常,状态图是对类图的补充.在实用上并不需要为所有的类画状态图,仅为那些有多个状态其行为受外界环境的影响并且发生改变的类画状态图.而活动图描述满足用例要求所要进行的活动以及活动间的约束关系,有利于识别并行活动.
·第四类是交互图(Interactive
diagram)
描述对象间的交互关系.其中顺序图显示对象之间的动态合作关系,它强调对象之间消息发送的顺序,同时显示对象之间的交互;合作图描述对象间的协作关系,合作图跟顺序图相似,显示对象间的动态合作关系.除显示信息交换外,合作图还显示对象以及它们之间的关系.如果强调时间和顺序,则使用顺序图;如果强调上下级关系,则选择合作图.这两种图合称为交互图.
·第五类是实现图(
Implementation
diagram
).其中
构件图描述代码部件的物理结构及各部件之间的依赖关系.一个部件可能是一个资源代码部件、一个二进制部件或一个可执行部件.它包含逻辑类或实现类的有关信息.部件图有助于分析和理解部件之间的相互影响程度.
配置图定义系统中软硬件的物理体系结构.它可以显示实际的计算机和设备(用节点表示)以及它们之间的连接关系,也可显示连接的类型及部件之间的依赖性.在节点内部,放置可执行部件和对象以显示节点跟可执行软件单元的对应关系.
从应用的角度看,当采用面向对象技术设计系统时,首先是描述需求;其次根据需求建立系统的静态模型,以构造系统的结构;第三步是描述系统的行为.其中在第一步与第二步中所建立的模型都是静态的,包括用例图、类图(包含包)、对象图、组件图和配置图等五个图形,是标准建模语言UML的静态建模机制.其中第三步中所建立的模型或者可以执行,或者表示执行时的时序状态或交互关系.它包括状态图、活动图、顺序图和合作图等四个图形,是标准建模语言UML的动态建模机制.因此,标准建模语言UML的主要内容也可以归纳为静态建模机制和动态建模机制两大类.
I. uml中类图之间有几种关系
在uml类图中,常见的有以下几种关系:泛化(generalization),
实现(realization),关联(association),聚合(aggregation),组合(composition),依赖(dependency)
1.泛化(generalization)【泛化关系】:是一种继承关系,它指定了子类如何特化父类的所有特征和行为例如:老虎是动物的一种.【箭头指向】:带三角箭头的实线,箭头指向父类2.实现(realization)【实现关系】:是一种类与接口的关系,表示类是接口所有特征和行为的实现【箭头指向】:带三角箭头的虚线,箭头指向接口3.关联(association)【关联关系】:是一种拥有的关系,它使一个类知道另一个类的属性和方法;如:老师与学生,丈夫与妻子关联可以是双向的,也可以是单向的。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。【代码体现】:成员变量【箭头及指向】:带普通箭头的实心线,指向被拥有者
上图中,老师与学生是双向关联,老师有多名学生,学生也可能有多名老师。但学生与某课程间的关系为单向关联,一名学生可能要上多门课程,课程是个抽象的东西他不拥有学生。
上图为自身关联:
4.
聚合(aggregation)【聚合关系】:是整体与部分的关系.如车和轮胎是整体和部分的关系.聚合关系是关联关系的一种,是强的关联关系;关联和聚合在语法上无法区分,必须考察具体的逻辑关系。【代码体现】:成员变量【箭头及指向】:带空心菱形的实心线,菱形指向整体
5.
组合(composition)【组合关系】:是整体与部分的关系.,没有公司就不存在部门
组合关系是关联关系的一种,是比聚合关系还要强的关系,它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期【代码体现】:成员变量【箭头及指向】:带实心菱形的实线,菱形指向整体
6.
依赖(dependency)【依赖关系】:是一种使用的关系,所以要尽量不使用双向的互相依赖。【代码表现】:局部变量、方法的参数或者对静态方法的调用【箭头及指向】:带箭头的虚线,指向被使用者各种关系的强弱顺序:泛化=
实现>
组合>
聚合>
关联>
依赖下面这张uml图,比较形象地展示了各种类图关系: