本节和大家一起学习一下UML图,这里主要介绍UML结构图和UML行为图两部分,下面让我们一起看一下UML图的详细介绍吧。

UML图

这里再次提到对软件体系结构进行可视化、详述、构造和文档化,有5种最重要的互补视图:用况视图(usecaseview)、设计视图(designview)、进程视图(processview)、实现视图(implementationview)、实施视图(deploymentview)。每一种视图都包含结构建模(对静态事物建模)和行为建模(对动态事物建模)。

UML中包含9种图,这在第二章已经介绍过。可以将这9种图分为两类,一类用于结构建模,称为结构图;一类用于行为建模,称为行为图。

①结构图
结构图有4种,分别是:
⑴类图(classdiagram)
类图显示一组类、接口、协作以及它们之间的关系。类图可用于说明系统的静态设计视图。包含主动类的类图可用于说明系统的静态进程视图。

⑵对象图(objectdiagram)
UML图中对象图显示一组对象以及他们之间的关系。对象图是类图中发现的事物的实例的数据结构和静态快照。对象图也可用于说明系统的静态设计视图和静态的进程视图,但它是从现实或原型的方面来透视的(因为是类的实例)。

⑶构件图(componentdiagram)
UML图中构件图显示了一组构件以及他们之间的关系。构件图可用于说明系统的静态实现视图。

⑷实施图(deploymentdiagram)
UML图中实施图显示了一组节点以及他们之间的关系。实施图可用于说明系统的静态实施视图。

这4种图还有一些常见的变体,例如子系统图实际就是一个类图。

②行为图
行为图有5种,分别是:
⑴用况图(usecasediagram)
UML图中用况图用于组织系统的行为,描述了一组用况和参与者以及他们之间的关系。用况图用于描述系统的静态用况视图。

⑵顺序图(sequencediagram)和协作图(collaborationdiagram)
UML图中顺序图和协作图在语义上是等价的,它们可以互相转换。顺序图和协作图又被统称为交互图(interactiondiagram)。它们显示了一组对象和由这组对象发送和接收的消息。顺序图强调消息的时间次序,协作图强调发消息的对象的结构组织。

⑶状态图(statechartdiagram)和活动图(activitydiagram)
UML图中状态图和活动图在语义上是等价的,它们可以互相转换。状态图显示了一个由状态、转换、事件和活动组成的状态机,它强调一个对象按事件次序发生的行为,通常状态图用于对接口、类或协作的行为建模。活动图显示了系统从活动到活动的流,它强调对象之间的控制流,通常活动图用于对系统的功能建模。
对于一个系统而言,前面提到的5种视图并非必须的,可以根据系统的需要进行裁剪或补充。

最新文章

  1. linux 服务的操作
  2. Django 的开始之路
  3. ZOJ2588 Burning Bridges(割边模板)
  4. Android实现SQLite数据库联系人列表
  5. javascript禁用与启用select标签(实用版)
  6. 学习第一个头文件stdio.h
  7. hdu 1208 Pascal's Travels
  8. BZOJ 1062 糖果雨
  9. CSS备忘-1
  10. Linux: service network/Network/NetworkManager
  11. 不可不知的HTML优化技巧
  12. Assets.xcassets误删后的恢复
  13. 设 $y_1(x), y_2(x)$ 是 $y''+p(x)y'+q(x)y=0$ 的两个解 ($p(x), q(x)$ 连续), 且 $y_1(x_0)=y_2(x_0)=0$, $y_1(x)\not\equiv 0$. 试证: $y_1(x)$, $y_2(x)$ 线性相关.
  14. 使用JavaScript实现单向链表
  15. 接口自动化测试 (三)request.post
  16. finecms如何控制调用子栏目的数量
  17. The zero inflated negative binomial distribution
  18. 使用Redis数据库(1)(三十三)
  19. Vue.js学习使用心得(一)
  20. SQL Server窗口框架——ROWS、RANGE

热门文章

  1. C#解决微信支付Exception has been thrown by the target of an invocation(调用的目标发生了异常)的问题
  2. 数据结果与算法分析(1)——算法分析
  3. 【转】Split strings the right way – or the next best way
  4. <item name="android:windowNoTitle">true</item> 不起作用。标题栏未被隐藏
  5. 深入理解计算机系统第二版习题解答CSAPP 2.16
  6. [引]LINQ to XML 类概述
  7. C#总结3
  8. PHP中foreach循环详解
  9. ###STL学习--适配器
  10. java集合_collection 中的方法 通过Arraylist来体现