类图和对象图的讲解

来源:互联网 发布:mac发送文件给iphone 编辑:程序博客网 时间:2024/05/21 00:52
类图
类图的定义
类图的组成
类图中的主要符号
类图的建模方法
类图的建模实例
类图的组成
类图由如下元素组成
类(Class):
是具有共同结构特征、行为特征、联系和语义的对象集合的抽象形式。
关联(Association):
它表示类与类之间的关系。
一、类
类(Class)在UML中通常以实线矩形框表示,矩形框中含有若干分割框,分别包含类的名字、属性、操作、约束以及其他成分等,如下图所示。
可见性(Visibility)标记表示:
+/public: 公共属性,可以被外部对象访问。
#/protected:保护属性,可以被本类或子类的对象访问。
-/private:私有属性,不可以被外部对象访问,只能为本类的对象使用。

可视性可以缺省,表示该属性不可视


操作(方法)
操作(Operation)表示类能够提供的功能服务。它在UML类矩形框中用文字串说明,如下图所示。
操作名指示类可提供的功能服务,它后跟圆括号中的参数列表是可选项,即一个操作可以有参数,也可以没有参数。参数列表由逗号分隔的操作的形式参数组成,其格式为:
参数名: 类型=缺省值,....
返回列表是返回给调用者的单个变量值,它可以表示该操作程序运行的一个成功标志或者计算的值。

二、类的关系
类之间可以建立五种关系:关联、依赖、泛化、实现和聚集。其标记如下图所示。
1、关联关系
关联关系是指类之间的语义联系。给定关联的两个类,可以从其中的一个类的对象访问到另一个类的相关对象。关联的可视化表示方法是用一条线连接两个类,并把关联的名字放在这个连接线之上;关联的方向用一个实心三角形箭头来指明。
主要有以下四个属性:
1、关联名称
2、角色名称
3、多重性
4、导航性
多重性用来指示一个类的多少对象与另一个类的一个对象相关。可以再类关系的任何一端添加多重性,来指示出多重性

关联类(设计模式思考)
00建模的一个普遍问题是,当类之间具有多对多关系时,一些属性不能容易地放入一个类中。例如,下图所示的公司与员工的类关系。
模型表达意义:
每个Person对象能够为很多Company对象工作
每个Company对象能够雇佣很多Pero三年对象
然而,当每个Person与雇佣它的COmpany间存在薪水属性时会发生什么呢?薪水记录在何处呢?记录在Person类中还是Company类中?
答案是薪水实际上是关联本身的特性,对于Person对象和Company对象之间的每个雇佣链接都存在特定雇佣的特定薪水。
UML允许你使用关联类来建模这种情况,如下图所示
关联类既是关联又是类
2、依赖关系
依赖关系是指一个类的元素使用了另一个类。依赖关系描述类之间的引用关系。在UML图中,依赖关系用一条带有箭头的虚线来表示。
3、泛化关系
泛化关系是描述类之间的继承关系。利用泛化来表达类之间的相似性。在UML中,用父类到子类之间的连线来表示继承关系。父类连接部分,指向父类的一段带有一个空心三角形箭头
4、实现关系
实现关系将一种模型元素(如类)与另一种模型元素(如接口)连接起来,其中接口只是行为的说明而不是结构或者实现。真正的实现由前一个模型元素来完成。
接口的模型表示法和类大致相同,都是用一个矩形图标来代表。和类的不同之处在于,接口只是一组操作,没有属性。
在UML图中,实现关系一般用带有一条带有空心箭头的虚线来表示。
5、聚集关系
聚集用来描述两个类之间的整体--部分关系,其中一个类为整体,它有一个或者多个部分类组成,再聚合中,部分类可以没有整体类而存在。如下图所示。
组合是一种特殊的聚合关联。在组合关联中用来组成整体类的部分类是不能独立存在。整体类由部分类是不能独立存在。整体类由部分类组成,部分类需要整体类才能存在。这种关系意味着销毁整体类将会同时销毁部分。
组合关联使用带有实心菱形的实现连接。(如:如果没有数据库,表和查询页不会存在)


如何建模类图
创建类图需要两个反复执行的步骤:
1、确定类及其关联
2、确定属性和操作
开始创建类图的好起点就是用例图。


类图创建的详细步骤
1、确定类和关联
首先要做的是通过分析用例图确定类及其关联找到第一批类,确定它们的内容。
在用例图中,首先确定了Grades类和ReportCard类
接下来,通过同时使用参与者名称确定附加的类。这将会确定Teacher类,Student类和Adminstrator类
现在可以开始创建类的关联:
Teacher记录、更新、查看Grades
Adminstrator查看Grades、生成ReportCards
Student查看Grades
ReportCards包含Grades
进一步创建类的关联:增加WebSite类和Logon类
下一步通过添加多重性让类图的信息更加详细,并且对类图进行调整以便保证没有冗余的类和关联。
2、确定属性和操作
现在我们已经创建好了类和关联,可以开始添加属性和操作以便提供数据存储和需要的功能来完成系统功能。
在下图中可以看到,表示参与者的类没有显示属性和操作,这并不意味着他们不存在,而只是表示类图不需要该细节。
最后,为属性和操作提供参数、数据类型和初始值





对象图
对象图表示一组对象及它们之间的联系,对象图是系统的详细状态在某一时刻的快照,常用于表示复杂的类图的一个实例
对象图中的建模元素有对象和链。对象是类的实例,对象之间的链是类之间的关联的实例,对象图实质上是类图的实例。
UML中对象图的图标也是一个矩形,和类的图标一样,但是对象名下面要带下划线。在左边的这个图标中,具体实例的名字位于冒号的左边,而该实例所属的类名位于冒号的右边。实例的名字以一个小写字母开头。也可以是一个匿名的对象,如图右边所示。这仅仅意味着指明了对象所属的类,但并没有提供一个具体的对象名

原创粉丝点击