国内更全面
解决程序疑难杂症

UML中的9种图

           在上一篇文章中提到,在软件的生命周期中,软件两种存在形式,即静止状态和运行状态。根据软件存在的这两种形式,用UML在软件开发的过程中对软件建模一共用9中图。


     用例图:基于用例的系统行为建模。

    【概念】:根据用户提出的需求描述系统的行为及各种功能之间的关系。

    【目的】:用于开发人员与用户之间的交流,以便开发人员很好的理解用户需求。

    【组成】:用例图=参与者+用例+关系

                       参与者:参与者是用例的启动者,参与者可能是人或其他外界系统。

                       用例:一系列可完成系统功能的动作,如机房收费系统中的“注册”、“充值”、“退卡”等。

                        关系:描述参与者与用例之间的联系。

     【实图】

          

     类图:基于类的系统结构建模。

    【概念】:对系统的静态结构进行抽象,建立类、类的内部结构以及类与类之间的关系。

    【目的】:表示一个逻辑类或实现类,是编程人员在创建类的重要依据。

    【组成】:类+关系

                       类:对一组具有相同行为和属性的对象抽象出的结果。

                       关系:用于描述类与类之间的联系。

    【实图】

      

       对象图:基于对象的系统瞬间状态建模。

      【概念】:确定在某个特定的时间点上系统行为的状态,描述了系统在这个时间点上的一系列对象的状态值和它们之间的关系。

      【组成】:对象+链

                         对象:类图的一个实例。

                         链:对象之间的关系。

       交互图:基于交互的对象行为建模,交互图分为顺序图和协作图。

       1、顺序图

      【概念】:用于捕获系统运行中对象之间有顺序的交互,强调的是消息交互的时间顺序。

      【目的】:表现系统流程中各个对象之间的调用关系和实现顺序。

      【组成】:对象+生命线+消息

                        生命线:每个参与者及系统运行中的对象都用一条垂直的生命线表示。生命线展示了一个对象在交互过程中的生命期限,表示了一个对象在系统表现一个功能时的存在时间。

                        消息:对象的行为称为消息。当一个对象调用另一个对象的行为时,即完成了一次消息传递。消息分为简单消息、同步消息和异步消息。简单消息只表示控制如何从一个对象发给另一个对象,并不包括控制的细节。同步消息意味着阻塞和等待,指对象A向对象B发送一个消息,对象A必须等待对象B处理完这个消息之后才能进行其他操作。异步消息恰恰相反,指对象A向对象B发送一个消息,不用等待对象B执行完这个消息就可以进行其他的行为。

      【实图】

       

      2、协作图

    【概念】:用于参与一个交互的对象的链接,它强调的事发送和接受消息的对象之间的链接。

    【目的】:表现系统流程中各个对象之间的调用关系。

    【组成】:交互的对象+通信链+消息

    【实图】

    

   行为图:描述对象进行交互行为的控制条件和引起对象状态的改变。

   1、状态图:

  【概念】:描述一个特定对象的所有可能状态以及由于各种事件发生引起的状态之间的转变。

  【目的】:表示当系统某个行为发生时,某个类所处的不同的状态以及状态的转化过程。

  【组成】:状态图=起点+状态+迁移+终点

  【实图】

    

   2、活动图:

  【概念】:用于描述可以引发对象状态变化的条件和动作。

  【目的】:表示系统在运行时,不同对象之间的过程控制流程。

  【组成】:活动图=活动+动作+活动边+活动节点。

                    活动:有一个或多个动作组成的行为。

                    动作:活动中的一个步骤。

                    活动边:动作与动作之间、动作与数据之间的关联和方向。

                    活动节点:在活动图中,除了动作外的其他活动信息成为活动节点。

  【实图】:

    

      实现图:基于实现系统的物理结构建模。

      构件图:基于构件的系统静止状态下的结构建模。

     【概念】:描述代码构件的物理结构以及各构件之间的依赖关系。

     【目的】:对实现系统功能的代码进行分装,以模块的形式实现最终系统。

     【组成】:构件+接口+关系+端口

                        构件:在一个系统或子系统中独立的分装单位。

                        接口:供接口和需接口。供接口表示构件为客户提供的功能,它告知构件如何被使用。需接口表示为了使构件工作,构件必须从其他服务中所获的功能。

                        关系:一个构件与其他构件之间的依赖关系。

                        端口:端口提供一种方法来显示建模构件所提供或要求的接口如何与它里面的部分相关联。

     【实图】

       

       部署图:基于物理环境的系统执行状态下的结构建模

      【概念】:描述系统的软件如何映射到将要执行它们的硬件上,用来显示系统中软件和硬件的物理架构。

      目的】:表示软件如何与外部硬件设备连接。

      【组成】:制品+节点+通信路径

                        制品:制品是与软件开发过程中向关联的实际存在的信息,是被软件开发过程中利用或软件开发过程中生产的一段信息,制品可以是一个模型、描述或软件等。

                       节点:一个能执行制品的实体,可以是硬件,也可以是为其他软件的执行提供执行环境的软件。有两种类型的节点:执行环境节点和设备节点。例如一个操作系统、一个Web服务器就是执行环境节点,一个服务器、客户机就是典型的设备节点。

                       通信路径:表示节点间的通信(连接)。

     【实图】

      

    图的对比

      类图与对象图:

              两者都是静态图,区别在于类图比对象图更加抽象,类图是对象图的泛化,对象是类图的实例。两者是泛化/特化的关系。

      顺序图与协作图:

              两者都是交互图,基于对象的行为建模。区别在于顺序图强调的是事件发生的时间顺序,协作图强调的是事件中各对象之间的调用关系。

      状态图与活动图:

              两者都是行为图,区别在于状态图描述对象所有可能的状态以及引起状态改变的事件,活动图描述的是系统行为的一系列动作和它们之间的约束关系。

      构件图与部署图:

              两者都是实现图,区别在于构件图描述系统内部代码构件的物理结构,而部署图描述的是系统与外部硬件设备的连接。

     总结

        UML建立的这9种模型,在软件开发的生命周期中起着很大的作用。“工欲善其事,必先利其器”,这9种模型就是我们的利器,在进行软件开发之前必须要打磨好我们的利器,这样才能保证软件开发顺利进行,才能开发出一款让用户满意的软件。



企业站定制,我们更专业!

联系我们