第15章 UML模型的实现.ppt

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第15章 UML模型的实现.ppt

* 第15章 UML模型的实现 软件系统的各种UML模型只是模型,并非可执行的系统,因此,要使用软件,必须将其转换为可执行的系统,这就是UML模型的实现。现在,已有一些UML建模工具(例如Rational Rose等)可以根据UML模型自动生成软件系统的主要框架代码,在此基础上,系统开发人员可以再补充必要的系统细节。本章将介绍用C++代码实现UML模型的基本原理和方法,因为类图模型是最基本、最重要,并且也是最常使用的UML模型,因此,本章主要介绍如何用C++代码实现UML类图模型,包括类图中类的实现和各种关系的实现。 * 本章学习要点: 将UML模型中的类映射为C++类 UML模型中关联关系的C++实现 UML模型中聚合与组合关系的C++实现 UML模型中泛化关系的C++实现 用C++语言实现UML模型中的接口和包 * 15.1 类的实现 在C++语言中,类的一般组成是:数据成员集合、成员函数集合、可见性和类名。类的定义由类头和类体两部分组成,类头通常放在扩展名为.h的文件中,而将类体放在扩展名为.cpp的文件中。因而,在将UML模型中的类映射为C++类时,应分别创建一个.h文件和.cpp文件,在.h文件中给出数据成员和成员函数的声明,而在.cpp文件中填写类体的框架,类体中的某些具体实现细节由编程人员添加。 * 15.2 关联关系的实现 在用C++语言实现UML的类图模型时,类之间的关联关系可通过嵌入指针来实现。关联端点上的角色名可实现为相关类的属性(对象指针),可见性通常使用private。关联角色在类中的具体实现受关联多重性的影响:如果多重性为1,则相应类中应包含一个指向关联对象的指针;若多重性大于1,在相应类中应包含由关联对象指针构成的集合;若关联多重性大于1而且有序,则相应类中应包含有序的关联对象指针集。除此之外,相应的类中还应包含对指针进行读写的成员函数,以维护类之间的关联关系。 15.2.1 一般关联的实现 这里的一般关联指的是单向关联、双向关联、强制对可选关联、强制对强制关联、可选对可选关联以及多对多关联等,下面将具体介绍如何使用C++语言实现它们。 对于单向关联,在实现时可将关联角色作为位于关联尾部的类的属性,并且还应在相应类中包含对该属性进行读写的函数。 * 15.2.2 有序关联的实现 类ClassA与类ClassB之间存在有序的可选对多关联关系,在映射为C++代码时可通过使用标准模板库中的list来实现。类ClassA可以有如下所示的头文件。 * 15.2.3 关联类的实现 本节将介绍如何用C++语言实现关联类。 * 15.2.4 受限关联的实现 受限关联是一种特殊的关联,在受限关联中,限定符这一端的类的对象中存在一张表,表中的每一项为指向另一端的类对象的指针,限定符用来作为进行表查询的关键字。例如,在图15-14中,类Customer的对象中具有存储了指向Car对象指针的表,其中的CarID是查询的关键字,查询后的结果是一个由指向Car对象的指针构成的集合。 要表示限定符端的类中的表,一般情况下使用指针字典,但是在具体实现时会受到非限定符端多重性和C++类库的影响。 * 15.3 聚合与组合关系的实现 聚合关系和组合关系都是特殊的关联关系,在用C++语言实现聚合关系时,采用嵌入指针方式;实现组合关系时,采用嵌入对象方式。 * 15.4 泛化关系的实现 UML规范中的泛化关系在C++中是通过继承机制实现的。继承机制是一种能够促进代码共享、代码复用和代码扩展的机制,通过使用继承,可以在父类(基类)的基础上定义子类(派生类),子类继承了父类的数据成员和成员函数,除此之外,还可以为子类添加其特有的数据成员和成员函数。在子类中,也可以对从父类继承的成员函数进行修改,也就是C++的虚函数机制。在父类中将一个成员函数声明为虚函数后,在该类的子类中就可以为这个虚函数重新指定函数体。 * 15.5 接口类和包的实现 本节介绍如何用C++语言实现UML模型中的接口和包。 首先介绍接口类的实现。接口是操作规约的集合。当一个类实现了某接口中声明的所有操作时,就称该类实现了此接口。在用C++语言实现UML模型中的接口时,需要将其转换为只有函数原型的抽象类,也就是要将接口中声明的所有操作都转换为可见性为public的纯虚函数,而将实现接口的类转换为从接口继承的子类。 *

文档评论(0)

cnsg + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档