面向对象UML类图用例图顺序图活动图状态图通信图构件图部署图

Posted 小哈里

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象UML类图用例图顺序图活动图状态图通信图构件图部署图相关的知识,希望对你有一定的参考价值。

1、UML类图

什么是UML?

  • UML(统一建模语言)的出现是为了软件设计有更好的可读性和可理解性。
  • UML由由构造块、公共机制、规则三个部分 组成。
    构造块,犹如建房子时的砖瓦。
    规则,是支配基本构造块如何放在一起的规则(5个系统视图,分别是逻辑视图、进程视图、实现视图、部署视图和用例视图)
    公共机制,是指达到特定目标的公共UML方法(规格说明、修饰、公共分类和扩展机制四种)。
  • 构造块包括括事物构造块、关系和图三个部分
    事物构造块 :包括结构构造块 (类、接口、协作、用例、活动类、构件、节点等)、行为构造块 (交互、状态机)、分组构造块 、注释构造块。
    图 :在UML 2.x中包括14种不同的图分为
    表示系统静态结构的静态模型 (包括对象图、类图 、构件图、部署图、复合结构图、包图、制品图)
    表示系统动态结构的动态模型 (包括用例图、顺序图 、协作图、状态图、活动图、定时图、交互概观图)
    关系:关联关系 (聚合、组合)、依赖关系 、泛化关系 (一般、特列)、实现关系 。

从类图开始:
一般我们在UML中遇到的都是类图。

  • 车的类图结构为<>,表示车是一个抽象类;
  • 它有两个继承类:小汽车和自行车;它们之间的关系为实现关系 ,使用带空心箭头的虚线表示;
  • 小汽车为与SUV之间也是继承关系,它们之间的关系为泛化关系 ,使用带空心箭头的实线表示;
  • 小汽车与发动机之间是组合关系 ,使用带实心箭头的实线表示;
  • 学生与班级之间是聚合关系 ,使用带空心箭头的实线表示;
  • 学生与身份证之间为关联关系 ,使用一根实线表示;
  • 学生上学需要用到自行车,与自行车是一种依赖关系 ,使用带箭头的虚线表示;

下面我们依次介绍这六种静态关系: (类图是静态图的一种)
六种关系中,从弱到强依次是:
(依赖关系 < 关联关系) < (聚合关系 < 组合关系) < (实现关系 = 泛化关系)

1、类的继承结构 表现在UML中为:泛化与实现
泛化关系: eg:自行车是车、猫是动物。泛化关系用一条带空心箭头的直接表示。
泛化关系表现为继承非抽象类

实现关系:
实现关系表现为继承抽象类。
实现关系用一条带空心箭头的虚线表示;
eg:”车”为一个抽象概念,在现实中并无法直接用来定义对象;只有指明具体的子类(汽车还是自行车),才可以用来定义对象。

2、组合与聚合关系:表示整体由部分构成
聚合关系:用一条带空心菱形箭头的直线表示。
聚合关系的整体和部分不是强依赖的,即使整体不存在了,部分仍然存在。
例如一个部门由多个员工组成;部门撤销了,人员不会消失,他们依然存在;

组合关系:
组合关系用一条带实心菱形箭头直线表示。
组合关系是一种强依赖的特殊聚合关系,如果整体不存在了,则部分也不存在了。例如, 公司不存在了,部门也将不存在了;

3、关联与依赖:描述不同类的对象之间的结构关系

关联关系:
用一条直线表示。
它一般用来定义对象之间静态的、天然的结构;所以关联关系是一种“强关联”的关系。
比如,乘车人和车票之间就是一种关联关系;学生和学校就是一种关联关系。
关联关系默认不强调方向,表示对象间相互知道;如果特别强调方向,如下图,表示A知道B,但 B不知道A;

依赖关系:
用一套带箭头的虚线表示
与关联关系不同的是,它是一种临时性的关系,通常在运行期间产生,并且随着运行时的变化。
依赖也有方向,双向依赖是一种非常糟糕的结构,我们总是应该保持单向依赖

2、UML用例图

用例图(也可称用例建模)描述的是外部执行者(Actor)所理解的系统功能。用例图用于需求
分析阶段。
用例表示为一个椭圆。

用例图的建立通常要经历三个阶段:识别参与者、合并需求获得用例、细化用例描述。
1、用一个小人表示参与者 。该角色不仅可以由人承担,还可以是其他系统、硬件设备。
2、将在参与者都找到之后通过合并需求来获得用例 。每个参与者的任务是什么?一般用名词+动词表述。
3、一个用例的实例就是一个使用场景,用例就是对使用场景进行抽象的总结,形成一组事件流


用例图中的关系:
用例图中常见的关系有:包含、扩展与泛化。
泛化关系在类图中讲过了。

包含关系:
“登记外借信息”和“查询外借信息”两个用例都需要登录,为此,可以定义一个抽象用例“用户登录”

扩展关系:
的图书管理员进行“查询书箱信息”操作时,如果发现书箱信息有误,他可以使用“修改书箱信息”用例来完成错误的修改。所以用例“查询书籍信息”和“修改书籍信息”之间的关系就是扩展关系。

泛化关系:
图书管理系统中,用户注册时有多种方式,可以是“现场注册”,也可以是“网上注册”。所以“用户注册”用例就是“现场注册”用例和“网上注册”用例的泛化。

包含关系和扩展关系都属于依赖关系。

3、顺序图

着重体现对象间消息传递的时间顺序。
直观地表示出对象的生存期,在生存期内,对象可以对输入消息做出响应,并且可以发送信息

4、活动图

类模型体现了系统的静态结构,用实例模型则从用户的角度对系统的动态行为进行了宏观建模,并通过交互模型将对象与消息有机地结合在一起。但有些时候,我们还需要更好地表示行为的细节,这就可以借助于活动图和状态图 来实现。



5、状态图


6、通信图

通信图和顺序图同属于交互图,但它强调收发消息的对象或角色的结构组织 。顺序图和通信图表达了类似的基本概念,但每种图所强调的概念不同,顺序图强调的是时序,通信图则强调消息流经的数据结构。如图13-24所示,这就是一个通信图。

7、构件图

构件图描述一个封装的类和它的接口、端口 ,以及由内嵌的构件和连接件构成的内部结构。构件图用于表示系统的静态设计实现视图。对于由小的部件构建大的系统来说,构件图是很重要的。构件图是类图的变体。如图13-25所示,这就是一个构件图。

8、部署图

部署图,也称为实施图,和构件图一样是面向对象系统的物理方面建模的两种图之一。

以上是关于面向对象UML类图用例图顺序图活动图状态图通信图构件图部署图的主要内容,如果未能解决你的问题,请参考以下文章

UML实践---用例图顺序图状态图类图包图协作图

UML实践详细经典教程----用例图顺序图状态图类图包图协作图

UML中的图

索引UML学习笔记

ML实践详细经典教程----用例图顺序图状态图类图包图协作图

软考 系统架构设计师案例分析③ 面向对象设计