再学UML-深入浅出UML类图(一)

  在UML 2.0的13种图形中,类图是使用频率最高的UML图之一。Martin Fowler在其著作《UML Distilled: A Brief Guide to the Standard Object Modeling Language, Third Edition》(《UML精粹:标准对象建模语言简明指南(第3版)》)中有这么一段:“If someone were to come up to you in a dark alley and say, ‘Psst, wanna see a UML diagram?‘ that diagram would probably be a class diagram. The majority of UML diagrams I see are class diagrams.”(“如果有人在黑暗的小巷中向你走来并对你说:‘嘿,想不想看一张UML图?’那么这张图很有可能就是一张类图,我所见过的大部分的UML图都是类图”),由此可见类图的重要性。

类图用于描述系统中所包含的类以及它们之间的相互关系,帮助人们简化对系统的理解,它是系统分析和设计阶段的重要产物,也是系统编码和测试的重要模型依据。

      1. 类

      类(Class)封装了数据和行为,是面向对象的重要组成部分,它是具有相同属性、操作、关系的对象集合的总称。在系统中,每个类都具有一定的职责,职责指的是类要完成什么样的功能,要承担什么样的义务。一个类可以有多种职责,设计得好的类一般只有一种职责。在定义类的时候,将类的职责分解成为类的属性和操作(即方法)。类的属性即类的数据职责,类的操作即类的行为职责。设计类是面向对象设计中最重要的组成部分,也是最复杂和最耗时的部分。

在软件系统运行时,类将被实例化成对象(Object),对象对应于某个具体的事物,是类的实例(Instance)。

      类图(Class Diagram)使用出现在系统中的不同类来描述系统的静态结构,它用来描述不同的类以及它们之间的关系。

在系统分析与设计阶段,类通常可以分为三种,分别是实体类(Entity Class)、控制类(Control Class)和边界类(Boundary Class),下面对这三种类加以简要说明:

(1) 实体类:实体类对应系统需求中的每个实体,它们通常需要保存在永久存储体中,一般使用数据库表或文件来记录,实体类既包括存储和传递数据的类,还包括操作数据的类。实体类来源于需求说明中的名词,如学生、商品等。

  (2) 控制类:控制类用于体现应用程序的执行逻辑,提供相应的业务操作,将控制类抽象出来可以降低界面和数据库之间的耦合度。控制类一般是由动宾结构的短语(动词+名词)转化来的名词,如增加商品对应有一个商品增加类,注册对应有一个用户注册类等。

 (3) 边界类:边界类用于对外部用户与系统之间的交互对象进行抽象,主要包括界面类,如对话框、窗口、菜单等。

  在面向对象分析和设计的初级阶段,通常首先识别出实体类,绘制初始类图,此时的类图也可称为领域模型,包括实体类及其它们之间的相互关系。

      2. 类的UML图示

在UML中,类使用包含类名、属性和操作且带有分隔线的长方形来表示,如定义一个Employee类,它包含属性name、age和email,以及操作modifyInfo(),在UML类图中该类如图1所示:

图1 类的UML图示

  图1对应的Java代码片段如下:

在UML类图中,类一般由三部分组成:

   (1) 第一部分是类名:每个类都必须有一个名字,类名是一个字符串。

  (2) 第二部分是类的属性(Attributes):属性是指类的性质,即类的成员变量。一个类可以有任意多个属性,也可以没有属性。

  UML规定属性的表示方式为:


可见性  名称:类型 [ = 缺省值 ]

其中:

  • ?“可见性”表示该属性对于类外的元素而言是否可见,包括公有(public)、私有(private)和受保护(protected)三种,在类图中分别用符号+、-和#表示。
  • ?      “名称”表示属性名,用一个字符串表示。
  • ?      “类型”表示属性的数据类型,可以是基本数据类型,也可以是用户自定义类型。
  • ?      “缺省值”是一个可选项,即属性的初始值。

(3) 第三部分是类的操作(Operations):操作是类的任意一个实例对象都可以使用的行为,是类的成员方法。

UML规定操作的表示方式为:


可见性  名称(参数列表) [ : 返回类型]

其中:

  • ?      “可见性”的定义与属性的可见性定义相同。
  • ?“名称”即方法名,用一个字符串表示。
  • ?“参数列表”表示方法的参数,其语法与属性的定义相似,参数个数是任意的,多个参数之间用逗号“,”隔开。
  • ?      “返回类型”是一个可选项,表示方法的返回值类型,依赖于具体的编程语言,可以是基本数据类型,也可以是用户自定义类型,还可以是空类型(void),如果是构造方法,则无返回类型。

在类图2中,操作method1的可见性为public(+),带入了一个Object类型的参数par,返回值为空(void);操作method2的可见性为protected(#),无参数,返回值为String类型;操作method3的可见性为private(-),包含两个参数,其中一个参数为int类型,另一个为int[]类型,返回值为int类型。

图2 类图操作说明示意图

由于在Java语言中允许出现内部类,因此可能会出现包含四个部分的类图,如图3所示:

图3 包含内部类的类图

文章出处:http://blog.csdn.net/lovelion/article/details/7838679

时间: 2024-10-08 19:28:00

再学UML-深入浅出UML类图(一)的相关文章

设计模式——UML中的类图及类图之间的关系

一丶统一建模语言简介 统一建模语言(Unified Modeling Language,UML)是用来设计软件蓝图的可视化建模语言,1997 年被国际对象管理组织(OMG)采纳为面向对象的建模语言的国际标准.它的特点是简单.统一.图形化.能表达软件设计中的动态与静态信息. 统一建模语言能为软件开发的所有阶段提供模型化和可视化支持.而且融入了软件工程领域的新思想.新方法和新技术,使软件设计人员沟通更简明,进一步缩短了设计时间,减少开发成本.它的应用领域很宽,不仅适合于一般系统的开发,而且适合于并行

设计模式的学习(二)-UML中的类图及类图之间的关系

统一建模语言(Unified Modeling Language,UML)是用来设计软件蓝图的可视化建模语言,为面向对象的建模语言的国际标准.他的特点是简单,统一,图形化,能表达软件设计中的动态与静态信息. 统一建模语言能为软件开发的所有阶段提供模型化和可视化支持,而且融入了软件工程领域的新思想.新方法和新技术,使软件设计人员沟通更简明,进一步缩短的设计时间,减少开发成本,它的应用领域很宽,不仅适合与一般系统的开发,而且适合于并行与分布式系统的建模. UML从目标系统的不同角度出发,定义了用例图

UML建模之 - 类图&时序图

简介 简介 UML是面向对象开发中一种通用的图形化建模语言 UML建模技术就是用模型元素来组建整个系统的模型,模型元素包括系统中的类.类和类之间的关联.类的实例相互配合实现系统的动态行为等 UML建模工具 Rational Rose : 是直接从UML发展而诞生的设计工具,常用建模工具 Power Designer : 是对数据库建模而发展起来的一种数据库建模工具 Microsoft Visio :是一种画图工具,Visio 2010才开始引入UML建模,不是很专业 Star UML : 开源轻

uml精粹——5.类图(高级概念)

[关键字keyword] uml接口interface是一个只有公共操作public operations没有方法体method body的类.他用类图标class icon和关键字<<interface>>表示. <<interface>>简写为<<I>>,{abstract}简写为{A}. uml1中引号guillemets主要用于原型stereotype. 原型被用作概况profile的一部分. [分类和一般化classific

UML学习(一)——类图学习

在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization), 关联(Association), 聚合(Aggregation), 组合(Composition), 依赖(Dependency) 1. 泛化(Generalization) [泛化关系]:是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为.例如:老虎是动物的一种,即有老虎的特性也有动物的共性. [箭头指向]:带三角箭头的实线,箭头指向父类 2. 实现(R

uml精粹——3.类图(必需)

3.类图class diagram(必需) 一个类图描述了系统中对象的类型及他们间存在的各种静态关系static relationship.类图也展示了一个类的属性和操作properties and operations以及对象相互连接的限制.uml使用属于feature特性来表示一个类的属性和操作. 类图中的盒子box表示类,它分成3部分:类名(粗体),属性attribute,操作operation. [属性property] property属性代表一个类的结构形态,但它以两种不同的标记出现

看懂UML(统一建模语言)类图

这里不会将UML的各种元素都提到,我只想讲讲类图中各个类之间的关系: 能看懂类图中各个类之间的线条.箭头代表什么意思后,也就足够应对 日常的工作和交流: 同时,我们应该能将类图所表达的含义和最终的代码对应起来: 有了这些知识,看后面章节的设计模式结构图就没有什么问题了: 本章所有图形使用Enterprise Architect 9.2来画,所有示例详见根目录下的design_patterns.EAP 从一个示例开始 请看以下这个类图,类之间的关系是我们需要关注的: 车的类图结构为<<abstr

UML设计:类图说明及一步一步制作UML类图

什么是类图 UML类图是用来描述一个系统的静态结构.它既可以用于一般概念建模也可以用于细节建模.类包含了数据和行为,是面向对象的重要组成部分,它是具有相同属性.操作.关系的对象集合的总称. UML类图也可以用于数据建模.它可以用来描述应用程序内部或和其他用户之间的对象和信息结构.在UML中问题域终要被逐步转化,通过类来建模,通过编程语言构建这些类.类加上他们之间的关系就构成了类图,类图中还可以包含接口.包等元素,也可以包括对象.链等实例. 类图中的符号 class 类通过一个矩形表示,被两条直线

UML静态视图——类图、对象图、包图

画类图最重要的就是抽象出类,先来回忆类的基本内容. 一.类 1.类的概念: 类是面向对象程序设计的中的一个基本概念,类是具有相同属性.方法.语义和关系的一组对象的集合. 2.类的分类: 实体类:保存要放进永久存储的信息 边界类:位于系统与外界的交界处.包括所有的窗体.报表.打印机等硬件接口以及与其他系统的接口. 控制类:负责协调其他类的工作.一般每个用例都有一个控制类. 3.类的表达方式: 二.类图 类图是我们最常用的一种图,类图更直观的使我们了解一个系统的体系结构,类图通过图形化的方式描述了系

UML中的类图

UML中描述对象和类之间相互关系的方式包括:依赖(Dependency),关联(Association),聚合(Aggregation),组合(Composition),泛化(Generalization),实现(Realization)等. 依赖(Dependency):虚线箭头表示 1.依赖关系也是类与类之间的联结 2.依赖总是单向的.(#add 注意,要避免双向依赖.一般来说,不应该存在双向依赖.) 3.依赖关系在 Java 或 C++ 语言中体现为局部变量.方法的参数或者对静态方法的调用