导读:在UML的学习中,介绍了9种图,外加一个包图。这9种图和4大关系,可以说是UML的一个核心内容。我根据自己的笔记,以及查阅的一些资料,对这9种图和包图,做一个总结。

一、基本定义

1、1  总体说明:

1、2 细化说明:

1、用例图

定义:由参与者(Actor)、用例(Use Case)以及它们之间的关系构成的用于描述系统功能的动态视图称为用例图。

用途:用例图(User Case)是被称为参与者的外部用户所能观察到的系统功能的模型图,呈现了一些参与者和一些用例,以及它们之间的关系,主要用于对系统、子系统或类的功能行为进行建模。

用例图主要的作用有三个:(1)获取需求;(2)指导测试;(3)还可在整个过程中的其它工作流起到指导作用。

关系:泛化、扩展、包含。

2、类图

定义:类图Class diagram通过显示出系统的类以及这些类之间的关系来表示系统。

用途:帮助我们更直观的了解一个系统的体系结构。

3、对象图

定义:对象图(Object Diagram) 是显示了一组对象和他们之间的关系。使用对象图来说明数据结构,类图中的类或组件等的实例的静态快照。

用途: 1,捕获实例和连接。2,在分析和设计阶段创建。3, 捕获交互的静态部分。4,举例说明数据/对象结构。5,详细描述瞬态图。6,由分析人员、设计人员和代码实现人员开发。

4、活动图

定义:描述用例要求所要进行的活动,以及活动间的约束关系,有利于识别并行活动。

用途:阐明业务用例实现的工作流程。

5、状态图

定义:描述类的对象所有可能的状态,以及事件发生时状态的转移条件。

用途:研究类、角色、子系统、或组件的复杂行为。

6、序列图(顺序图)

定义:描述对象之间发送消息的时间顺序,显示多个对象之间的动态协作。它可以表示用例的行为顺序,当执行一个用例行为时,图中的每条消息对应了一个类操作或状态机中引起转换的触发事件。

用途:用于为使用方案的逻辑建模。

7、协作图

定义:和序列图相似,显示对象间的动态合作关系。

用途:通过描绘对象之间消息的移动情况来反映具体的方案。

8、构件图(组件图)

定义:描述代码构件的物理结构以及各种构建之间的依赖关系。用来建模软件的组件及其相互之间的关系,这些图由构件标记符和构件之间的关系构成。在组件图中,构件时软件单个组成部分,它可以是一个文件,产品、可执行文件和脚本等。

用途:显示系统组件间的结构关系

9、部署图(配置图)

定义:描述了一个系统运行时的硬件节点,在这些节点上运行的软件构件将在何处物理运行以及它们将如何彼此通信的静态视图。

10,、包图

定义:一个"包图"可以是任何一种的UML图组成,通常是UML用例图或UML类图。 包是一个UML结构,它使得你能够把诸如用例或类之类模型元件组织为组。 包被描述成文件夹,可以应用在任何一种UML图上。

二、对比关系

1,对象图和类图

联系:对象图是类图的实例,几乎使用与类图完全相同的标识。

区别;对象图显示类的多个对象实例,而不是实际的类。一个对象图是类图的一个实例。由于对象存在生命周期,因此对象图只能在系统某一时间段存在。

2,序列图和协作图

联系:显示对象间的动态合作关系,它们都属于交互图。

区别:序列图强调消息序列,即强调消息是如何在对象之间被发送和接收的。协作图强调上下级关系。

三、在软工中的应用

UML是一种可视化的面向对象建模语言,那么,它在软件的开发过程中,又是如何应用的呢?下面,就先介绍这9种图在软件开发过程中的各个阶段的使用。

、个人感受

其实,我感觉,这个总结有问题,因为脑子里还有一些东西,没表达出来,但是又实在不知道怎样表达。不管了,先就这样看着吧,等我想出来了,再回头修改。

在UML里,最重要的就是这9种图的使用和4大主要关系的把握。现在,还不是很清楚这9种图的具体使用方法,但好歹也算是有了个初步的阶段划分。一点一点来,总会好的。传说中,协作图和序列图的转换很好玩,实在很期待。

请大家多多指教,谢谢!

【UML】9种图+包图的更多相关文章

  1. UML九种图-包图、类图

    UML九种图-包图.类图 一.包 (一)相关概念: 1.包: 一个包=一层=一个命名空间=一个文件夹 2.包的命名: 简单名:王老二 路径名:中国.河北省.廊坊市.廊坊师范学院.信息技术提高班.九期班 ...

  2. 【聚沙成塔系列】之《UML九种图-包图、类图》

    一.包 (一)相关概念: 1.包: 一个包=一层=一个命名空间=一个文件夹 2.包的命名: 简单名:王老二 路径名:中国.河北省.廊坊市.廊坊师范学院.信息技术提高班.九期班.王老 3.可见性: +公 ...

  3. UML 结构图之包图 总结

    [注] 本文不是包图的基础教程, 只是包图的图形总结. 学习UML图形 推荐阅读<UML参考手册>第2版. http://www.umlchina.com/ 推荐微软的开发软件设计模型 h ...

  4. 【UML 建模】UML建模语言入门 -- 静态图详解 类图 对象图 包图 静态图建模实战

    发现个好东西思维导图, 最近开始用MindManager整理博客 . 作者 :万境绝尘  转载请注明出处 : http://blog.csdn.net/shulianghan/article/deta ...

  5. UML建模语言入门 -- 静态图详解 类图 对象图 包图 静态图建模实战

    发现个好东西思维导图, 最近开始用MindManager整理博客 . 作者 :万境绝尘  转载请注明出处 : http://blog.csdn.net/shulianghan/article/deta ...

  6. <十四>UML核心视图静态视图之类图和包图

    一:类图(行为类和实体类) --->类图用于展示系统中的类及其相互之间的关系 --->概念层类图 --->说明层类图   二:概念层类图 --->概念层的观点认为:在这个层次的 ...

  7. UML 包图 详细介绍

      6.1 包图的概念 包是一种常规用途的组合机制.UML中的一个包直接对应于Java中的一个包,C#中的命名空间.在Java中,一个包可能含有其他包.类或者同时含有这两者.进行建模时,通常使用逻辑性 ...

  8. UML从需求到实现----包图

    上接:UML中图出现顺序 上回讲到用例图,UML中各个图之间的关系.接着根据UML建模中图出现的顺序来总结包图. 用例图确定以后.用户的需求基本上就确定了.接下来要根据用户的要求去设计系统.建模的顺序 ...

  9. UML静态视图——类图、对象图、包图

    绘画类的最重要的图是抽象类.让我们回顾一下类的基本内容. 一.分类 1.类的概念: 面向对象编程的类是一个基本概念.类是具有相同特性的.办法.集合语义和一组对象的关系. 2.类分类: 实体类:保存要放 ...

随机推荐

  1. 微信小程序开发-微信登陆流程

    我们需要一个标识来记录用户的身份的唯一性,在微信中unionId就是我们所需要的记录唯一ID,那么如何拿到unionId就成了关键,我将项目分为小程序和 后台PHP代码两部分来讲. 从小程序代码说起 ...

  2. body和普通div背景图宽高百分比的区别

    body和普通div背景图的区别  background: url(//m.360buyimg.com/mobilecms/s220x220_jfs/t2746/167/831241799/29915 ...

  3. 内存泄露,C++

    内存泄露,C++通常是指new出来的内存没有delete掉.在你的代码里边,new了一块内存,然后马上就delete,自然就没有内存泄露了(呃……其实我也不确定啦,因为你用的是delete,而不是de ...

  4. Android Studio报错Unable to resolve dependency for ':app@release/compileClasspath':无法引用任何外部依赖的解决办法

    Android Studio 在引用外部依赖时,发现一直无法引用外部依赖.刚开始以为是墙的问题,尝试修改Gradle配置,未解决问题. 最终发现原来是在Android Sudio安装优化配置时,将Gr ...

  5. 面向阿里云专家的 Azure 云服务介绍

    本文是面向阿里云专家的 Azure 云服务介绍,参考本文可以帮助大家“按图索骥”在 Azure 的平台上找到能满足自己需求的服务. 在公有云计算蓬勃发展的同时,中国也出现了越来越多的本土公有云平台.针 ...

  6. 一次性删除数据库所有表和所有存储过程 SQL语句

    一次性删除数据库所有表和所有存储过程 SQL语句 今天转移数据库数据,需要把数据库原来的表和存储过程清空.删除所有的表:如果由于外键约束删除table失败,则先删除所有约束: --/第1步****** ...

  7. 你不知道的HTTP之HTTPS

    确保web安全的HTTPS HTTPS=HTTP+ 加密 + 认证 + 完整性保护 1.加密: 1)通信的加密 所谓互联网,是由能连通到全世界的网络组成的.无论世界哪个角 落的服务器在和客户端通信时, ...

  8. SQL还原数据库

    还原一个备份数据库的经历. 首先,手头上有工程文件及相应的数据库的备份. 步骤: 1.在工程文件里找到配置文件,我这个是在bin目录里找到config.ini 2.双击打开它,里面有一些数据库的相关信 ...

  9. (转)SpringMVC学习(五)——SpringMVC的参数绑定

    http://blog.csdn.net/yerenyuan_pku/article/details/72511611 SpringMVC中的参数绑定还是蛮重要的,所以单独开一篇文章来讲解.本文所有案 ...

  10. python爬虫---实现项目(四) 用BeautifulSoup分析新浪新闻数据

    这次只演示了,如何在真实项目内用到BeautifulSoup库来解析网页,而新浪的新闻是ajax加载过来的数据,在这里我们只演示解析部分数据(具体反扒机制没做分析). 代码地址:https://git ...