UML统一建模语言初学

来源:互联网 发布:mysql数据库的安装步骤 编辑:程序博客网 时间:2024/06/15 19:27

UML:[3]类图

1.类图详解: 


   1)构成形式:

举一个例子:

2)内部类:
     我们使用诸如下边的方式表示内部类,定义在方法区

       或 

例如:

3)访问描述符:
     对于Java,我们用如下的符号表示访问描述符:

  我们在下图详细说明了各个访问描述符的一些权限设定:

4)抽象类和方法:
     在类中定义的没有body 的方法称为抽象方法,至少有一个抽象方法的类是抽象类。使用斜体来描述:

5)异常:
     使用虚线以及箭头表示:

 6)便签(包含限制、注释和代码解释):
     只用这种dog-eared 的框框:

7)泛化:描述一种继承关系。

8)接口:
     和类表示差不多,在前边加上<>,

9)实现:
     这是描述接口和具体实现的方式,有两种表示方法:

或者:

10)依赖:
     描述源和目的组件之间存在依赖关系,也就是说,一旦target有变,source就必须改变,而不是反之,看下边的例子。

  Order类利用DBUtil类的execute方法调用SQL语句,所以Order类依赖于DBUtil(DBUtil为target)
   11)类关联:
     多重性(Multiplicity ),修饰符暗示着实例之间的关系。一个类的一些实例与另一个类的实例有关,下图是表示多重性的一些符号:

下边有三种:

  a)Navigability:当A包含有到达B的必须信息,也就是说A知道B,但是B不知道A。如下图:

  LogAbstraction 里面有LoggerBridge类的实例。
    当然这样的也可能是双向的,
    b)Composition:类A包含类B

这个图表达两点意思: 
     A line item is part of an order.
     A line item cannot exist without an order.
     c)Aggregation:聚合,较之b更加轻量一些,

这个图有两点意思: 
A Player is part of a Team. A Player can be part of more than one Team and hence, when a Team is dissolved, the Player still remains.



4.时序图详解:

     1)时序图对象:由类型和它前边的冒号表示:

2)消息:
     时序图对象之间的通信,一般的,消息都是映射到类操作上的,若是并不是和类进行互动的话,比如一个用户与ATM取款机的操作,那么直接使用这样的消息就不合适了。消息也可以表示business工作流。

3)自我调用: 
     时序图对象作用于自身的一种消息,

  我们在下边举一个综合的时序图小例子:

  一个用户在线先填写注册表单,所有提交的信息都先被Controller对象接收,Controller创建对象Account,并且把信息都存入Account对象,Account对象创建并且使用DBManager 将数据保存到数据库中(使用自我调用)


2 交互视图——序列图、协作图

交互视图描述了执行系统功能的各个角色之间相互传递消息的顺序关系。类元是对在系统内交互关系中起特定作用的一个对象的描述,这使它区别于同类的其他对象。交互视图显示了跨越多个对象的系统控制流程。

UML 交互图以图形的形式表示出方法调用过程,它有两种形式:序列(顺序图)图( Sequence Diagram )和协作图( Collaboration Diagram )。

协作图 : 是用几何排列来表示交互作用中的各角色(如图 3 - 4 )。附在类元角色上的箭头代表消息。消息的发生顺序用消息箭头处的编号来说明。协作图的一个用途是表示一个类操作的实现。协作图可以说明类操作中用到的参数和局部变量以及操作中的永久链。当实现一个行为时,消息编号对应了程序中嵌套调用结构和信号传递过程。

1)协作图的作用

协作图是在一种给定语境中描述协作中各个对象间的组织交互关系的空间组织结构的图形化方式,从定义中可以分析它的作用为:对象间消息的传递来反映具体的使用语境的逻辑表达,一个使用情境的逻辑可能是一个用例的一部分或是一条控制流;它的交互关联显示对象交互的空间组织结构,显示一种对象间的关系,而不注重顺序;表现一个类的操作实现,协作图中可以说明类操作中使用的参数,变量,返回值。当表现一个系统的行为时,消息编号对应了程序中嵌套调用的结构和信号传递过程。

序列图常用来表示方案,协作图用于过程的详细设计。

)协作图的组成

协作图由对象,消息,链等构成。

对象:类的实例。对象的角色表示一个或一组对象在完成目标的过程中所起的部分作用。对象是角色所属类的直接或间接实例,在协作图中,一个类的对象可能充当多个角色。

对象名:类名

消息:消息用来描述系统动态行为,它是从一个对象向另一个或几个对象发送信息,或由一个对象调用另一个对象的操作。由三部分组成:发送者,接收者,活动。

消息用带标签的箭头表示,它附在链上。链连接了发送者和接收者,箭头所指方向为接收者。每个消息包括一个顺序号以及消息的名称,其中顺序号标识了消息的相关顺序。消息的名称可以是一个方法,包含名字,参数表,返回值。

链:表示两个或多个对象间的独立连接,是关联的实例。协作图中,关联角色是与具体语境有关的暂时的类元之间的关系,关系角色的实例也是链。链表示为一个或多个相连的线或弧。

 

例:

 

(在astah中,协作图的消息,没找到返回消息,用普通消息代替)


序列图是一种被使用 UML 的人使用的最常用的动态建模画法。序列图表示了对象之间传送消息的时间顺序。每一个类元角色用一条生命线来表示—即用垂直线代表整个交互过程中对象的生命期。生命线之间的箭头连线代表消息。序列图可以用来进行一个场景说明—即一个事务的历史过程。 

3.用例图

什么是用例图?

用例视图是被称为参与者的外部用户所能观察到的系统功能的模型图。用例是系统中的

一个功能单元,可以被描述为参与者与系统之间的一次交互作用。用例模型的用途是列出系

统中的用例和参与者,并显示哪个参与者参与了哪个用例的执行。一个用例是有关一个系统的行为的一个描述。那个描述是从一个用户的观点编写的。

处理用例的真正诀窍是保持用例的简单,细节是不重要的,除非到了最后。把用例当作最及时的需求。在 UML 中的所有的图,用例图是最容易混淆的,也是最没有什么用的,不过系统边界图除外。

一般椭圆形表示一个一个的用例,小人表示行为者。

eg :(一个论坛前台用例图)

<!--[if !vml]--> 11.jpg<!--[endif]-->

4 活动图

活动图是状态机的一个变体,用来描述执行算法的工作流程中涉及的活动。活动状态代表了一个活动:一个工作流步骤或一个操作的执行。活动图描述了一组顺序的或并发的活动。活动视图用活动图来体现。活动图的用途是对人类组织的现实世界中的工作流程建模。

[ 注 ] :提到状态机,那什么是状态机呢?

状态机视图 : 是一个类对象所可能经历的所有历程的模型图。状态机由对象的各个状态和连接这些状态的转换组成。每个状态对一个对象在其生命期中满足某种条件的一个时间段建模。当一个事件发生时,它会触发状态间的转换,导致对象从一种状态转化到另一新的状态。与转换相关的活动执行时,转换也同时发生。状态机用状态图来表达。

 

实心圆表示活动图的起点,实际上是一个占位符,带边框的实心圆表示终点。

圆角矩形表示执行的过程或活动。

菱形表示判定点。

箭头表示活动之间的转换,各种活动之间的流动次序。

箭头上的文字表示继续转换所必须满足的条件,总是使用格式 “[ 条件 ]” 来描述。

粗线条表示可能会并行进行的过程的开始和结束。

 

eg :

12.jpg









0 0
原创粉丝点击