iOS - 优化/质量/调试iOS - 大杂烩程序员

类图及绘制工具:StarUML

2016-12-21  本文已影响6425人  goyohol

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类图常见的几种关系:










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



StarUML

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

棒子国🇰🇷 产品 StarUML

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

在侧边栏,选择相应的对象进行添加:
选择相应的对象进行添加
未点击要添加的对象前,鼠标状态提示:
未点击前
点击要添加的对象后,鼠标状态提示:
点击要添加的对象后
接下来就可以添加对象的,如下图:(添加一个类)
绘制图形
再为该类添加属性、方法:
设置类的属性、方法

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

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


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

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

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

















goyohol's essay

上一篇 下一篇

猜你喜欢

热点阅读