类图及绘制工具:StarUML

Unified Modeling Language (UML)又称统一建模语言标准建模语言,是始于1997年一个OMG标准,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,包括由需求分析到规格,到构造和配置。

面向对象的分析与设计(OOA&D,OOAD)方法的发展在80年代末至90年代中出现了一个高潮,而UML就是这个高潮的产物。

OMG:对象管理组织(Object Management Group)


UML由3个要素构成:UML的基本构造块、支配这些构造块如何放置在一起的规则和运用于整个语言的公用机制。

UML有3种基本的构造块:事物、关系和图。
事物是对模型中最具有代表性的成分的抽象,包括结构事物,如:类(Class)、接口(Interface)、协作(Collaboration)、用例(UseCase)、主动类(ActiveClass)、组件(Component)和节点(Node);行为事物,如交互(Interaction)、态机(Statemachine)、分组事物(包,Package)、注释事物(注解,Note)。
关系用来把事物结合在一起,包括:依赖、关联、泛化和实现关系。





UML中有九种建模的图标,即:
用例图、类图、对象图、顺序图、协作图、状态图、活动图、组件图、配置图

用例图 Use case diagrams
描述了作为一个外部的观察者的视角对系统的印象。强调这个系统是什么而不是这个系统怎么工作。
用例图与情节紧紧相关的。情节scenario是指当某个人与系统进行互动时发生的情况。

用例图在三个领域很有作用:
1.决定特征(需求)。当系统已经分析好并且设计成型时,新的用例产生新的需求;
2.客户通讯。使用用例图很容易表示开发者与客户之间的联系;
3.产生测试用例。一个用例的情节可能产生这些情节的一批测试用例。


类图 Class diagram
通过显示出系统的类以及这些类之间的关系来表示系统。类图是静态的———它们显示出什么可以产生影响但不会告诉你什么时候产生影响。

UML类的符号是一个被划分成三块的方框:类名,属性,和操作。抽象类的名字,是斜体的。类之间的关系是连接线。

类图有三种关系:
1.关联association-表示两种类的实例间的关系。如果一个类的实例必须要用另一个类的实例才能完成工作时就要用关联。在图中,关联用两个类之间的连线表示;
2.聚合aggregation-当一个类属于一个容器是的一种特殊关系。聚合用一个带菱形的连线,菱形指向具有整体性质的类。在我们的图里,Order是OrderDetails的容器;
3.泛化generalization-一个指向以其他类作为超类的继承连线。泛化关系用一个三角形指向超类。Payment是Cash,Check和Credit的超类。


包和对象图
为了简单地表示出复杂的类图,可以把类组合成包packages。一个包是UML上有逻辑关系的元件的集合。


顺序图
为交互图,是动态的(它们描述了对象间的交互作用)。

顺序图将交互关系表示为一个二维图。纵向是时间轴,时间沿竖线向下延伸。横向轴代表了在协作中各独立对象的类元角色。类元角色用生命线表示。当对象存在时,角色用一条虚线表示,当对象的过程处于激活状态时,生命线是一个双道线。

消息用从一个对象的生命线到另一个对象生命线的箭头表示。箭头以时间顺序在图中从上到下排列。


协作图
协作图也是互动的图表。他们像序列图一样也传递相同的信息,但他们不关心什么时候消息被传递,只关心对象的角色。在序列图中,对象的角色放在上面而消息则是连接线。

对象角色矩形上标有类或对象名(或者都有)。类名前面有个冒号(:)。
协作图的每个消息都有一个序列号。顶层消息的数字是1。同一个等级的消息(也就是同一个调用中的消息)有同样的数字前缀,再根据他们出现的顺序增加一个后缀1,2等等。


状态图
对象拥有行为和状态。对象的状态是由对象当前的行动和条件决定的。状态图statechart diagram显示出了对象可能的状态以及由状态改变而导致的转移。
状态是用圆角矩形来表示的。转移则是使用带箭头的连线表示。触发转移的事件或者条件写在箭头的旁边。
初始状态(黑色圆圈)是开始动作的虚拟开始。结束状态也是动作的虚拟结束。
事件或条件触发动作时用(/动作)表示。动作的结果决定了下一步的状态。


活动图 activity diagram
活动图是一个很特别的流程图。活动图和状态图之间是有关系的。状态图把焦点集中在过程中的对象身上,而活动图则集中在一个单独过程动作流程。活动图告诉了我们活动之间的依赖关系。
转移可能分支branch成两个以上的互斥的转移。保护表达式(在[ ]中)表示转移是从一个分支中引出的。分支以及分支结束时的合并merge在图中用菱形表示。
转移也可以分解fork成两个以上的并行活动。分解以及分解结束时的线程结合join在图中用粗黑线表示。


组件图
组件 component 是代码模块。组件图是是类图的物理实现。


配置图 Deployment diagrams
显示软件及硬件的配置。
物理上的硬件使用节点nodes表示。每个组件属于一个节点。组件用左上角带有两个小矩形的矩形表示。


详细内容参考





这里就主要讲解一下类图的要点:

UML类图常见的几种关系:

  • 泛化(Generalization)
    是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为。
    例如:人是动物的一种,即有人的特性也有动物的共性。
    箭头指向:带三角箭头的实线,箭头指向父类

    泛化


  • 实现(Realization)
    是一种类与接口的关系,表示类是接口所有特征和行为的实现.
    箭头指向:带三角箭头的虚线,箭头指向接口

    实现


  • 关联(Association)
    是一种拥有的关系,它使一个类知道另一个类的属性和方法;如:老师与学生,丈夫与妻子关联可以是双向的,也可以是单向的。
    双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。
    代码体现:成员变量
    箭头及指向:带普通箭头的实心线,指向被拥有者

    关联

    老师与学生是双向关联,老师有多名学生,学生也可能有多名老师。但学生与某课程间的关系为单向关联,一名学生可能要上多门课程,课程是个抽象的东西他不拥有学生。

    ⭐️特殊情况:自身关联

    自身关联


  • 聚合(Aggregation)
    聚合是整体与部分的关系,且部分可以离开整体而单独存在。如车和轮胎是整体和部分的关系,轮胎离开车仍然可以存在。

    聚合关系是关联关系的一种,是强的关联关系;关联和聚合在语法上无法区分,必须考察具体的逻辑关系。
    代码体现:成员变量
    箭头及指向:带空心菱形的实心线,菱形指向整体

    聚合


  • 组合(Composition)
    是整体与部分的关系,但部分不能离开整体而单独存在。如公司和部门是整体和部分的关系,没有公司就不存在部门。
    组合关系是关联关系的一种,是比聚合关系还要强的关系,它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期。
    代码体现:成员变量
    箭头及指向:带实心菱形的实线,菱形指向整体

    组合


  • 依赖(Dependency)
    是一种使用的关系,即一个类的实现需要另一个类的协助,所以要尽量不使用双向的互相依赖.
    代码表现:局部变量、方法的参数或者对静态方法的调用
    箭头及指向:带箭头的虚线,指向被使用者

    依赖





各种关系的强弱顺序:
  泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖 



StarUML

** 棒子国的产品 **
优点:跨平台,在mac下也可以用,和windows下效果一样,很方便和统一。

棒子国🇰🇷 产品 StarUML


操作界面很宽阔 想怎么画就怎么画
操作界面


在侧边栏,选择相应的对象进行添加:
选择相应的对象进行添加

未点击要添加的对象前,鼠标状态提示:
未点击前

点击要添加的对象后,鼠标状态提示:
点击要添加的对象后

接下来就可以添加对象的,如下图:(添加一个类)
绘制图形

再为该类添加属性、方法:
设置类的属性、方法


在绘制界面上使用“delete”按键删除无效。
所有对象的删除 必须右键点击删除!! 或者使用快捷键:Command + “delete”

1.右键点击删除!! </br>2.快捷键:Command + “delete”


其他操作就自己去摸索吧!这些操作性的东西玩一下就会了!


StarUML绘图效果 及 其中的格式
附加绘图🌰:类图各个关系的强弱顺序
StarUML绘图效果 及 格式

哎~!公司叫我写SDK,还要画类图。之前完全没搞过,一脸懵逼!人都憔悴了~大概讲解一下类图和StarUML的基本使用!

后续如有细节的操作!日后自会添加~

















goyohol's essay

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 151,829评论 1 331
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 64,603评论 1 273
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 101,846评论 0 226
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 42,600评论 0 191
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 50,780评论 3 272
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 39,695评论 1 192
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,136评论 2 293
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 29,862评论 0 182
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 33,453评论 0 229
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 29,942评论 2 233
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,347评论 1 242
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 27,790评论 2 236
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,293评论 3 221
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 25,839评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,448评论 0 181
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 34,564评论 2 249
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 34,623评论 2 249

推荐阅读更多精彩内容

  • 在UML 2.0的13种图形中,类图是使用频率最高的UML图之一。Martin Fowler在其著作《UML Di...
    雷雷_zll阅读 12,636评论 0 14
  • 忘记了uml类图连线之间的关系,记录一下。 1. 关联关系 关联(Association)关系是类与类之间最常用的...
    cutieagain阅读 1,721评论 0 2
  • 1、概述 在UML 2.0的13种图形中,类图是使用频率最高的UML图之一。Martin Fowler在其著作《U...
    liumw1203阅读 5,915评论 0 7
  • 《开发故事创意》作者 迈克尔拉*毕格本身也是纪录片导演,这本300多页的书前半部分值得一读,后面因为从小说、新闻...
    闻熙阅读 1,610评论 0 1
  • 今天跟老娘打电话,她说“帮你婶子做被子,你婶子炫耀她闺女孝顺懂事,半年了每周都打一个电话。我就笑笑没吭声,俺家大妞...
    糠小妮阅读 130评论 0 0