架构师UML利器

93 阅读7分钟

01. UML软件

  • StarUML Version StarUML-v2.8.1.msi

  • 软件破解

    // 修改的文件为:
    // $StarUML_HOME/www/licence/node/LicenseManagerDomain.js
    
    function validate(PK, name, product, licenseKey) {
         var pk, decrypted;
         // 修改内容,直接返回json
         return { 
                 name: "username",            // 用户名
                 product: "StarUML",          // 产品,固定为StarUML
                 licenseType: "vip",          // license类型,固定为vip
                 quantity: "www.example.com", // quantity
                 licenseKey: "licenseKey"     // licenseKey
         };
     }
    
  • Enter License Help -> Enter License

  • View License Help -> Abort StarUML

02. UML图分类

  • 分类
  • Class Diagram(类图)
  • Package Diagram(包图)
  • Object Diagram(对象图)
  • Composite Structure Diagram(复合组件图)
  • Component Diagram(组件图)
  • Deployment Diagram(部署图)
  • Use Case Diagram(用例图)
  • Sequence Diagram(时序图)
  • Communication Diagram(通信图)
  • Statechart Diagram(状态机图)
  • Activity Diagram(活动图)
  • Profile Diagram(配置文件图)
  • ER Diagram(E-R图)
  • Flowchart Diagram(流程图)
  • StarUML分类导航

在这里插入图片描述

03. 类图

3.1. 分类

  • Generalization(泛化)
  • Realization(实现) &&
  • Interface Realization(接口实现)
  • Association(关联)
  • Aggregation(聚合)
  • Composition(组合)
  • Dependency(依赖)

3.2. 关系

Generalization(泛化)

  • 关系:继承关系,类、接口的继承关系。
  • 箭头:带三角箭头的实线,箭头指向父类或父接口

在这里插入图片描述

Realization(实现) && Interface Realization(接口实现)

  • 描述:Interface Realization是Realization的一种省略表示方法。
  • 关系:类与接口之间的实现关系。 箭头:带三角箭头的虚线, 箭头指向接口; 或者实线。

在这里插入图片描述

Association(关联)

  • 关系:关联关系,即类成员变量为关联类对象,这种使用关系是具有偶然性的、临时性的、非常弱的。关联可以是双向的,也可以是单向的;双向的可以有2个箭头或者没有箭头,单向的只有一个箭头。
  • 箭头:带箭头的实心线, 指向被拥有者。

在这里插入图片描述

Aggregation(聚合)

  • 关系:整体与部分的关系, 部分可以离开整体单独存在。聚合是一种强的关联关系,语法上无法区分,必须考察具体的逻辑关系。如汽车与轮胎的关系,轮胎可以脱离汽车而单独存在。
  • 箭头:带空心的菱形实心线, 菱形指向整体。

在这里插入图片描述

Composition(组合)

  • 关系:整体与部分的关系,部分不能离开整体而存在。组合关系,比聚合还要强的关联关系。即部分对象的生命周期依赖于整体对象而存在。
  • 箭头:带实心菱形的实线,菱形指向整体。

在这里插入图片描述

Dependency(依赖)

  • 关系:类之间的连接,表示一个类依赖于另一个类的定义,其中一个类的变化将影响另外一个类。
  • 箭头:带箭头的虚线, 指向被使用者。

在这里插入图片描述

04. Package Diagram(包图)

4.1. Definition(定义)

维护和控制中型-大型项目中模型元素之间的布置和组织关系,以及子系统或模块之间的结构和相关性。

4.2. Funtion(作用)

包图用于表现包和其所包含元素的组织关系。当用来代表类元素时,包图提供了命名空间的可视化。包图最常用的用途是用来组织用例图和类图。

4.3. RelationShip(关系)

Dependency(依赖)

  • 关系:一个包引入另一个包的元素。
  • 箭头:带箭头的虚线,指向被依赖的包。

在这里插入图片描述

  • Containment(遏制) 在这里插入图片描述

05. Use Case Diagram(用例图)

5.1. Description(描述)

主要用来描述用户, 需求, 系统功能单元之间的关系。

5.2. Structure(构件)

在这里插入图片描述

  • Package(包)
  • Use Case Subject(用例主题) :表示一个模块。
  • Use Case(用例) :外部可见的系统功能, 对系统提供的服务进行描述。
  • Actor(参与者) :与系统交互的人或物。

图标:

在这里插入图片描述

  • Frame类似于"Sequence Diagram的Frame"

5.3. Relationship(关系)

在这里插入图片描述

Association(关联)

  • 关系:表示参与者与用例之间的通信, 任何一方均可发送或接收消息。
  • 箭头:无箭头实线。

在这里插入图片描述

Directed Association(直接关联)

  • 关系:表示参与者与用例之间的通信, 单向接收消息。
  • 箭头:带箭头实线, 箭头指向接收方。

在这里插入图片描述

Generalization(泛化)

  • 关系:继承关系。父用例一般为抽象用例。
  • 箭头:带三角箭头的实线, 指向父用例。

在这里插入图片描述

Dependency(依赖)

  • 关系:表示一个用例依赖于另一个用例,被依赖用例的变化将影响到依赖用例。
  • 箭头:带箭头的虚线。指向被依赖项。

在这里插入图片描述

Include(包含)

  • 关系:复杂用例表示的功能分解到多个用例中。
  • 箭头:带箭头的虚线, 并且有<>注释。指向分解出来的功能用例。

在这里插入图片描述

Extend(拓展)

  • 描述:指用例功能的延伸,相当于为基础用例提供一个附加功能。
  • 箭头:带箭头的虚线,并且有<<extend>>注释。箭头指向基础用例。 在这里插入图片描述

06 Sequence Diagram(时序图)

6.1. Description(描述)

描述对象间信息传递的顺序。 用一个二维图描述对象之间的交互关系,纵轴为时间轴; 横轴代表参与交互的对象。 消息用从一个对象到另一个对象生命线的箭头表示,箭头以时间顺序从上到下排序。

6.2. Structure(构件)

6.2.1. Lifeline(对象)

在这里插入图片描述

对象+类

在这里插入图片描述

类名:符合对象的命名规范。

在这里插入图片描述

6.2.2. 对象

描述:小写字母开头。 在这里插入图片描述

6.2.3. 生命线

描述:对象的生命周期。

在这里插入图片描述

6.2.4. 激活

描述:箭头指向对象处于执行状态的时间段。

在这里插入图片描述

6.3. Message(消息)

在这里插入图片描述

  • Message(同步消息) 区别:实心三角箭头为同步消息。
  • Self Message(自关联消息)
  • Async Message(异步消息) 区别:只是一个箭头代表异步消息。
  • Reply Message(返回消息)
  • Create Message(创建对象消息) 箭头:箭头指向被创建者,标注为被创建者生成对象的方法 在这里插入图片描述

Delete Message(删除对象消息)

在这里插入图片描述

  • Async Signal Message(异步信号消息)
  • Found Message(拾取消息) 描述:收到来自未知发送者/没有显示在当前图中的发送者的消息。 表明:来自一个终点元素。
  • Lost Message(迷路消息) 描述:发送却没有到达指定接收者, 或者到达的接收者不再当前图中。 表明:去往一个终点元素。

6.4. Composite Fragment(复合片段)

6.4.1. for & while

在这里插入图片描述

6.4.2. mutiple thread

在这里插入图片描述

6.4.3. if..else..

在这里插入图片描述

6.4.4. if

在这里插入图片描述

6.5. State invariant(状态不变)

在这里插入图片描述

6.6. Continuation

image.png

6.7. Frame(框架)

引入另一个顺序图的引用。

Sequence Diagram(顺序图)

在这里插入图片描述

Interaction(交互)

在这里插入图片描述

07. ER Diagram(E-R图)

7.1. Description(描述)

E-R模型,亦者实体-联系模型。 E-R图主要用来描述现实世界的概念模型,表示实体及实体间的关系图,广泛应用于数据库的设计。

7.2. Structure(构件)

在这里插入图片描述

  • Entity(实体) - 客观存在可以相互区分的事物。

  • Entry Set(实体集) - 具有共性的一类实体。

  • Attribute(属性) - 实体具有的特征,称其为实体属性。

  • Relationship(联系) - 实体间的关系。

注意: 联系不能脱离实体,必须有实体连接,可以是实体的自身联系。 属性既可以连接实体,也可以连接联系。但一个属性只能有唯一的连接对象。

7.3. Relationship(关系)

One to One Relationship

在这里插入图片描述

One to Many Relationship

在这里插入图片描述

Many to Many Relationship

在这里插入图片描述

08. Flowchart Diagram(流程图)

在这里插入图片描述 在这里插入图片描述

  • Flow

  • Process(处理) 描述:代表流程图中的一个处理或步骤。

  • Terminator(起始和终止) 描述:此图标表示流程的开始和结束。

  • Decision(判断) 描述:对一个条件进行判断抉择。

  • Delay(推迟) 描述:代表没有活动, 延迟一定的周期。

  • Predefined Process(预定义流程) 描述:引入其他流程或者子流程, 从而减少流程图内容过多问题。

    在这里插入图片描述

  • Alternate Process(事件)

  • Data 描述:调用外部数据

  • Document(文档)

  • Muti-Document(多重进程/文档)

  • Preparation(准备)

  • Display(显示内容)

  • Manual Input(手动输入)

  • Manual Operation(手动操作)

  • Card(卡)

  • Punched Tape(纸带)

  • Connector(连接点/页面内引用) 描述:页面内多个流程图连接引用。

  • Off-Page Connector(离页引用)

  • Or(或)

  • Summing Junction(求和)

  • Collate(校验)

  • Sort(排序)

  • Merge(合并)

  • Extract(提取)

  • Stored Data(存储数据) 描述:存储数据, 或输出到外部存储。

  • Database(数据库)

  • Direct Access Storage(直接访问存储)

  • Internal Storage(内部存储器)