UML(一) 综述

    进程到了UML阶段,最重要的当然是图了。关于它到底分为几类几种,众说纷纭,我们暂且先不管它,以后可能还会更新,所以结合视频和网上资料先介绍13种,并在接下来的UML系列博客中详述其中常用的10种。

    如下图所示。

                                                           

      

   1、用例图用例(use case)是从用户的观点对系统行为的一个描述。用例图描述了用户需求,从用户角度分析功能(功能描述)、功能执行者(角色),强调谁在使用系统,系统为执行者完成了哪些功能(关系)。简单地说,也就是分析人们认为系统应该干什么。

   用例图主要包括用例、角色和关系三种元素。用例是功能的描述,角色指用例与谁相关,而关系就是指执行者和用例产生了什么关系。

    如图1,教师查看学生上机记录。

   

   2、类图。首先,想象一下生活中我们随处可见的各种牌子、容量和各色瓶盖的矿泉水瓶子。我们首先看到它类似于圆柱体的形状,看到它透明、有盖子等特性;然后我们用它来盛水,知道它盛水的功能。关于矿泉水瓶的类图就是把瓶子、它的特性和它的功能封装起来显示成的一张图。

   正规的说,就是一类或一组具有类似属性和相同行为的事物。类图包括类名、属性、操作和接口、类之间的静态关系、约束、子系统等元素。

    如图2,这是两个类,People类依赖于Bottle of mineral water类。

      

   3、包图。包是一个UML结构,它使得你能够把诸如用例或类之类模型元件组织为组,包图在逻辑上把一个复杂的图模块化,是更高级别的抽象,如瓶子就可以作为矿泉水瓶子的包。包图包括类、接口、构件、用例、其他包等。

    如图3

                    

   4、对象图。对象是类的实例化,是具有具体属性的一个事物,如各类矿泉水瓶子中(类),农夫山泉(对象)的是红瓶盖。对象图描述一个系统在某个具体时刻的静态结构,它与类图的区别是类图描述所有的情况。对象图可以包含包含对象、连接、包等元素。 

   如图4

    

   5、状态图(行为图之一)。状态是指在对象的生命期中满足某些条件,执行某种活动或等待某些事件时的一个条件或状况。在任意给定的时刻,某一对象总是处于特定的状态,如一瓶水、半瓶水等都是一种状态。状态图用来描述一个特定对象的所有可能状态以及由于各种事件的发生而引起的状态之间的转移,状态图包括起点、终点、状态和转移等元素。

   如图5,口渴与不渴了两种状态及其转换。

   

   6、活动图(行为图之一)。活动图用来描述用例所要进行的活动以及各项活动之间的关系。如厂家生产矿泉水,生产瓶盖盖在瓶子上,生产标签贴在瓶身,标签和瓶盖必须同时印成相同的品牌名等。活动图实质上是一种特殊形式的状态机。其中,大多数状态都是活动的,且大多数变迁都是由源活动中的动作执行完毕时隐式地触发。

    如图6,生产矿泉水的活动图。

   

   7、序列图(也称顺序图,交互图之一)。顺序比较好理解,如我们必须先拧开瓶盖再喝水。序列图描述按照时间的先后顺序对象之间交互的动作过程,侧重时间顺序和并发。它由对象、消息(对象间的通信)和生命线(某时间内对象是存在的)组成。

    如图7,口渴的人去商店买水,商店卖水,然后人喝水。

   

 

   8、协作图(也称合作图,交互图之一)。协作图描述了相互协作的对象间的交互和链接关系,图中的消息可以编号以表示它们之间的时序。如再生产矿泉水的过程中,要先生产瓶身,盛水;再生产瓶盖,保证不外漏;最后生产标签,保证品牌推销。

    顺序图和协作图可以无损转换。

    如图8,口渴的人去商店买水;商店批发水,零售给人;人喝水。

                

 

   9、构件图(实现图之一)。构件是软件项目中具有相对独立意义的单元(如源文件、二进制代码、dll文件等)。构件图用来显示一组构件之间的组织与依赖关系,表示的是实现层的软件结构。它从软件架构的角度来描述一个系统的主要功能,是系统性的描述,包括子系统、类、包、构件等。

    如图9,此图以机房收费系统为例。

            

 

   10、部署图(实现图之一)。部署图用来描述系统硬件的物理拓扑结构以及在此结构上执行的软件。它具有针对性,只描述系统的一个方面。

    如图10,此图以机房收费系统为例。

     

 

   11、组成结构图。在对类建模过程中,当一个类由多个类组成的时候,我们通常会发现其内部结构的研究很有意义。如,苹果由外表皮,果肉和苹果核组成。组成结构图的问世为我们提供了这种全新的方法,可以把每一个构件都放到一个整体中,进而是我们从类的内部来审视这个类。

    如图11,表示人由思想和身体组成。

         

 

   12、交互纵览图。此图实际上是活动图和交互图的结合。

   假设我们有一组活动,用活动图表示出来;每个活动又包含了对象之间的消息序列,当我们用交互图(序列图/协作图)来替换其中的某些活动时,交互纵览图就诞生了。

    如图12,用户和图书馆数据库系统的交互。

           

 

   13、时序图。再次考虑上文提到的矿泉水瓶子的例子。

   假设我们现在很渴,买了一瓶水。买水用了30秒,拧开瓶盖2秒,喝水3秒,如果用序列图表示的话只能表示出这一过程的顺序,而时序图关键就在于一个“时”,它实际上就是序列图加了时间轴,表明了对象的某一状态持续的时间。

    如图13,表示洗衣机运转过程。

    

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 22
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值