第5章UML包图.ppt

上传人:s****8 文档编号:69240305 上传时间:2022-12-31 格式:PPT 页数:23 大小:972KB
返回 下载 相关 举报
第5章UML包图.ppt_第1页
第1页 / 共23页
第5章UML包图.ppt_第2页
第2页 / 共23页
点击查看更多>>
资源描述

《第5章UML包图.ppt》由会员分享,可在线阅读,更多相关《第5章UML包图.ppt(23页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第5章 包 图包图就是用来描述包包图就是用来描述包及其关系的图,我们常及其关系的图,我们常用包图来描述系统、子用包图来描述系统、子系统的宏观组成和结构。系统的宏观组成和结构。25.1 什 么 是 包包是用于分组的符号,常用来对一组相同的UML元素进行分组存放和管理。UML中的包相当于文件系统中的文件夹,UML中的一个包直接对应于Java中的一个包。在Java中,一个包可能含有其他包、类或者同时含有这两者。1包的示例包的示例2包中的元素包中的元素3包的作用包的作用35.2 什么是包图1包图示例2包图的作用3包图中的元素45.3 包 的 表 示在在UML中用文件夹符号来表示一个包。即一个中用文件夹

2、符号来表示一个包。即一个包由两个矩形组成,上面是一个小矩形,下面包由两个矩形组成,上面是一个小矩形,下面是一个大矩形。图是一个大矩形。图5-3就是最常见的包表示法。就是最常见的包表示法。图中包的名称是图中包的名称是UI,包中包含一个类,包中包含一个类Page。55.3.1 包命名1包名称的位置2包名称的书写格式包名称的书写格式有两种,即简单名和全名。65.3.2 包中的元素1包中元素是类和接口2包中的元素是用例3包中元素是包4包中元素的可见性5访问权限75.3.3 用构造型表示包一个包的具体新特征有很多,为了表示包的新一个包的具体新特征有很多,为了表示包的新特性,特性,UML提供了提供了5种构

3、造型来描述包的新特征。种构造型来描述包的新特征。下面分别说明这下面分别说明这5种构造型的语义。种构造型的语义。(1)符号:表示包代表一个系统。(2)符号:表示包代表某个子系统。(3)符号:表示包是由其他包构成的一个视图。(4)符号:表示包是一个代理包,该代理包为其他包提供公共服务。(5)符号:表示包代表一个框架。85.4 包图中的关系包图中包间的关包图中包间的关系有两种,即依赖系有两种,即依赖关系和泛化关系。关系和泛化关系。95.4.1 依赖关系1关系2关系105.4.1 依赖关系3关系4关系115.4.2 泛化关系包间的泛化关系类似于类间的泛化关系,子包包间的泛化关系类似于类间的泛化关系,子

4、包继承了父包的公共元素和保护元素,并可以增继承了父包的公共元素和保护元素,并可以增加新的元素。在使用父包的地方,可以用子包加新的元素。在使用父包的地方,可以用子包代替。如图代替。如图5-13所示,父包是所示,父包是GUI,它有两个,它有两个子包,分别是子包,分别是G1和和G2。125.5 包的传递性包间的传递性是指:如果包包间的传递性是指:如果包X与包与包Y存在关系,包存在关系,包Y与与包包Z存在关系,那么,包存在关系,那么,包X与包与包Z也存在关系。也存在关系。依赖是可传递的,依赖是可传递的,依赖是不依赖是不可传递的。可传递的。当客户包与提供者包之间是当客户包与提供者包之间是依赖时,提供依赖

5、时,提供者包中的公共元素就成为客户包中的公共元素,这些者包中的公共元素就成为客户包中的公共元素,这些公共元素在包外同样是可以访问的。如图公共元素在包外同样是可以访问的。如图5-14所示,所示,Z包中的公共元素成为包中的公共元素成为Y包的公共元素,同时,包的公共元素,同时,Y包中的包中的公共元素成为公共元素成为X包中的公共元素,因此,包中的公共元素,因此,Z包中的公共包中的公共元素能被元素能被X包访问。所以,包访问。所以,X、Y、Z包间的包间的关系存在传递性。关系存在传递性。135.5 包的传递性当客户包与提供者包之间是当客户包与提供者包之间是依赖时,依赖时,提供者包中的公共元素就成为客户包中的

6、私有提供者包中的公共元素就成为客户包中的私有元素,这些私有元素在包外是不可以访问的。元素,这些私有元素在包外是不可以访问的。如图如图5-15所示,所示,Z包中的公共元素成为包中的公共元素成为Y包的私包的私有元素,而有元素,而X包只能访问包只能访问Y包中的公共元素,因包中的公共元素,因此,此,X包不能访问包不能访问Z包中的公共元素。所以,包中的公共元素。所以,X、Y、Z包间的包间的关系不存在传递性。关系不存在传递性。145.6 创建包图的方法绘制包图的基本过程主要有以下绘制包图的基本过程主要有以下3个步骤。个步骤。(1)寻找包。(2)确定包之间的关系。(3)确定包内元素的可见性。“最小化包间的耦

7、合关系最小化包间的耦合关系”的原则是:最大限的原则是:最大限度减少包之间的依赖,进行包封装时,避免包度减少包之间的依赖,进行包封装时,避免包之间的循环依赖;最小化每个包中之间的循环依赖;最小化每个包中public、protected元素的个数,最大化每个包中元素的个数,最大化每个包中private元素的个数。元素的个数。155.6.1 标识候选包在分析阶段,我们以对象模型和用例模型为依在分析阶段,我们以对象模型和用例模型为依据,把关系紧密的类分到同一个包中,把关系据,把关系紧密的类分到同一个包中,把关系松散的类分到不同的包中。确定包的过程包含松散的类分到不同的包中。确定包的过程包含3个步骤:第

8、一步,以类图为依据,寻找候选包;个步骤:第一步,以类图为依据,寻找候选包;第二步,对候选包进行调整;第三步,消除包第二步,对候选包进行调整;第三步,消除包的循环依赖。标识候选包的原则如下。的循环依赖。标识候选包的原则如下。(1)把类图中关系紧密的类放到一个包中。(2)在类层次结构中,把同一层次中的类放在同一包中,不同层次中的类放在不同的包中。165.6.2 调整候选包在已经识别一组候选包后,减少包间依赖,最小化每个包中在已经识别一组候选包后,减少包间依赖,最小化每个包中public、protected元素的个数,最大化每个包中元素的个数,最大化每个包中private元素的个数。做法如元素的个数

9、。做法如下。下。(1)在包间移动类。(2)添加包、分解包、合并包或删除包。通常,在分析阶段,将类封装为包模型时,应该尽量使包模型简单。通常,在分析阶段,将类封装为包模型时,应该尽量使包模型简单。起初,将类图转换为包图时,不需考虑包间的泛化和依赖关系,仅当起初,将类图转换为包图时,不需考虑包间的泛化和依赖关系,仅当使用诸如包泛化和依赖关系能简化包模型时,才使用这些包整理技术。使用诸如包泛化和依赖关系能简化包模型时,才使用这些包整理技术。除了保持简单,还应该避免嵌套包。包的嵌套结构越深,模型变得越除了保持简单,还应该避免嵌套包。包的嵌套结构越深,模型变得越难理解。我们曾见过非常深层的嵌套包,而每个

10、包仅包含一个或两个难理解。我们曾见过非常深层的嵌套包,而每个包仅包含一个或两个类。这些模型更像是标准的、自上而下的功能分解,而不是包模型。类。这些模型更像是标准的、自上而下的功能分解,而不是包模型。作为经验法则,希望每个包具有作为经验法则,希望每个包具有410个分析类。然而,对于所有的个分析类。然而,对于所有的经验法则,却存在例外,如果打破某个法则使得模型更加清晰,就采经验法则,却存在例外,如果打破某个法则使得模型更加清晰,就采用这个法则。有时,必须引入只带有一个或者两个类的包,因为需要用这个法则。有时,必须引入只带有一个或者两个类的包,因为需要断开包模型中的循环依赖,在这种情况下是完全合理的

11、。断开包模型中的循环依赖,在这种情况下是完全合理的。175.6.3 消除包的循环依赖如果包如果包A以某种方式依赖以某种方式依赖包包B,并且包,并且包B以某种方式以某种方式依赖包依赖包A,就应该合并这,就应该合并这两个包,这是消除循环依两个包,这是消除循环依赖非常有效的方法。但是赖非常有效的方法。但是经常起作用的、更好的方经常起作用的、更好的方法是,从法是,从A、B两个包中提两个包中提起公共元素,把它们封装起公共元素,把它们封装为第三个包为第三个包C。消除循环。消除循环包的过程是一个多次迭代包的过程是一个多次迭代的过程,示例显示如图的过程,示例显示如图5-16中的示例所示。中的示例所示。185.

12、7 包 图 应 用包图主要用于两种不同层次的用包图主要用于两种不同层次的用途:途:一是对成组元素建模,以便把对紧密相关的类封装到同一个包中,方便使用、管理和维护;二是对体系结构建模,用包图来表示软件的宏观结构。195.7.1 对成组元素建模对成组元素进行建模可以说是包图最常见的用途,它对成组元素进行建模可以说是包图最常见的用途,它把相关的元素分组,然后把每一组封装为一个包。在把相关的元素分组,然后把每一组封装为一个包。在对成组元素建模时,应遵循以下几个策略。对成组元素建模时,应遵循以下几个策略。(1)每个包都应该是由在概念上、语义上相互接近的元素组成。(2)标出每个包中可见性是公共的元素,并且

13、每个包中的公共元素应尽可能地少。(3)再构建包图时,一般使用默认的构造型来标识包间关系。在用编程语言实现包中的类时,用关键字代替UML中的构造型。(4)采用泛化标识通用包与特殊包间的关系。205.7.2 对体系结构建模体系结构是一个软件系统的核心组成和宏观结构,常体系结构是一个软件系统的核心组成和宏观结构,常用的体系结构模式包括分层、用的体系结构模式包括分层、MVC、管道、黑板、微、管道、黑板、微内核等;而在应用软件中,分层和内核等;而在应用软件中,分层和MVC是最常见的两是最常见的两种结构。种结构。在分层的体系结构中,我们常常把一个软件系统划分在分层的体系结构中,我们常常把一个软件系统划分为

14、表示层、业务逻辑层和数据访问层,每一层用一个为表示层、业务逻辑层和数据访问层,每一层用一个包来表示。包来表示。图图5-19所示为一个典型的三层结构的软件系统,该系所示为一个典型的三层结构的软件系统,该系统包括三层,每一层由多个对象组成。统包括三层,每一层由多个对象组成。215.8 小 结本章首先解释了几种常见的包图表示法,本章首先解释了几种常见的包图表示法,并通过了一个简单的例子来说明包的可见并通过了一个简单的例子来说明包的可见性、依赖关系、泛化等概念。其次,概要性、依赖关系、泛化等概念。其次,概要地说明了地说明了5种包的构造型。种包的构造型。最后说明如何寻找包、确定包之间的依赖最后说明如何寻

15、找包、确定包之间的依赖关系,从而绘制出一个表明软件体系结构关系,从而绘制出一个表明软件体系结构的包图,并简要介绍了用包图表示系统体的包图,并简要介绍了用包图表示系统体系结构的建模方法。系结构的建模方法。225.9 习 题1什么是包图?什么是包图?2包在应用当中的主要作用是什么?包在应用当中的主要作用是什么?3包之间的依赖关系主要包括哪几种?请分别举例说包之间的依赖关系主要包括哪几种?请分别举例说明。明。4包之间的各种依赖关系中,客户包将把提供者包并包之间的各种依赖关系中,客户包将把提供者包并入自己的命名空间,并成为客户包中的私有元素的是入自己的命名空间,并成为客户包中的私有元素的是哪种关系?哪种关系?5包的可见性指什么?举例说明。包的可见性指什么?举例说明。6简述体系结构建模和对成组元素建模的区别,举例简述体系结构建模和对成组元素建模的区别,举例说明用包图对体系结构进行说明用包图对体系结构进行建模。建模。23

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁