UML (Unified Modeling Language)为面向对象软件设计提供统一的、标准的、可视化的建模语言。适用于描述以用例为驱动,以体系结构为中心的软件设计的全过程。

UML的定义包括UML语义和UML表示法两个部分。

(1) UML语义:UML对语义的描述使开发者能在语义上取得一致认识,消除了因人而异的表达方法所造成的影响。

(2) UML表示法:UML表示法定义UML符号的表示法,为开发者或开发工具使用这些图形符号和文本语法为系统建模提供了标准

UML模型图的构成

事物(Things):UML模型中最基本的构成元素,是具有代表性的成分的抽象

关系(Relationships):关系把事物紧密联系在一起

图(Diagrams ):图是事物和关系的可视化表示

UML事物

UML包含4种事物:构件事物行为事物   分组事物  注释事物

构件事物:UML模型的静态部分,描述概念或物理元素它包括以下几种:

类:具有相同属性相同操作相同关系相同语义的对象的描述

接口:描述元素的外部可见行为,即服务集合的定义说明

协作:描述了一组事物间的相互作用的集合

用例:代表一个系统或系统的一部分行为,是一组动作序列的集合

构件:系统中物理存在,可替换的部件

节点:运行时存在的物理元素

另外,参与者、信号应用、文档库、页表等都是上述基本事物的变体

行为事物:UML模型图的动态部分,描述跨越空间和时间的行为:

交互:实现某功能的一组构件事物之间的消息的集合,涉及消息、动作序列、链接

状态机:描述事物或交互在生命周期内响应事件所经历的状态序列

分组事物:UML模型图的组织部分,描述事物的组织结构。包:把元素组织成组的机制

注释事物:UML模型的解释部分,用来对模型中的元素进行说明,解释。注解 :对元素进行约束或解释的简单符号

UML关系

依赖(dependency)是两个事物之间的语义关系,其中一个事物(独立事物)发生变化,会影响到另一个事物(依赖事物)的语义

关联(association)是一种结构关系,它指明一个事物的对象与另一个事物的对象间的联系

泛化(generalization)是一种特殊/一般的关系。也可以看作是常说的继承关系

实现(realization)是类元之间的语义关系,其中的一个类元指定了由另一个类元保    证执行的契约

UML中的九种图(简单介绍,后期会发表具体的有关九中图的博客)

用例图(Use Case Diagram ):用例图是从用户角度描述系统功能, 是用户所能观察到的系统功能的模型图,用例是系统中的一个功能单元

类图(Class Diagram):类图描述系统中类的静态结构.不仅定义系统中的类,表示类之间的联系,如关联、依赖、聚合等,也包括类内部结构(类的属性和操作);类图是以类为中心来组织的,类图中的其他元素或属于某个类或与类相关

对象图(ObjectDiagram):对象图是类图的实例几乎使用与类图完全相同的标识。他们的不同点在于对象图显示类的多个对象实例,而不是实际的类.

顺序图(Squenece Diagram):顺序图显示对象之间的动态合作关系,它强调对象之间消息发送的顺序,同时显示对象之间的交互;顺序图的一个用途是用来表示用例中的行为顺序,当执行一个用例行为时,顺序图中的每条消息对应了一个操作或引起状态转换的触发事件

协作图(Collaboration Diagram):协作图描述对象间的协作关系,协作图跟顺序图相似,显示对象间的动态合作关系。除显示信息交换外,协作图还显示对象以及他们之间的关系;协作图的一个用途是表示一个类的操作的实现。

状态图(State Chart Diagram):状态图是一个类对象所可能经历的所有历程的模型图;状态图由对象的各个状态和链接这些状态的转换组成

活动图(Activity Diagram):活动图是状态图的一个变体,用来描述执行算法的工作流程中设计的活动;活动图描述了一组顺序的或并发的活动。

构件图(Component Diagram):构件图为系统的构建建模型,构建即构造应用的软件单元,还包括各种构建之间的依赖关系,以便通过这些依赖关系来估计对系统构建的修改给系统可能带来的影响。

部署图(Depoyment Diagram):部署视图描述位于节点实例上的运行构建实例的安排,节点是一组运行资源,如计算机、设备或存储器。

简单整理UML:

是一组具有相同属性、相同操作、相同关系和相同语义的对象的描述      
对象 属性:对象名/类名/  
接口 是描述了一个类或构件的一个服务操作集
协作 定义了一个交互,它是由一组共同工作以提供某种协作行为的角色和其他元素构成的群体
用例 是一对一组动作序列的描述
主动类 对象至少拥有一个进程或线程的类
构件 在系统外部与系统直接交互的人或事物
节点 是在运行时存在的物理元素
交互 它由在特定语境中共同完成一定任务的一组对象间交互的消息组成
状态机 它描述了一个对象或一个交互在生命周期内响应时间所经历的状态序列
把元素组织成组的机制
注释事物 是UML模型的解释部分
依赖 一条可能有方向的虚线
关联 一条实线,可能有方向
泛化 一条带有空心箭头的实线
实现 一条带有空心箭头的虚线
参与者 在系统外部与系统更直接交互的人或事物
     

版权声明:本文为博主原创文章,未经博主允许不得转载。

UML整体概括的更多相关文章

  1. 微信小程序-----校园头条整体概括

    1.项目需求 为了让在校师生可以更加方便的了解学校信息,从而合理的安排自己的时间,避免发生冲突和错过事件,通过小程序的便利性,可以达到随手一查的功能. 2.项目布局 3.效果展示 3.1登录 3.2首 ...

  2. SpringMVC的流程分析(一)—— 整体流程概括

    SpringMVC的整体概括 之前也写过springmvc的流程分析,只是当时理解的还不透彻所以那篇文章就放弃了,现在比之前好了些,想着写下来分享下,也能增强记忆,也希望可以帮助到人,如果文章中有什么 ...

  3. Java设计模式 -- 基本原则

    这两个星期开始系统地学习设计模式相关的知识,对每一个原则或者设计模式主要从下面几点分析学习: 定义:简单地描述其作用 解决问题:说明该原则或设计模式解决什么限制条件下的问题. 结构图:绘制相关例子的U ...

  4. OO第一单元三次作业总结

    写在前面 第一单元作业是针对输入的多项式进行格式合法判断,然后进行求导,结果长度优化,最后输出.三次难度递增,不断添加新的需求,总体感觉在实现方面没有多大困难(?),个人主要困扰环节是寻找自己未知bu ...

  5. python基础学习笔记2

    词典   词典(dictionary)与列表相似,也可以存储多个元素.存储多个元素的对象称为容器(container); 常见的创建词典的方法: >>>dic = {'tom':11 ...

  6. 把数据输出到Word (组件形式)

    上一篇的文章中我们介绍了在不使用第三方组件的方式,多种数据输出出到 word的方式,最后我们也提到了不使用组件的弊端,就是复杂的word我们要提前设置模板.编码不易控制.循环输出数据更是难以控制.接下 ...

  7. DRP总结

    DRP终于结束了,战线有点长了.记得刚开始听说DRP的时候,感觉这个名词很专业,再加上视频一共有300集,顿时感觉这是一个大项目,很正规.很专业的项目.虽然后来知道DRP知识ERP的一个分支,项目规模 ...

  8. 软件project师的属性与发展

    工作近十年了.[软件project师] 一直是我职业 title 的中心词,仅仅是前面的修饰语在不断变化,从0基础.中级.高级到资深. 事实上 [软件project师] 是一个非常泛化的定义.工作现实 ...

  9. 深入理解Android View(转)

    做android其实也有一段时间了,我们每个人都会碰到一些这样或那样的问题,碰到问题了就拼命百度,可是发现,我们解决问题的能力并没有提升很多,所以我才有想总结一下我项目中所用过的相关知识,并了解一下A ...

随机推荐

  1. 【BZOJ5010】【FJOI2017】矩阵填数 [状压DP]

    矩阵填数 Time Limit: 10 Sec  Memory Limit: 128 MB[Submit][Status][Discuss] Description 给定一个 h*w 的矩阵,矩阵的行 ...

  2. 代理设计模式iOS开发Demo(示例程序)源代码

        iOS程序源代码下载链接:03-代理设计模式.zip28.3 KB // main.m // //  main.m //  03-代理设计模式 // //  Created by apple ...

  3. spring cloud ribbon 断路器

    @EnableDiscoveryClient @SpringBootApplication @EnableCircuitBreaker //开启断路器 public class ConsumerMov ...

  4. sublime在搜索的时候排除js文件

    代码审计的时候sublime是一个神器.所以.... Ctrl + Shift + F /home/i3ekr/Desktop/coding/phpcms,*.php 这样就可以直接搜索所有的php文 ...

  5. linux中字符串转换函数 simple_strtoul【转】

    转自:http://blog.csdn.net/tommy_wxie/article/details/7480087 Linux内核中提供的一些字符串转换函数: lib/vsprintf.c [htm ...

  6. Linux 入门记录:九、Linux 文件系统挂载管理

    一.挂载操作 磁盘或分区创建好文件系统后,需要挂载到一个目录才能够使用. Windows 或 Mac 系统会进行自动挂载,一旦创建好文件系统后会自动挂载到系统上,Windows 上称之为 C 盘.D ...

  7. abp 调试

    概要 研究Abp(ASP.NET Boilerplate)框架有几个月了,从一遍遍的看官方文档,到现在看源码,一路走来学习了很多知识. 很多新手都很关心源码如何调试,我也是如此,在反复看Debuggi ...

  8. 2017多校第6场 HDU 6096 String AC自动机

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6096 题意:给了一些模式串,然后再给出一些文本串的不想交的前后缀,问文本串在模式串的出现次数. 解法: ...

  9. ==和equals()方法的区别

    ==和equals()方法的区别 这是一道经典的面试题,但是很多人对其一直很困惑,最近刚好复习了他们两者的区别,现总结如下: 一.==:两端可以存放不同的数据     1.放基本数据类型:根据基本数据 ...

  10. ansible安装和配置

    一.安装ansible准备 //安装准备 .两台机器 172.7.15.106 172.7.15.111 .设置hostname以及hosts 172.7.15.106 web9.lulu.com 1 ...