zoukankan      html  css  js  c++  java
  • UML(Unified Model Language)统一建模语言

    一、九种图

    二、类间关系

    一、UML中的九种图

    1、用例图(use case diagrams)

     【概念】描述用户需求,从用户的角度描述系统的功能

     【描述方式】椭圆表示某个用例;人形符号表示角色

     【目的】帮组开发团队以一种可视化的方式理解系统的功能需求

     【用例图】

     2、静态图 

      2-1)类图(class  diagrams) 

      【概念】显示系统的静态结构,表示不同的实体是如何相关联的

      【可见性】公有类型(public)、受保护类型(protected)、私有类型(private)、Implementation

      【描述方式】三个矩形  

      【目的】表示一个逻辑类或实现类,逻辑类通常是用户的业务所涉及的事物;实现类是程序员处理的实体

      【类图】  

      2-2)对象图(object diagrams)

      【概念】类图的一个实例,描述系统在具体时间点上所包含的对象以及各个对象的关系

      【对象图】  

    3、交互图——用来描述对象之间的交互关系 

      3-1)序列图(顺序图)

      【概念】描述对象之间的交互顺序,着重体现对象间消息传递的时间顺序

      【描述方式】横跨图的顶部,每个框表示每个类的实例或对象;类实例名称和类名称使用冒号分开

      【目的】显示流程中不同对象之间的调用关系,还可以显示不同对象的不同调用。

      【序列图】  

      3-2)协作图(Collaboration diagrams)

         【概念】描述对象之间的合作关系,侧重对象之间的消息传递 

    序列图和协作图的对比:

          协作图和序列图表达的信息一样,只是方法不同,可通过适当的方式进行转化。协作图和序列图的不同点:

              1)协作图明确表示了角色关系,通过协作角色来限定协作中的对象或链。

              2)协作图不将时间作为单独的维来表示,必须使用顺序号来判断消息的顺序以及并行线程。

              3)序列图和协作图都表示对象间的交互作用,序列图侧重时间顺序,协作图侧重对象间的关系,时间顺序可以从对象流经的顺序编号中获得。

              4)序列图被用于表示方案,而协作图被用于过程的详细设计。

    4、行为图:描述系统的动态模型和对象之间的交互关系 

      4-1)状态图(Statechart diagrams) 

         【概念】描述对象的所有状态以及事件发生而引起的状态之间的转移

         【描述方式】 

        1. 起始点:实心圆 
        2. 状态之间的转换:使用开箭头的线段 
        3. 状态:圆角矩形 
        4. 判断点:空心圆 
        5. 一个或多个终止点:内部包含实心圆的圆

          【目的】表示某个类所处的不同状态以及该类在这些状态中的转换过程

       4-2)活动图(Activity diagrams)

      【概念】描述满足用例要求所要进行的活动以及活动时间的约束关系

      【描述方式】 

        1. 起始点:实心圆 
        2. 活动:圆角矩形 
        3. 终止点:内部包含实心圆的圆 
        4. 泳道:实际执行活动的对象

      【目的】表示两个或多个对象之间在处理某个活动时的过程控制流程

      【活动图】 

    活动图和状态图区别:

        1)活动图的主要目的是描述动作及对象的改变结果,而状态图则是描述对象、子系统、系统在生命周期中的各种行为

            2)活动图中的状态转换不需要任何触发事件,状态图则需要触发事件

            3)活动图种的动作可以放在泳道中,状态图不可以

    5、实现图  

      5-1)构件图(Component diagrams) 

      【概念】描述代码构件的物理结构以及各构件之间的依赖关系

      【描述方式】构件

      【目的】提供系统的物理视图,根据系统的代码构件显示系统代码的整个物理结构

      【构架图】

      5-2)部署图(Deployment diagrams)

      【概念】系统中硬件的物理体系结构

      【描述方式】 

        1. 三维立方体表示部件 
        2. 节点名称位于立方体上部

      【目的】显示系统的硬件和软件的物理结构

      【部署图】

    二、类间关系

    类与类之间的关系通常有4种,即依赖关系(Dependency)、泛化关系(Generalization)、关联关系(Association)、实现关系(Realization)

    1. 依赖关系(Dependency)

      【概念】表示两个或多个模型元素之间语义上的连接关系

      【绘图方式】虚线箭头,箭头指向被使用者

      【依赖图】

    1. 泛化关系(继承)(Generalization)

      【概念】描述类的一般和具体之间的关系,描述的“is a kind of ”的关系

      【绘图方式】实线空心三角箭头,箭头指向父类

      【继承方式】

      1.   单继承:一个类只有一个父类
      1.   多继承:一个类可以有多个父类,可以从每一个父类中获得允许继承的信息

      【泛化图】

    1. 关联关系(Association)

      【概念】表示一个事物的对象与另一个事物的对象之间的语义上连接,简单的理解为两个类或类与接口之间的强依赖关系

      【绘图方式】实线箭头,双向箭头或无箭头

      【包括】

      •   聚集

          【概念】描述的是部分与整体关系,描述了“has a”的关系,部分离开整体可以单独存在

          【绘图方式】空菱形的实线,头部指向整体

          【聚集关系图】

      •   组成

          【概念】一种更强形式的关联,在整体中拥有管理部分特有的职责,也被称为强聚合关系,部分不能脱离整体存在

          【绘图方式】实菱形的实线,头部指向整体

          【组成关系图】

    1. 实现关系(Realization)

      【概念】将一种模型关系与另一种模型关系连接起来,从而说明和其实现之间的关系,简单的理解为一个类或多个类实现一个接口

      【绘图方式】封闭空箭头的虚线,箭头指向接口

      【实现关系图】

    泛化和实现关系的区别:

           泛化关系是指同一语义层的元素连接起来,通常在同一模型内;实现关系将不同语义层内的元素连接起来,通常在不同模型内。

  • 相关阅读:
    Java实现 蓝桥杯VIP 算法训练 传球游戏
    Java实现 蓝桥杯VIP 算法训练 Hanoi问题
    Java实现 蓝桥杯VIP 算法训练 蜜蜂飞舞
    Java实现 蓝桥杯VIP 算法训练 奇偶判断
    Java实现 蓝桥杯VIP 算法训练 传球游戏
    Java实现 蓝桥杯VIP 算法训练 Hanoi问题
    Java实现 蓝桥杯VIP 算法训练 Hanoi问题
    Java实现 蓝桥杯VIP 算法训练 蜜蜂飞舞
    Java实现 蓝桥杯VIP 算法训练 蜜蜂飞舞
    Qt: 访问容器(三种方法,加上for循环就四种了)good
  • 原文地址:https://www.cnblogs.com/sweetyu/p/5625794.html
Copyright © 2011-2022 走看看