zoukankan      html  css  js  c++  java
  • UML描述

    UML 的定义

    统一建模语言(Unified Modeling Language,UML)是一种为面向对象系统的产品进行说明、可视化和编制文档的一种标准语言,是非专利的第三代建模和规约语言。
    UML 使用面向对象设计的的建模工具,但独立于任何具体程序设计语言。
    

    UML 应用场景

        UML 是在开发阶段,说明、可视化、构建和书写一个面向对象软件密集系统的制品的开放方法。最佳的应用是工程实践,对大规模,复杂系统进行建模方面,特别是在软
    件架构层次,已经被验证有效。统一建模语言(UML)是一种模型化语言。模型大多以图表的方式表现出来。一份典型的建模图表通常包含几个块或框,连接线和作为模型附
    加信息之用的文本。这些虽简单却非常重要,在 UML 规则中相互联系和扩展。
        UML 的目标是以面向对象图的方式来描述任何类型的系统,具有很宽的应用领域。其中最常用的是建立软件系统的模型,但它同样可以用于描述非软件领域的系统,如机
    械系统、企业机构或业务过程,以及处理复杂数据的信息系统、具有实时要求的工业系统或工业过程等。总之,UML 是一个通用的标准建模语言,可以对任何具有静态结构和
    动态行为的系统进行建模,而且适用于系统开发的不同阶段,从需求规格描述直至系统完成后的测试和维护。
    

    UML图

    UML2.0 一共有 13 种图形(UML1.5 定义了 9 种,2.0 增加了 4 种)。分别是:用例图、类图、对象图、状态图、活动图、时序图、协作图、构件图、部署图 9 种,包图、
    时间图、组合结构图、交互概览图 4 种。
    
    图的类型 描述
    用例图(Usecase Diagrams) 用来描述用户的需求,从用户的角度描述系统的功能,并指出各功能的执行者,强调谁在使用系统,系统为执行者完成哪些功能。
    类图(Class Diagrams) 用于定义系统中的类。
    对象图(Object Diagrams) 是类图的一个实例,描述了系统在具体时间点上所包含的对象以及各个对象之间的关系。
    构件图(Component Diagrams) 一种特殊的 UML 图来描述系统的静态实现视图。
    部署图(Deployment Diagrams) 定义系统中软硬件的物理体系结构。
    状态图(State Chart Diagrams) 用来描述类的对象所有可能的状态以及时间发生时状态的转移条件。
    协作图(Collaboration Diagrams) 描述对象之间的合作关系,更侧重和用户对象说明哪些对象有消息的传递。
    活动图(Activity Diagrams) 用来描述满足用例要求索要进行的活动以及活动间的约束关系。
    时序图(Sequence Diagrams) 描述对象之间的交互顺序,着重体现对象间消息传递的时间顺序,强调对象之间消息的发送顺序,同时显示对象之间的交互过程。
    包图(Package Diagrams) 对构成系统的模型元素进行分组整理的图
    组合结构图(Composite Structure Diagrams) 表示类或者构建内部结构的图。
    时间图(Timing Diagrams) 用来显示随时间变化,一个或多个元素的值或状态的更改,也显示时控事件之间的交互和管理它们的时间和期限约束。
    交互概览图(Interaction Overview Diagrams) 用活动图来表示多个交互之间的控制关系的图。

    UML 绘图规范

    建模的核心是模型,模型是现实的简化,它提供了系统的设计蓝图。
    软件系统建模是,需要采用通用的符号语言,这种描述模型所使用的语言称为建模语言。下图完整地描述了 UML 所能描述的所有事物和关系。
    

    事物描述

    类(Class):对一组具有相同属性,方法,关系和语义的对象的描述。
    接口(Interface):描述了一个类或构件的一个服务的操作集。它仅仅是定义了一组操作的规范,并没有给出这组操作的具体实现(代码)。
    用例(Usecase):是对一组动作序列的描述,系统执行这些动作将产生一个对特定的参与者(Actor)有价值且可观察的结果。
    包(Package):是分组事物中最主要的,是 UML 中唯一的组织机制。
    

    事物关系描述

    关联(Association):是一种拥有的关系,具有方向性,如果一个类单方向的访问另一个类,则称为单向关联(用一个箭头的实线表示);如果两个类对象可以互相访问,则
    称为双向关联(用两个箭头或不用箭头的实线表示);一个对象能访问关联对象的数目叫做“多重性”。
    用带普通箭头的实线表示,箭头指向被拥有者,或不用箭头的实线表示 。
    
    聚合(Aggregate):是整体与部分的关系。当某个实体聚合成另一个实体时,该实体还可以是另一个实体的部分。用带空心菱形的实线表示 ,菱形指向整体,箭头指向个体。
    
    组合(Combination):整体与部分的关系,组合比聚合更加严格,当某个实体组合成另一个实体时,二者具有相同的生命周期,例如手臂和人之间存在的是组合关系。
    用带实心菱形的实线表示 ,菱形指向整体,箭头指向个体。
    
    泛化(Generalization):表示一个更泛化的元素和一个更具体的元素之间的关系,与继承是同一个概念。用带三角箭头的实线表示 ,箭头指向父类。
    
    实现(Realization):类与接口的关系,类实现接口。用带三角箭头的虚线表示 ,箭头指向父接口。
    
    依赖(Dependency):如果一个类的改动会影响到另一个类,则两个类之间存在依赖关系,一般而言,依赖是单向的。用带普通箭头的虚线表示 ,箭头指向被依赖者。
    

    类图(Class Diagrams)

    在 UML 2.0 的 13 种图形中,类图是使用频率最高的 UML 图之一。类图是描述系统中的类,以及各个类之间的关系的静态视图。能够让我们在正确编写代码以前对系统有
    一个全面的认识。类图是一种模型类型,确切的说,是一种静态模型类型。类图表示类、接口和它们之间的协作关系,用于系统设计阶段。
    类图用三个矩形表示,最上面的部分标识类的名称;中间的部分标识类的属性;最下面的部分标识类的方法,如下图所示:
    

    + 表示 public
    - 表示 private
    # 表示 protected
    ~ 表示 default,可省略不写。
    字段和方法返回值的数据类型非必须。
    抽象类或抽象方法用斜体表示。
    静态类或静态方法加下划线。
    如果是接口在类名上方加<<Interface>>。
    
    类与类之间的关系主要有六种:关联、聚合、组合、继承、实现和依赖,这六种关系的箭头表示如下:
    

  • 相关阅读:
    对比git rm和rm的使用区别
    Gerrit日常维护记录
    [原创]Gerrit中文乱码问题解决方案分享
    MySQL 高可用架构
    MySQL 高可用架构
    Android L开发指南
    如何使用GOOGLE高级搜索技巧
    Linux定时关机
    Android源码批量下载及导入到Eclipse
    怎样将Android SDK源码 导入到Eclipse中?
  • 原文地址:https://www.cnblogs.com/snail-gao/p/12173378.html
Copyright © 2011-2022 走看看