UML建模

一、简介

    UML是统一建模语言,是一种可视化的面向对象建模语言,是一种用来对真实世界物理进行建模的标准标记,用图形方式表现典型的面向对象系统的整个结构。它的作用域不局限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程。

作用:

1、有助于按照需求对系统进行可视化的分析

2、能够分析系统的结构或行为

3、对做出的决策进行文档化

UML由下列5类图来定义。

  • 用例图:从用户角度描述系统功能,并指出各功能的操作者。

  • 静态图:包括类图和对象图。类图描述系统中类的静态结构,不仅定义系统中的类,表示类之间的联系,如关联、依赖、聚合等,也包括类的属性和操作,类图描述的是一种静态关系,在系统的整个生命周期都是有效的。对象图是类图的实例,几乎使用与类图完全相同的标识。一个对象图是类图的一个实例。由于对象存在生命周期,因此对象图只能在系统某一时间段存在。

  • 行为图:描述系统的动态模型和组成对象间的交互关系,包括状态图和活动图。状态图描述类的对象所有可能的状态以及事件发生时状态的转移条件,状态图是对类图的补充,活动图描述满足用例要求所要进行的活动以及活动间的约束关系,有利于识别并进行活动。

  • 交互图:描述对象间的交互关系,包括时序图和协作图。时序图显示对象之间的动态合作关系,它强调对象之间消息发送的顺序,同时显示对象之间的交互;协作图描述对象间的协作关系,协作图跟时序图相似,显示对象间的动态合作关系。除显示信息交换外,协作图还显示对象以及它们之间的关系。如果强调时间和顺序,则使用时序图;如果强调上下级关系,则选择协作图。

  • 实现图:包括组件图和部署图。组件图描述代码部件的物理结构及各部件之间的依赖关系,组件图有助于分析和理解部件之间的相互影响程度;部署图定义系统中软硬件的物理体系结构。

二、用例图

    

角色                  

 可以是人、事、物
分析角色考虑的因素:直接使用系统的人、维护人员、外设(人、打印机)、相连的系统

 图符:UML建模

用例

名称:要体现系统的功能

图符:UML建模

关系

5种关系:

关联—>    分为:双向和单向,参与者与用例之间的关系常为关联

关系

依赖- - - -> 使用关系,如一个类使用另一个类的方法
泛化UML建模一个用例被特举出多个用例使用
包含《include》一个用例的行为包含另外一个用例的行为
扩展《extend》(接口扩展)一个用例被定义为基础用例的增量扩展

关系图说明:

关联:

UML建模


依赖:

UML建模

泛化:

UML建模

包含:

UML建模

扩展:

UML建模

三、静态图

包括类图、对象图、包图,主要使用类图。

类图(Class diagram)是显示了模型的静态结构,特别是模型中存在的类、类的内部结构以及它们与其他类的关系等。类图不显示暂时性信息。

UML建模

关联:

关联关系允许一个对象/类交叉引用另一个对象/类,并能够向它发送消息。

最普通也是最常用的关联关系是二元关联,二元关联即有两个关联端的关联关系。特别地,一个类与自身的关联称为自关联

 UML建模

关联的多重性:由类产生的对象之间存在的数量关系

聚合:

聚合是一种特殊形式的关联。聚合表示类之间的关系是整体与部分的关系。

聚合关系没有改变整体与部分之间整个关联的导航含义,也与整体和部分的生命周期无关。

用空心菱形表示(如上图)

组合:

组合关系中的部分要完全依赖于整体,部分离开整体无法存在

用实心菱形表示

UML建模

关联类:关联有可能具有自己的属性和操作,对此需要引入一个关联类来记录

这时,关联关系中的每个连接

     与关联类的一个对象相联系,关联类通过一条虚线与关联连接。

UML建模

泛化:

类与类之间的泛化也就是类与类之间的继承,具有传递性

UML建模

依赖关系:

依赖关系与关联关系类似,表示的也是类与类之间的连接, 但与关联关系相比,依赖关系是非常弱的,且依赖关系总是单向的;表现在代码层面为类B作为参数被类A在某个method方法中使用

 UML建模

总的来说:

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

在代码层面,组合、聚合和关联关系是一致的,只能从     语义级别来区分。

 

实现关系:

主要是实现接口

接口有两种表示方法,注意实虚

 UML建模

UML建模

四、行为图

行为图包括:活动图和状态图,主要使用状态图(或称流程图)

UML建模

五、交互图

描述对象间的交互关系,包括时序图和协作图。主要使用时序图

UML建模

六、实现图

包括组件图和部署图,主要使用部署图(尽量做个美颜),定义系统中软硬件的物理体系结构

UML建模

UML建模

七、总结

在如今讲究敏捷开发中,UML完整应用已经不多了,大部分只对重要的比较有歧义的部分做部分图。使用的比较多的图有用例图、类图(数据库设计)、状态图、部署图、时序图。

UML建模工具常有Rose、PowerDesigner、Visio、EA