UML入门自学笔记

       前言:最近一段时间在自学C++,编程思想上从面向过程到面向对象的转变,说实话刚开始很不习惯,现在已经慢慢接受和习惯了。本来想学下设计模式,但是面向对象毕竟不像面向过程那样,简单搭个程序的大概框架出来,然后想到哪代码就写到哪,动手前还是需要先建模什么的,当然helloworld那种很简单的除外。之前看****时也提到过UML是一个很重要的工具,所以决定先学下UML,之后再是设计模式。工欲善其事必先利其器。

      接下来进入正文,正文内容主要用例图、类图、状态图、活动图这四种图,其它的个人觉得用得不多(不知道是不是错觉...)。

 

      UML(Unified Modeling Language),统一建模语言,用来为面向对象开发系统的产品进行说明、可视化和编制文档的方法。

      UML由视图(View)、图(Diagram)、模型元素(Model Element)、通用机制(GeneralMechanism)等组成。

 

一、UML五种视图

1、用例视图

      从外部角色的视角展示系统的功能,和系统实现无关。

2、逻辑视图

      描述如何实现用例视图中的系统功能。

3、组件视图

      描述系统的实现模块,以及依赖关系。

4、并发视图

      主要考虑资源的有效利用、代码的并行执行。

5、配置视图

利用节点来展示系统部署的物理架构。

 

二、UML九种图

      一个视图可以由多个图组成。

1、用例图

2、类图

3、对象图

4、状态图State

5、活动图Activity

6、时序图Sequence

7、协作图Collaboration

8、组件图Component

9、配置图Deployment

 

三、用户模型视图——用例图

      用例模型描述的是外部参与者所理解的系统功能。

3.1 用例图的元素

      用例图元素包括用例(use case)和参与者(Actor):

      UML入门自学笔记 UML入门自学笔记

用例是系统执行的功能或过程,它可以由外部对象或系统内部另一个用例启动;参与者是系统外部的一个实体,可以是任何事物或人。

3.2 用例之间的关系

(1)关联:表示参与者和用例之间进行通信,连接执行者和用例。

        UML入门自学笔记

(2)泛化:一个用例可以被具体列举为一个或多个子用例,这被称为用例泛化。子用例表示父用例的特殊形式。

         UML入门自学笔记

(3)包含:一个用例可以包含其它用例,这种关系表示被包含的那个用例具有的行为一定会发生。

(4)扩展:箭头由扩展用例指向基础用例,表示扩展用例具有的行为可能会发生。

         UML入门自学笔记

 

四、逻辑视图

4.1、类图

      类图是面向对象方法的核心技术,其中类、对象以及它们之间的关系是最基本的建模元素。

(1)类

      类用矩形表示,包括名称、属性、方法三部分。

       UML入门自学笔记

(2)继承

      使用三角形箭头的实线(同泛化的表示方法),由子类指向基类。

        UML入门自学笔记

(3)抽象类

      名称和方法使用斜体表示

        UML入门自学笔记

(4)单向关联

      单箭头实线

       UML入门自学笔记

(5)双向关联(标准关联)

      无箭头实线

        UML入门自学笔记

(6)聚合

      表示整体到局部的关系,局部生命周期不依赖于整体的生命周期,即使整体的生命周期结束了,局部依旧不受影响。箭头指向局部。

         UML入门自学笔记

(7)组合

      表示子类的生命周期依赖于父类的生命周期。箭头指向子类。

         UML入门自学笔记

(8)接口

      表示某个类实现了什么接口,用带三角箭头的虚线指向接口。

         UML入门自学笔记

(9)关系

      常用的4种关系:依赖、泛化、关联、实现。

4.2、包图

      UML入门自学笔记

      包是一个容器,可以把一个复杂的系统分解成多个小的系统。

      包中的元素可以是用例、类、接口、组件、包等。

     

五、并发视图

5.1、状态图

      UML入门自学笔记

      如上图所示,“已出借”和“可出借”表示图书的状态,“归还”和“下架”是事件,当发生归还事件时,图书的状态由“已出借”转换成“可出借”。

      完整的图书状态图:

       UML入门自学笔记

5.2、活动图

      组成元素:

(1)动作:表示一个原子操作

        UML入门自学笔记

(2)活动:多个动作的组合

       UML入门自学笔记

(3)判定:

      动作或活动之后进行判定。

      UML入门自学笔记

(4)分支与合并

      箭头+判定。

UML入门自学笔记

(5)分叉与汇合

      箭头+粗实线。

(6)泳道

      活动图中水平方向的区域划分。

      UML入门自学笔记

5.3、时序图

      时序图是一种强调消息的时序交互图,由活动者、对象、消息、生命线和控制焦点组成。

5.4、协作图

      协作图强调的是发送和接收消息的对象之间的组织结构。通过时序图自动生成协作图。

 

六、组件视图

        ......

七、配置视图

        ......