UMl之静态图(用例图、类图、包图、对象图)


uml的各种图中,用例图主要描述系统的功能。静态图 (Static diagram),包括类图、对象图、包图。其中类图描述系统中类的静态结构。不仅定义系统中的类,表示类之间的联系如关联、依赖、聚合等,也包括类的内部结构(类的属性和操作)。类图描述的是一种静态关系,在系统的整个生命周期都是有效的。对象图和包图用到的不多。

一、用例图

1、定义:通过用例来分析系统的需求,再结合参与者(角色)进行系统功能需求的分析和设计。 作用就是:描述参与者和用例之间的关系,帮助开发人员了解系统的功能。

2、元素:功能、角色、关系。
3、属性:事件流、是在执行时与系统交互过程。包括基本流和备选流,前置条件和后置条件。
4、用例粒度:

指的是用例所包含的系统服务或功能单元的多少。如果用例粒度很大,那么得到的用例数,就会很少。如果用例粒度很小,那么得到的用例数就会很多。如下图:

UMl之静态图(用例图、类图、包图、对象图)_第1张图片

维护学生信息的用例还可以细分:

UMl之静态图(用例图、类图、包图、对象图)_第2张图片


5、用例图中的关系

重要的有泛化关系、聚合关系、组合关系。

(1)泛化关系:继承关系,箭头指向父类。

(2)包含(Include):用例可以简单的包含其他用例的行为,并把它所包含的用例作为自身行为的一部分。表示:虚线,包含用例指向被包含用例。

UMl之静态图(用例图、类图、包图、对象图)_第3张图片


        

      (3)扩展(Extend):一定的条件下,把新的行为加入到已有的用例中,获得的新用例称为扩展用例,援用的用例指向基础用例。表示:虚线,扩展用例指向基础用例。

UMl之静态图(用例图、类图、包图、对象图)_第4张图片

6、注意的问题

(1) 清晰定义系统的边界,准确划分每个小功能可以划分到那个用例,即到底分属与哪一个功能。

( 2)用例不能太多

二、类图

1、  类图:是显示一组类、接口、协作以及他们之间的图。

  类:类是一组具有相同属性、操作、关系和语义的对象的描述。如我们的人类、动物类。在戏曲中的净末旦丑等不同的类,就是哲学上我们学习的抽象。我就想起以前哲学老师说的,哲学就是对万事万物的抽象,抽到不能再抽了,就是哲学。同样,哲学我们可以分为唯物主义和唯心主义,而不同的类中又可以有小类,如唯心主义也可以分为主观唯心主义和客观唯心主义。

 

3、类图作用:类图是面向对象分析和设计的核心。显示了系统的各个类、类和类之间的相互关系以及各个类的操作和属性。类图一般在详细设计过程中出现,主要用来描述系统中各个模块中类之间的关系,包括类或者类与接口的继承关系,类之间的依赖、聚合等关系。如果,你把软件当作房子,那么类图就是最后的施工图了.

4、  组成:

    (1)类名,每个类的名称。

    (2)属性。再类的图标中可以指定每个属性值的类型。例如:字符串、浮点数、整数等。方法:在属性的后面加上冒号,再写上类型。

    (3)方法:在方法的后面的括号中可以说明操作需要的参数和参数的类型。例如:函数,它在操作后要返回一个返回值,可以指明返回值和返回值的类型。补充:有时只显示类的部分属性和操作,就可以在类表的后面加上省略号。

5、  权限:

符号

选项

 描述

+

Public

公共的属性,任何其他的类都可以浏览或修改属性的值

#

Protected

保护属性。类及其派生类可以访问该属性。

__

Private

专用属性。其他类不能访问该属性。

 

Implemented

实现属性,只能被同一包中中的类访问。

具体的图像表示,请看下图:


       6、  多重性:

                   (1)重复度1: 代表对象作为角色必须出现且只出现1次。

                   (2)重复2 :0…1:表示对象 作为角色可以出现0次或者1次。

                   (3)星号(*):代表任意多次。

                        例如:重复度0…*表示对象作为角色可以出现0次任意多次。 

重复度1....*表示对象作为角色必须至少出现1次且可以出现多至任意多次。如图所示:

UMl之静态图(用例图、类图、包图、对象图)_第5张图片

7、类图 和E-R模型:

类图实际上就相当于数据库概念设计中用到的E-R 模型。              

8、画类图的步骤:

          (1)确定类。 (2)确定关系:如老师记录/查看 班级  ;学生查看班级;(3)添加多重性。 (4) 确定属性和方法。下面是一个实例:



三、包图:

1.定义:在软件开发过程中,类显然是构件整个系统的基本构造块。但是对于庞大的应用系统,其包含的类将是成百上千,再加上各种的关系,必然大大超出了人们处理的复杂度。这也就引入了“包”。

2.名称:每个包都必须有一个与其它包想区别的名称。

        3.拥有的元素:包括类、接口、构件、节点、协作、用例。

4.包和包之间的关系:依赖。

四、对象图

对象图是类图的实例,几乎使用与类图完全相同的标识。他们的不同点在于对象图显示类的多个对象实例,而不是实际的类。一个对象图是类图的一个实例。由于对象存在生命周期,因此对象图只能在系统某一时间段存在。

1、作用:描述系统中参与交互的各个对象在某一时刻是如何运行的。

2、组成:对象和链。对象是类的实例,它通过链与其他对象相联系。对象用  (对象名:类名)或对象名的形式来表示。

小结:

验收的时候,师傅说,以后我们常用的也就是类图和用例图,别的知道是干嘛的就好了。用例图还可以,类图的时候,自己就乱七八糟的抽象了,自我感觉还挺好的。听了师傅的讲解,才觉得自己画的什么都不是,师傅说还是画的少。以后的学习过程中还会不断的接触,不断的熟悉。还有,刚开始画的时候,不知道如何下手。然后就在网上找例子,看着别人的,依葫芦画瓢画,画着画着就有点感觉了。不会模仿也是一种学习的方法,就好像由学生管理信息系统到机房收费系统的过程。画着画着,突然就有种感觉:哦,原来是这样哦!

你可能感兴趣的:(UMl之静态图(用例图、类图、包图、对象图))