UML基础学习

来源:互联网 发布:淘宝卖的白酒是假酒吗 编辑:程序博客网 时间:2024/05/21 09:41

1:由来

     UML的全名:unified modeling language统一建模语言,UML在Rational Software公司的支持下于1994年开始成形。是Grady Booch,James Rumbaugh,Ivar Jacobson三位从事面向对象方法研究的专家合作研究的成果。UML标准是OMG协会在1997年制定的

2:为什么要建模

       模型帮助我们按照实际情况对系统进行可视化、可以让我们描述系统的结构和行为,并且利用它和同事沟通、提供了指导我们创建系统的模板,可以利用它为使用系统的人提供帮助、模型对我们所做的决策进行文档化

3:定义

   UML (UnifiedModeling Language)为面向对象软件设计提供统一的、标准的、可视化的建模语言。适用于描述以用例为驱动,以体系结构为中心的软件设计的全过程。

   UML是将事物与关系以可视化图的方式显示出来的建模语言。

4:构成图


注相关图说明

    活动图中的事物包括:活动、起点、终点、对象流、发送信号、接收信号、泳道;

    状态图中的事物包括:状态、转移、开始、结束;

    两种图本质作用是一样的,只是活动图侧重于从动作来描述,状态图侧重于从结果描述


    顺序图中的事物包括:参与者、对象、生命线、消息符号;

    协作图中的事物包括:参与者、对象、消息流

    两种图可以相互转换,顺序图侧重于表示交互作用中的时间顺序(强调时间),没有明确表示对象间的关系;协作图侧重于表示对象之间的关系(强调空间),但时间顺序必须从顺序号获得。


    实现图包括:构件图和部署图

    构件图中的事物包括:构件、接口、构件实例;

    部署图中的事物包括:节点、构件、接口、构件实例

    构件图从软件架构的角度进行描述;部署图则描述系统硬件的物理拓扑结构以及在此结构上执行的软件

5:UML的层次

   概     念   层:一种图形表示方法,让相关人员可以一眼就看出所要表达的含义
   规格说明层:一种图形,目的是将该图形转换为程序代码
   实     现   层:将规格说明转换为程序代码

6:主要组成部分:事物、关系

6.1 事物

   构件事物包括:类、接口、协作、用例、构件、节点;

   行为事物包括:交互、状态机;

   分组事物包括:包;

   注释事物包括:注释

6.2 关系

  依赖:依赖(dependency)关系是指两个模型元素()间的关系,对一个元素(提供者)的改变可能影响其他元素,使用关系是具有偶然性的、临时性的、非常弱的。

  表示符号:带箭头的虚线(单向性)

  常见实例:

         

       

  关联:关联(association)关系是是一种结构关系,它指明一个事物的对象与另一个事物的对象间的联系,实例之间连接的描述,类与类之间的联接, 体现的是两个类、或者类与接口之间语义级别的一种强依赖关系,它使一个类知道另一个类的属性和方法.这种关系比依赖更强、不存在依赖关系的偶然性、关系也不是临时性的,一般是长期性的,而且双方的关系一般是平等的如比如我和我的朋友,关联可以是单向、双向的关联可以使用单箭头表示单向关联, 使用双箭头或不使用箭头表示双向关联, 关联有两个端点, 在每个端点可以有一个基数, 表示这个关联的类可以有几个实例. 常见的基数(0..1、0..*、1、1..*)

 表示符号:带箭头的实线

  常见实例:

        

  聚合(aggregation)关系: 关联关系的一种特例, 是强的关联关系. 聚合是整体和个体之间的关系,即has-a的关系,此时整体与部分之间是可分离的,他们可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享

 表示符号:空心菱形和实线箭头  

  常见实例:

        

  组合(合成)关系(composition)也是关联关系的一种特例,他体现的是一种contains-a的关系,这种关系比聚合更强,也称为强聚合;他同样体现整体与部分间的关系,但此时整体与部分是不可分的,整体的生命周期结束也就意味着部分的生命周期结束;比如你和你的大脑;合成关系不能共享

 表示符号:实心菱形和实线箭头  

  常见实例:

        

   注意:组合跟聚合几乎相同,唯一的区别就是“部分”不能脱离“整体”单独存在,就是说, “部分”的生命期不能比“整体”还要长。


  泛化(generalization继承):更概括的描述和更具体的种类间的关系,适用于继承,指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力,继承是类与类或者接口与接口之间最常见的关系;在Java中此类关系通过关键字extends明确标识。

      

  实现:实现(realization)关系指的是一个class类实现interface接口(可以是多个)的功能;实现是类与接口之间最常见的关系;在Java中此类关系通过关键字implements明确标识

      

  注意:几种关系所表现的强弱程度依次为:组合>聚合>关联>依赖。

  关系比较,如图:

 

   


1 0
原创粉丝点击