类图和对象图详解

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/mj_ww/article/details/53020346

  对于类图和对象图来说我们需要了解的是类图和对象图的概念,类图的组成,使用Rose创建类图和对象图。当然最重要的是如何使用Rose创建类图案例分析。具体的创建通过选课管理系统的简单用例说明创建类图和对象图的方法和具体的过程。
  下面是我对类图和对象图学习过程的一个整理,一些资料是直接拿过来直接用的。希望能对你的学习有一点点的帮助吧。

类图和对象图的概念

1. 类的含义

  类图(Class diagram)显示了系统的静态结构,而系统的静态结构构成了系统的概念基础。
  类图,就是用于对系统中的各种概念进行建模,并描绘出它们之间关系的图。
  在大多数的 UML 模型中,我们可以将这些概念的类型概括为以下四种,分别是:
     (1) 类
     (2) 接口
     (3) 数据类型
     (4) 构件
  在类图中,具体来讲它一共包含了以下几种模型元素,分别是:类、接口、依赖关系、泛化关系、关联关系以及实现关系。
类图可以创建约束、注释和包等。
这里写图片描述

2. 对象图的含义
  对象图中包含对象(Object)和链(Link)。其中对象是类的特定实例,链是类之间关系的实例,表示对象之间的特定关系。
这里写图片描述

3. 类图在项目开发中的作用
  类图的作用是对系统的静态视图进行建模。当对系统的静态视图进行建模时,通常是以以下三种方式来使用类图。
   (1)为系统的词汇建模。
   (2)模型化简单的协作。
   (3)模型化逻辑数据库模式。
  在设计数据库时,通常将数据库模式看作为数据库概念设计的蓝图,在很多领域中,都需要在关系数据库或面向数据库中存储永久信息。系统分析者可以使用类图来对这些数据库进行模式建模。
  
4. 对象图在项目开发中的作用
  对象图作为系统在某一时刻的快照,是类图中的各个类在某一个时间点上的实例及其关系的静态写照,可以通过以下几个方面来说明它的作用:
  (1)说明复杂的数据结构。对于复杂的数据结构,有时候很难对其进行抽象成类表达之间的交互关系。使用对象描绘对象之间的关系可以帮助我们说明复杂的数据结构某一时刻的快照,从而有助于对复杂数据结构的抽象。
  (2)表示快照中的行为。通过一系列的快照,可以有效表达事物的行为。

类图的组成

1. 类

  类是面向对象系统组织结构的核心。类是对一组具有相同属性、操作、关系和语义的事物的抽象。
  在UML的图形表示中,类的表示法是一个矩形,这个矩形由三个部分构成,分别是:类的名称(Name)、类的属性(Attribute)和类的操作(Operation)。
这里写图片描述
  类的名称是每个类的图形中所必须拥有的元素,用于同其它类进行区分。类的名称通常来自于系统的问题域,并且尽可能地明确表达要描述的事物,不会造成类的语义冲突。
这里写图片描述
  属性是类的一个特性,也是类的一个组成部分,描述了在软件系统中所代表的对象具备的静态部分的公共特征抽象,这些特性是这些的对象所共有的。
  在UML中,类的属性的表示语法为([ ]内的内容是可选的):
  [可见性] 属性名称 [:属性类型] [=初始值] [{属性字符串}]

  类的操作指的是类的所能执行的操作,也是类的一个重要组成部分,描述了在软件系统中所代表的对象具备的动态部分的公共特征抽象。
  操作由一个返回类型、一个名称以及参数表来描述。其中,返回类型、名称和参数一起被称为操作签名(Signature of the Operation)。操作签名描述了使用该操作所必需的所有信息。在UML中,类的操作的表示语法为([ ]内的内容是可选的):
  [可见性] 操作名称 [(参数表)] [:返回类型] [{属性字符串}]

  在标准的UML定义中,有时还应当指明类的另一种信息,那就是类的职责。类的职责指的是对该类的所有对象所具备的那些相同的属性和操作共同组成的功能或服务的抽象。
  在声明类的职责的时候,可以非正式的在类图的下方增加一栏,将该类的职责逐条描述出来。类的职责的描述并不是必须的,因此也可以将其作为文档的形似存在,也就是说类的职责其实只是一段或多段文本描述。一个类可以有多种职责,设计得好的类一般至少有一种职责。
  类的约束指定了该类所要满足的一个或多个规则。在UML中,约束是用一个大括号括起来的文本信息。
这里写图片描述
  类的注释
这里写图片描述
2. 接口
  类接口是在没有给出对象的实现和状态的情况下对对象行为的描述。通常,在接口中包含一系列操作但是不包含属性,并且它没有对外界可见的关联。
  接口是一种特殊的类,所有接口都是有构造型interface的类。一个类可以通过实现接口从而支持接口所指定的行为。
  在UML中,接口的表示方式是使用一个带有名称的小圆圈来进行表示的,并且我们可以通过一条Realize(实现关系)线与实现它的类相连接
这里写图片描述

3. 类之间的关系
  依赖关系:表示的是两个或多个模型元素之间语义上的连接关系。它只将模型元素本身连接起来而不需要用一组实例来表达它的意思。
  它表示了这样一种情形,提供者的某些变化会要求或指示依赖关系中客户的变化。也就是说依赖关系将行为和实现与影响其他类的类联系起来。
这里写图片描述
  泛化关系是用来描述类的一般和具体之间的关系。具体描述建立在对类的一般描述的基础之上,并对其进行了扩展。因此,在具体描述中不仅包含一般描述中所拥有的所有特性、成员和关系,而且还包含了具体描述补充的信息。
这里写图片描述
  关联关系是一种结构关系,指出了一个事物的对象与另一个事物的对象之间的语义上的连接。
  关联描述了系统中对象或实例之间的离散连接,它将一个含有两个或多个有序表的类,在允许复制的情况下连接起来。一个类的关联的任何一个连接点都叫做关联端,与类有关的许多信息都附在它的端点上。关联端有名称、角色、可见性以及多重性等特性。
这里写图片描述
  实现关系将一种模型元素(如类)与另一种模型元素(如接口)连接起来,是说明和其实现之间的关系。
  在实现关系中,接口只是行为的说明而不是结构或者实现,而类中则要包含了其具体的实现内容,可以通过一个或多个类实现一个接口,但是每个类必须分别实现接口中的操作。虽然实现关系意味着要有像接口这样的说明元素,它也可以用一个具体的实现元素来暗示它的说明(而不是它的实现)必须被支持。
这里写图片描述

使用Rose创建类图

1. 创建类

  (1)在图形编辑工具栏中,选择 按钮,此时光标变为“+”号。
   (2)在类图中单击选择任意一个位置,系统在该位置创建一个新类。系统产生的默认名称为“NewClass”。
   (3)在类的名称栏中,显示了当前所有的类的名称,我们可以选择清单中的现有类,这样便把在模型中存在的该类添加到类图中。如果创建新类,将“NewClass”重新命名成新的名称即可。
这里写图片描述
2. 创建类之间的关系
  (1) 创建和删除依赖关系。
   (2) 创建和删除泛化关系。
   (3)创建和删除实现关系。
   (4)创建和删除关联关系。

对象图

1. 对象图的组成
  对象图(Object Diagram)是由对象(Object)和链(Link)组成的。对象图的目的在于描述系统中参与交互的各个对象在某一时刻是如何运行的。

2. 创建对象图
  在Rational Rose 2003中不直接支持对象图的创建,但是我们可以利用协作图来创建。在协作图中添加对象的步骤如下:
   (1)在协作图的图形编辑工具栏中,选择 按钮,此时光标变为“+”号。
   (2)在类图中单击选择任意一个位置,系统在该位置创建一个新的对象。
   (3)双击该对象的图标,弹出对象的规范设置窗口。
   (4)在对象的规范设置窗口中,可以设置对象的名称、类的名称、持久性 和是否多对象等。
   (5)点击“OK”按钮即可。
  
  在协作图中添加对象与对象之间的链的步骤如下:
  (1)选择工具栏中的协作图图形编辑工具栏中的图标 ,或者选择菜单栏“Tools”(工具)中“Create”(新建)下的“Object Link”选项,此时的光标变为“↑”符号。
  (2)单击需要链接的对象。
   (3)将链的线段拖动到要与链接的对象中。
   (4)双击链的线段,弹出设置链规范的对话框。
   (5)在弹出的对话框中,在“General”选项卡中设置链的名称、关联、角色以及可见性等。
   (6)如需要在对象的两端添加消息,可以在“Messages”选项卡中进行设置。

使用Rose创建类图案例分析

1. 确定类和关联

  用例图实质上是一种系统描述的形式,自然可以根据用例描述来识别类。针对各个用例,通常可以根据如下的问题辅助识别:
   (1)用例描述中出现了那些实体?
   (2)用例的完成需要哪些实体合作?
   (3)用例执行过程中会产生并存储哪些信息?
   (4)用例要求与之关联的每个角色的输入是什么?
   (5)用例反馈与之关联的每个角色的输出是什么?
   (6)用例需要操作哪些硬设备?
  
  在选课管理系统的简单用例中,我们可以很容易的识别“教师”类和“学生”类。教师可以安排课程和录入成绩,而学生可以选课和查询成绩,因而“成绩”和“课程”也是类。
这里写图片描述
2. 确定属性和操作
  每个类的操作都有所不同。我们确定的一些类的属性和操作,为方便表示,我们使用英文标识。
这里写图片描述

展开阅读全文

没有更多推荐了,返回首页