UML的全称是统一建模语言:Unified Modeling Language。

是用来为面向对象开发系统的产品进行说明可视化和编制文档的方法。

它是一种标准的图形化建模语言,是面向对象分析与设计的一种标准表示。

它的本意是可以使IT人员进行程序设计的建模。它不是程序设计语言,而是建模语言。

UML架构

UML由图和元模型组成。

图是UML的语法,元模型是语义,是图的意思。UML语义定义在四个抽象级:

1元元模型:组成UML最主要的元素“事物”,代表要定义的全部事物。

2元模型:是UML的基本元素。包含了面向对象和面向组件的概念。这一层的概念都是“远远模型”中的“事物”概念的实例。

3模型层:组成了UML的模型,这一层中的概念都是元模型层中概念的实例。这一层中的模型通常叫做类模型或概念模型

4用户模型:这层中的全部元素都是UML模型的样例。这层中的概念都是模型中的一个实例(通过分类),也是元模型的一个实例(通过版类化)。这一层的模型通常叫做对象模型或实例模型。

UML的模型、视图、图和系统架构建模

UML用来描写叙述模型。模型能够表示系统的结构和行为特征、以及行为和动态特征。从不同角度为系统架构建模,能够形成不同的模型图。包含

1、用例视图:强调从用户角度看到的或须要的系统功能,也被称作用户模型视图或想定视图。

包含:用例图。

2、逻辑视图:展现系统静态或结构组成特征,也称作结构模型视图或静态视图。

包含:类图、对象图。

3、并发视图:体现系统动态或行为特征,也叫做行为模型视图、过程视图、协作视图、动态视图。

包含:序列图、协作图、状态图、活动图。

4、组件视图:体现了系统实现的结构和行为特征。也叫做实现模型视图、开发视图。

包含:组件图。

5、展开视图:体现了实现环境的结构和行为特征,也叫做环境模型视图、物理视图。

包含:展开图。

模型图包含

1、事物:模型中最基本元素,具有代表性成分的抽象。

2、关系:它把事物紧密联系在一起。

3、图:事物和关系的可视化表示。

事物

UML包括四种事物:构建事物、行为事物、分组事物、凝视事物

构建事物

它是模型的静态部分。描写叙述概念或物理元素。包含:类、接口、协作(描写叙述一组事物的相互作用的集合)、用例(表示一个系统或系统一部分行为,是一组动作序列的集合)、构件(系统中物理存在。能够替换)、节点(执行时存在的物理元素)。
參与者、信号应用、文档库、页表等都是基本事物的变体。

行为事物

UML模型的动态部分,描写叙述跨越空间和时间的行为,包含
交互:实现某功能的一组构件事物的消息的集合,涉及消息、动作序列、链接等。

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

分组事物

UML模型视图的组织部分。描写叙述事物的组织结构。

凝视事物

UML模型的解释部分,用来对模型中元素进行解释说明。

关系

关系包含
1、依赖:两个事物之间的语义关系。当中一个事物(独立事物)发生变化。会影响到还有一个事物(依赖事物)语义。

2、关联:是一种结构关系。指明一个事物的对象与还有一个事物对象的关系。
3、泛化:一般和特殊的关系。即继承关系。
4、实现:类元之间的语义关系,当中一个类元指定了由还有一个类元保证运行的契约。


UML中的图

用例图:
用例图是从用户角度描写叙述系统功能。是用户所能观察到的系统功能模型图。用例图的主要目的是帮助开发团队理解系统的功能需求。

类图:
类图表示不同的实体怎样彼此相关,描写叙述了系统的静态结构。类图以类为中心来组织。

对象图:
对象图是类图的实例。标识和类图差点儿同样,差别在于对象图显示类的多个对象的实例,而不是实际的类。

顺序图:
顺序图显示了了对象之间动态合作关系,强调对象之间发送消息的顺序,同一时候显示对象之间的交互。


协作图:
协作图是描写叙述对象间的协作关系,跟顺序图相似。显示对象间动态合作关系,比如信息交换。以及对象之间的关系。


状态图:
状态图表示一个类实例对象可能经历全部状态转换信息。


活动图:
活动图表示在处理某个活动时。两个或很多其它对象之间的过程控制流,描写叙述了一组顺序的或并发的活动。


构件图:
构件图提供了系统的物理视图。用来显示系统中的各种构件之间的依赖关系。

部署图:
部署图描写叙述该软件怎样部署到硬件环境中。

以下是8中图的关系(没有部署图)


UML简单介绍的更多相关文章

  1. UML简单介绍—类图详解

    类图详解 阅读本文前请先阅读:UML简单介绍—类图这么看就懂了 1.泛化关系 一个动物类: /** * 动物类 */ public class Animal { public String name; ...

  2. UML简单介绍-如何看懂UML(一)

      在计算复杂的数学题时,我们必然会打草稿计算 在绘画课中,我们可以素描出来看到的事物 那么在程序设计中呢? 如何描绘传达你脑海中的关于这个程序 ,设计的蓝图草稿?   OOP的程序设计中,最多的自然 ...

  3. UML简单介绍—类图这么看就懂了

    如何看懂类图 1.类图简介 描述类的内部结构和类与类之间的关系,是一种静态结构图. 在UML类图中,常见的有以下几种关系: 泛化(Generalization),  实现(Realization),关 ...

  4. UML 简单介绍

    Unified modeling Language - 统一建模语言

  5. UML动态模型图简单介绍

    UML动态模型图描述了系统动态行为的各个方面,包括用例图.序列图.协作图.活动图和状态图.下面就每种图做一个简单介绍: 用例图 用例图描述系统外部的执行者与系统提供的用例之间的某种联系.所谓用例是指对 ...

  6. Spring Framework简单介绍

    Spring Framework        学习java编程不知不觉已经三年时间了,開始的时候,总是喜欢看着视频,然后按部就班的敲打着键盘,每当系统正常执行后.心里乐开了花.最開始的时候,所有的代 ...

  7. [原创]关于mybatis中一级缓存和二级缓存的简单介绍

    关于mybatis中一级缓存和二级缓存的简单介绍 mybatis的一级缓存: MyBatis会在表示会话的SqlSession对象中建立一个简单的缓存,将每次查询到的结果结果缓存起来,当下次查询的时候 ...

  8. 利用Python进行数据分析(7) pandas基础: Series和DataFrame的简单介绍

    一.pandas 是什么 pandas 是基于 NumPy 的一个 Python 数据分析包,主要目的是为了数据分析.它提供了大量高级的数据结构和对数据处理的方法. pandas 有两个主要的数据结构 ...

  9. 利用Python进行数据分析(4) NumPy基础: ndarray简单介绍

    一.NumPy 是什么 NumPy 是 Python 科学计算的基础包,它专为进行严格的数字处理而产生.在之前的随笔里已有更加详细的介绍,这里不再赘述. 利用 Python 进行数据分析(一)简单介绍 ...

随机推荐

  1. cocos2dx 在windows上实现键盘输入

    cocos2d主要面向的是触摸屏幕设备的,在WINDOWS下的定位感觉多多少少就是相当于一个模拟器,因此并没有太多的PC下重要的键盘支持.然而响应键盘消息对于调试来说可以提供不少方便.下边就通过更改c ...

  2. ubuntu安装Java jdk1.7.0

    1.下载JDK  http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html 2.解压 3. ...

  3. webform中几个常用的控件

    一,简单控件 1,Lable——标签:在网页中呈现出来的时候会变成span标签 属性:Text——标签上的文字  BackColor,ForeColor——背景色,前景色 Font——字体 Bold- ...

  4. Eclipse用法和技巧八:自动添加try/catch块1

    站在编译器的角度来看,java中的异常可以分为两种,已检查异常和未检查异常.对于已检查异常比如IO操作,编译器会要求设置try/catch语句块,在eclipse中也只要使用帮助快捷键ctrl+1,就 ...

  5. HDU 4350 Card

    打表找规律,比赛应付了一下,其实还可以把内存再优化一半掉,下面的0都是手动填充的,可以优化掉 题意: T个测试数据 下面52个数字表示 从栈顶到栈底的52个数 n l r表示 从栈顶下数 [l,r] ...

  6. HDU 4669 Mutiples on a circle (DP , 统计)

    转载请注明出处,谢谢http://blog.csdn.net/ACM_cxlove?viewmode=contents    by---cxlove 题意:给出一个环,每个点是一个数字,取一个子串,使 ...

  7. Python中字符串的方法及注释

    先整理到这里:用的时候便于查询.相当于自己的资料库吧. capitalize()   把字符串的第一个字符改为大写 casefold()   把整个字符串的所有字符改为小写 center(width) ...

  8. C++学习之路—const用法总结

    (根据<C++程序设计>(谭浩强)整理,整理者:华科小涛,@http://www.cnblogs.com/hust-ghtao转载请注明) C++为什么要引入const?它允许你指定一个语 ...

  9. Ajax - 在函数中使用Ajax怎么使用返回值 - Ajax赋值给全局变量异常的解决方法

    要使用异步操作:  async : false,//取消异步操作 //添加节点函数 function InsertNode(nodenum, nodename, type) { var returnv ...

  10. 好多NFS的文章

    http://www.cnblogs.com/lidabo/category/587288.html http://www.cnblogs.com/lidabo/p/4380555.html