一、用例图
1、定义:由参与者(Actor)、用例(UseCase)以及它们之间的关系构成的用于描述系统功能的动态视图称为用例图。
2、主要用于对系统子系统或类的功能行为进行建模。
3、定义了系统的功能需求,从系统外部看系统功能,并不描述系统内部对功能的具体实现
4、箭头:用来表示参与者和系统通过相互发送信号或消息进行交互的关联关系。箭头尾部用来表示启动交互的一方,箭头头部用来表示被启动的一方,其中用例总是要由参与者来启动。
5、用例图主要作用::(1)获取需求;(2)指导测试;(3)在整个过程中的其它工作流起到指导作用。
6、关系:
(1)包含关系:基本用例的行为包含了另一个用例的行为。基本用例描述在多个用例中都有的公共行为。包含关系本质上是比较特殊的依赖关系。
(2)泛化关系:代表一般与特殊的关系,在泛化关系中子用例继承了父用例的行为和含义,子用例也可以增加新的行为和含义或者覆盖父用例中的行为和含义。
(3)扩展关系:含义和泛化关系类似,但在扩展关系中,对于扩展用例有更多的规则限制,基本用例必须声明扩展点,而扩展用例只能在扩展点上增加新的行为和含义。与包含关系一样,扩展关系也是依赖关系的版型。在扩展关系中,箭头的方向是从扩展用例到基本用例。
二、类图(Classdiagram )
1、定义:最常用的UML图,显示出类、接口以及它们之间的静态结构和关系;它用于描述系统的结构化设计。
2、最基本元素:类或接口
3、类的组成部分:类名、属性、方法
加号(+)表示public;减号(-)表示private;#号表示protected保护;省略这些修饰符表示具有package(包)级别的可见性。
4、接口:接口是一系列操作的集合,它指定了一个类所提供的服务。
5、类图中常见关系:
继承(Generalization),关联关系(Association),聚合关系(Aggregation),复合关系(Composition),依赖关系(Dependency)。其中,聚合关系(Aggregation),复合关系(Composition)属于关联关系(Association)
一般关系表现为继承或实现关系(isa),关联关系表现为变量(has a ),依赖关系表现为函数中的参数(use a)。
6、表示方法:
(1)依赖 :是类与类之间的连接,表示一个类依赖于另一个类的定义。例如如果A依赖于B,则B体现为局部变量,方法的参数、或静态方法的调用。
虚线+箭头 箭头指向被依赖的一方,也就是指向局部变量
(2)聚合:是关联关系的一种,是强的关联关系。聚合关系是整体和个体的关系。关联关系的两个类处于同一层次上,而聚合关系两个类处于不同的层次,一个是整体,一个是部分。
空心菱形+实线+箭头,箭头指向部分
(3)组合:是关联关系的一种,是比聚合关系强的关系。它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期
实心菱形+实线+箭头
(4)关联:类与类之间的联接,它使一个类知道另一个类的属性和方法
实线+箭头,箭头指向被使用的类
(5)一般化关系:表示为类与类之间的继承关系,接口与接口之间的继承,类对接口的实现关系
空心箭头+实线,箭头指向父类。或空心箭头+虚线,如果父类是接口。
三、对象图(ObjectDiagram)
1、定义:显示了一组对象和他们之间的关系,对象图和类图一样反映系统的静态过程,但它是从实际的或原型化的情景来表达的。对象图是类图的实例,几乎使用与类图完全相同的标识。他们的不同点在于对象图显示类的多个对象实例,而不是实际的类。由于对象存在生命周期,因此对象图只能在系统某一时间段存在。
2、用途:(1)捕获实例和连接
(2)在分析和设计阶段创建
(3)捕获交互的静态部分
(4)举例说明数据/对象结构
(5) 详细描述瞬态图
(6)由分析人员、设计人员和代码实现人员开发
3、类图与对象图区别
类图 |
对象图 |
包含:类名,属性,操作 |
包含:对象名称和属性 |
类的名称栏只包含类名 |
对象名称栏包含对象名:类名 |
类中列出操作 |
对象图中不包含操作内容,因为数以同一个类的对象其操作相同 |
类中使用了关联连接,关联中使用名称、角色以及约束等特征定义 |
对象使用链进行连接,链中包含名称、角色 |
类是一类对象 的抽象,类不存在多重性 |
对象可以具有多重性 |
面向对象动态建模,用于建立行为的实体间行为交互的四种图:状态图(StageDiagram),序列图(Sequence Diagram),协作图(Communication Diagram),活动图(Activity Diagram)
四、活动图(actogragh/activitydiagram)
1、定义:阐明了业务用例实现的工作流程
2、元素:
(1)活动状态 action states
(2)活动状态间转移
(3)判断:定义一组警戒条件
(4)保证条件
(5)同步条:显示平行分支流
(6)起点和终点
五、状态图(statechartdiagram )
1、定义:描述一个实体基于事件反应的动态行为,显示了该实体如何根据当前所处的状态对不同的事件做出反应的。状态图用于显示状态机(它指定对象所在的状态序列)、使对象达到这些状态的事件和条件、以及达到这些状态时所发生的操作
2、状态机:状态机由状态组成,各状态由转移链接在一起
3、状态:状态是对象执行某项活动或等待某个事件时的条件
4、转移:转移是两个状态之间的关系,它表示当发生指定事件并且满足指定条件时,第一个状态中的对象将执行某些操作并进入第二个状态
六、序列图(sequencediagram)
1、定义:序列图主要用于按照交互发生的一系列顺序,显示对象之间的这些交互。很象类图。
2、用途:是把用例表达的需求,转化为进一步、更加正式层次的精细表达;序列图除了在设计新系统方面的用途外,它们还能用来记录一个存在系统(称它为“遗产”)的对象现在如何交互
3、图符
七、协作图(CommunicationDiagram)
1、定义:协作图(CollaborationDiagram /Communication Diagram,也叫合作图)是一种交互图(interaction diagram)(1)强调的是发送和接收消息的对象之间的组织结构。使用协作图来说明系统的动态情况。协作图使描述复杂的程序逻辑或多个平行事务变得容易。(2)协作图显示对象之间的关系,它更有利于理解对给定对象的所有影响,也更适合过程设计。(3)协作图作为表示对象间相关作用的图形表示,也可以有层次结构。可以把多个对象作为一个抽象对象,通过分解,用下层协作图表示出这多个对象间的协作关系,这样可缓解问题的复杂度
2、基本元素:活动者(Actor)、对象(Object)、连接(Link)和消息(Message)。在UML中,使用实线标记两个对象之间的连接,
3、表示:用长方形框表示对象。当两个对象间有消息传递时用带箭头的有向边连接这两个对象
八、构件图
1、定义:主要用于描述各种软件构件之间的依赖关系,从软件架构的角度来描述一个系统的主要功能。
2、构件图的构成
对系统静态实现进行建模
①构件
②接口
③关系
3、构件与接口
①实现:(构件与对应接口之间的关系)
②依赖:(构件与其他构件之间个关系)
③示出接口:构件实现的接口
④引入接口:构件使用的接口
九、部署图(deploymentdiagram)
1、定义:描述了一个运行时的硬件结点,以及在这些结点上运行的软件组件的静态视图。部署图显示了系统的硬件,安装在硬件上的软件,以及用于连接异构的机器之间的中间件
2、创建部署模型的目的
(1)探究系统投产的相关问题.
(2)探究你的系统和生产环境中的其它系统的依赖关系,这些系统可能是已经存在,或是将要引入的。
(3) 描述一个商业应用主要的部署结构。
(4)设计一个嵌入系统的硬件和软件结构。
(5) 描述一个组织的硬件/网络基础结构。