面向对象方法uml分析第15章_第1页
面向对象方法uml分析第15章_第2页
面向对象方法uml分析第15章_第3页
面向对象方法uml分析第15章_第4页
面向对象方法uml分析第15章_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1第15章 UML模型的实现 软件系统的各种UML模型只是模型,并非可执行的系统,因此,要使用软件,必须将其转换为可执行的系统,这就是UML模型的实现。现在,已有一些UML建模工具(例如Rational Rose等)可以根据UML模型自动生成软件系统的主要框架代码,在此基础上,系统开发人员可以再补充必要的系统细节。本章将介绍用C+代码实现UML模型的基本原理和方法,因为类图模型是最基本、最重要,并且也是最常使用的UML模型,因此,本章主要介绍如何用C+代码实现UML类图模型,包括类图中类的实现和各种关系的实现。2本章学习要点:将UML模型中的类映射为C+类UML模型中关联关系的C+实现UML模

2、型中聚合与组合关系的C+实现UML模型中泛化关系的C+实现用C+语言实现UML模型中的接口和包315.1 类的实现 在C+语言中,类的一般组成是:数据成员集合、成员函数集合、可见性和类名。类的定义由类头和类体两部分组成,类头通常放在扩展名为.h的文件中,而将类体放在扩展名为.cpp的文件中。因而,在将UML模型中的类映射为C+类时,应分别创建一个.h文件和.cpp文件,在.h文件中给出数据成员和成员函数的声明,而在.cpp文件中填写类体的框架,类体中的某些具体实现细节由编程人员添加。415.2 关联关系的实现 在用C+语言实现UML的类图模型时,类之间的关联关系可通过嵌入指针来实现。关联端点上

3、的角色名可实现为相关类的属性(对象指针),可见性通常使用private。关联角色在类中的具体实现受关联多重性的影响:如果多重性为1,则相应类中应包含一个指向关联对象的指针;若多重性大于1,在相应类中应包含由关联对象指针构成的集合;若关联多重性大于1而且有序,则相应类中应包含有序的关联对象指针集。除此之外,相应的类中还应包含对指针进行读写的成员函数,以维护类之间的关联关系。15.2.1 一般关联的实现 这里的一般关联指的是单向关联、双向关联、强制对可选关联、强制对强制关联、可选对可选关联以及多对多关联等,下面将具体介绍如何使用C+语言实现它们。 对于单向关联,在实现时可将关联角色作为位于关联尾部

4、的类的属性,并且还应在相应类中包含对该属性进行读写的函数。515.2.2 有序关联的实现 类ClassA与类ClassB之间存在有序的可选对多关联关系,在映射为C+代码时可通过使用标准模板库中的list来实现。类ClassA可以有如下所示的头文件。 615.2.3 关联类的实现本节将介绍如何用C+语言实现关联类。715.2.4 受限关联的实现受限关联是一种特殊的关联,在受限关联中,限定符这一端的类的对象中存在一张表,表中的每一项为指向另一端的类对象的指针,限定符用来作为进行表查询的关键字。例如,在图15-14中,类Customer的对象中具有存储了指向Car对象指针的表,其中的CarID是查询

5、的关键字,查询后的结果是一个由指向Car对象的指针构成的集合。要表示限定符端的类中的表,一般情况下使用指针字典,但是在具体实现时会受到非限定符端多重性和C+类库的影响。 815.3 聚合与组合关系的实现 聚合关系和组合关系都是特殊的关联关系,在用C+语言实现聚合关系时,采用嵌入指针方式;实现组合关系时,采用嵌入对象方式。915.4 泛化关系的实现 UML规范中的泛化关系在C+中是通过继承机制实现的。继承机制是一种能够促进代码共享、代码复用和代码扩展的机制,通过使用继承,可以在父类(基类)的基础上定义子类(派生类),子类继承了父类的数据成员和成员函数,除此之外,还可以为子类添加其特有的数据成员和成员函数。在子类中,也可以对从父类继承的成员函数进行修改,也就是C+的虚函数机制。在父类中将一个成员函数声明为虚函数后,在该类的子类中就可以为这个虚函数重新指定函数体。1015.5 接口类和包的实现本节介绍如何用C+语言实现UML模型中的接口和包。首先介绍接口类的实现。接口是操作规约的集合。当一个类实现了某接口中声明的所有操作时,就称该类实现了此接口。在用C+语言

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论