【UML】九种图


            UML中主要讲的莫过于这九种图了,当然还有四种关系,这两者相结合,共同把一个系统的各个模块连接成一个整体,并且从各个方面来描述。无论是从框架,还是系统执行的顺序,都被两者的结合安排的天衣无缝,有了这些协助,对于开发一款软件来说,无疑是无法比拟的财富了。

    九种图包括了:用例图、类图、对象图、活动图、状态图、时序图、协作图、组件图和配置图。在这九种图之外,还有一种:包图。包图虽然没有包括在九种图中,但他也是很重要的。



    一、九种图

    

      1、用例图(Use Case Diagram)


        用例图展现了一组用例、参与者以及它们间的关系。可以用用例图描述系统的静态使用情况。用一个简单的例子来说明:
【UML】九种图_第1张图片
        参与者(Actor)是系统外部的一个实体,可以是任何的事物或人,如上图的“用户”,它以某种方式参与了用力的执行过程;用例是对一个系统或一个应用的一种单一的使用方式所做的描述,如上图的“插入卡”“输入密码”;用例除了与其参与者发生关联外,还包括泛化关系、包含关系、扩充关系。

      2、类图(Class Diagram)


        类图展示了一组类、接口和协作及它们间的关系,在建模中所建立的最常见的图就是类图。系统可以有多个类图,单个类图仅表达了系统的一个方面。一般在高层给出类的主要职责,在低层给出类的属性和操作。下面是简单类图:
【UML】九种图_第2张图片
        图中人民币账户类和美元账户类从账户类继承,用户与两种账户类相关联。类图用到四种关系:依赖、泛化、实现和关联。

      3、对象图(Object Diagram)


        对象图表示在某一时刻一组对象以及他们之间关系的图,对象图可以被看作是类图在系统某一时刻的实例。对象图由节点以及连接这些节点的连线组成,节点可以是对象也可以是类,连线表示对象间的关系。对象图更注重于现实或原型实例,主要支持系统的功能需求。

      4、活动图(Activity Diagram)


        活动图是一种动态视图,用于展现参与行为的类的活动或动作。它强调的是对象之间的流程控制,如下是一个简单的活动图:
【UML】九种图_第3张图片
        拿出钥匙“Key”是一种活动状态,打开门进入房间时进行转换,当一个动作状态或活动状态结束时,该状态就会转换到下一个状态,称为无触发转移或自动转移。在活动图中,还有分支和循环功能,更详细明了的描述系统,是一种重要的工具。

      5、状态图(Statechart Digram)


        状态图是通过类对象的生命周期建立模型来描述对象随时间变化的动态行为。状态图和活动图有很多相似的地方,起始状态、终止状态和转移等符号都是相同的,而状态图中的状态框是圆角矩形,不同于活动图中的椭圆形。下图是同活动图中例子的对比状态图:
【UML】九种图_第4张图片
        添加一条判断,钥匙正确则进入房间,钥匙错误则重新选择。状态图展现了对象状态的变化。

      6、时序图(Sequence Diagram)


        时序图描述了对象之间传递消息的时间顺序,它用来表示用例中的行为顺序,是强调消息时间顺序的交互图。时序图包括四个元素:对象(Object)、生命线(Lifeline)、激活(Activation)和消息(Message)。看一个机房收费系统的时序图注册例子:

【UML】九种图_第5张图片

        值班老师给学生注册卡号,首先从数据库中查询卡号是够可注册,随后将学生注册信息填入到数据库中,则数据库中添加新成员,整个过程按时间顺序的执行图,简单明了。

      7、协作图(Collaboration Diagram)


        协作图是动态视图的另一种表现形式,它强调参加交互的个对象结构的信息。它是一种类图,包含类元角色和关联角色,而不仅仅是类元和关联。强调参加交互的个对象的组织。当按组织对控制流建模时,一般使用协作图。协作图与时序图可互换,打开视图按F5即可切换两视图,下图为时序图中例子转化来的协作图:
【UML】九种图_第6张图片

      8、构件图(Component Diagram)


        构件图又称组件图,是对面向对象系统的物理方面建模时使用的,它由组件、接口和组件之间的联系构成,组件图中可以包括四种关系:依赖、泛化、关联和实现。看一个简单的实例:
【UML】九种图_第7张图片
        第一个图为依赖关系;第二个为实现关系,提供或者和服务接口之间应为一条实线,通过提供者提供服务来满足客户。组件的定义非常广泛,另外还包括:子程序规范和子程序体、主程序、包规范和包体、任务规范和任务体、数据库,共同组成组件系统。

      9、配置图(Deployment Diagram)


        配置图显示了运行软件系统的物理硬件,以及如何将软件部署到硬件上。但并不是每一个软件开发项目都必须绘制部署图,部署图是帮助开发人员理解系统中软件和硬件的映射关系。看一个简单的配置图:
【UML】九种图_第8张图片


    二、包图(Package Diagram)


      包图由包和包之间的关系构成,它是维护和控制系统总体结构的重要建模工具。包主要是在复杂系统进行建模时,处理大量的类、接口、组件、节点和图这些元素,并对其进行分组,也就是把哪些语义相近并倾向于一起变化的元素组织起来加入同一包,这样就方便了理解和处理整个模型。

       每个包同样有自己的名字。模型包的名字是一个字符串,可分为简单名(simple name)和路径名(path name)。如图分别为简单名和路径名:
【UML】九种图_第9张图片
       包是对模型元素进行分组的机制,它把模型元素划分成若干个子集。


    总结:

        学习了UML建模方法,对于我们来说是对专业技术的又一步靠近。UML的两套建模机制:动态建模机制和动态建模机制。综上所述,静态建模机制包括:用例图、类图、对象图、包图、构件图和配置图;动态建模机制包括:状态图、时序图、协作图和活动图。这九种图加上包图,共同为UML所用,为软件开发提供便利。



你可能感兴趣的:(框架,UML)