第9章 包图精选文档.ppt





《第9章 包图精选文档.ppt》由会员分享,可在线阅读,更多相关《第9章 包图精选文档.ppt(52页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、本讲稿第一页,共五十二页在对一个大型的软件系统建立模型时往往需在对一个大型的软件系统建立模型时往往需要面对和处理大量的模型元素,如对象类、要面对和处理大量的模型元素,如对象类、接口、组件、节点、图等。接口、组件、节点、图等。UMLUML的包是一种对模型元素进行成组组织的通的包是一种对模型元素进行成组组织的通用机制,它把语义上相近的可能一起变更的用机制,它把语义上相近的可能一起变更的模型元素组织在同一个包里,便于理解复杂模型元素组织在同一个包里,便于理解复杂的系统,控制系统结构各部分间的接缝。的系统,控制系统结构各部分间的接缝。包可以用于组织一个系统模型。一个系统的包可以用于组织一个系统模型。一
2、个系统的框架、模型、子系统等也都可以看作是特殊框架、模型、子系统等也都可以看作是特殊的包。的包。第第第第9 9章章章章 包图包图包图包图Home本讲稿第二页,共五十二页第第第第9 9章章章章 包图包图包图包图9.1 9.1 包包9.2 9.2 包的联系包的联系9.3 9.3 包图包图9.4 9.4 包图的应用包图的应用Home本讲稿第三页,共五十二页9.1 9.1 包包包包Home9.1.1 9.1.1 包的语义和表示包的语义和表示9.1.2 9.1.2 包的嵌套包的嵌套9.1.3 9.1.3 标准构造型标准构造型本讲稿第四页,共五十二页E运用包可以把语义上相近的可能一起变更的模型元素运用包可
3、以把语义上相近的可能一起变更的模型元素组织在同一个包里,对包中的元素作为一个整体对待,组织在同一个包里,对包中的元素作为一个整体对待,并且控制它们的可视性和存取。并且控制它们的可视性和存取。E包的图标是一个大矩形(内容包的图标是一个大矩形(内容 框)的左上角带一个小矩形(框)的左上角带一个小矩形(名字框),如图名字框),如图9.19.1所示。所示。E包的名字可是一个简单名或路包的名字可是一个简单名或路 径名。在包名之后或之下,可径名。在包名之后或之下,可 用括在花括号中的文字(约束)用括在花括号中的文字(约束)说明包的性质,如说明包的性质,如“abstractabstract”、“versio
4、nversion”等。等。9.1.1 9.1.1 包的语义和表示包的语义和表示包的语义和表示包的语义和表示本讲稿第五页,共五十二页E一个包可以拥有一个或多个模型元素,包一个包可以拥有一个或多个模型元素,包括对象类、接口、组件、节点、协同、括对象类、接口、组件、节点、协同、Use Use CaseCase、图等,甚至拥有其他包。、图等,甚至拥有其他包。E所有所有UMLUML的模型元素都可以放入包内。通常,的模型元素都可以放入包内。通常,一个包拥有的是对象类或其他的包。一个包拥有的是对象类或其他的包。E包与它所含的模型元素之间的关系是一种包与它所含的模型元素之间的关系是一种组合联系,即一个包由一个
5、或多个模型元组合联系,即一个包由一个或多个模型元素组成。一个包消失了,它所拥有的全部素组成。一个包消失了,它所拥有的全部模型元素也随之消失。模型元素也随之消失。E不同包的模型元素可以同名,但在同一个包不同包的模型元素可以同名,但在同一个包中的模型元素不能同名。中的模型元素不能同名。9.1.1 9.1.1 包的语义和表示包的语义和表示包的语义和表示包的语义和表示Home本讲稿第六页,共五十二页E包的模型元素名前可以有可视性标记,分别用包的模型元素名前可以有可视性标记,分别用“+”、“#”、“-”表示可视性为表示可视性为“公共公共”、“保护保护”、“私用私用”,如图,如图9.29.2所示。所示。E
6、包只是一种组织模型元素的容器,它没有实例,只包只是一种组织模型元素的容器,它没有实例,只有内含的内容,即对象类、接口等模型元素。有内含的内容,即对象类、接口等模型元素。9.1.1 9.1.1 包的语义和表示包的语义和表示包的语义和表示包的语义和表示本讲稿第七页,共五十二页E包纯粹是一种概念性的建模工具,它与组件不同。包纯粹是一种概念性的建模工具,它与组件不同。包只在软件的开发过程中存在,它类似一个有标包只在软件的开发过程中存在,它类似一个有标签的文件夹,其中包含有包的名字和内容。而组签的文件夹,其中包含有包的名字和内容。而组件是系统的组成部分,既存在于软件的开发过程件是系统的组成部分,既存在于
7、软件的开发过程中,也存在于系统的运行期间。中,也存在于系统的运行期间。E包内的模型元素具有较强的内聚性,不同的包包内的模型元素具有较强的内聚性,不同的包的元素之间的耦合性很弱。的元素之间的耦合性很弱。9.1.1 9.1.1 包的语义和表示包的语义和表示包的语义和表示包的语义和表示本讲稿第八页,共五十二页E包可以拥有其他包作为包内的元素,子包又可包可以拥有其他包作为包内的元素,子包又可以拥有自己的子包,这样可以构成一个系统的以拥有自己的子包,这样可以构成一个系统的嵌套结构,以表达系统模型元素的静态结构关嵌套结构,以表达系统模型元素的静态结构关系。系。E包的嵌套可以清晰地表现系统模型元素之间包的嵌
8、套可以清晰地表现系统模型元素之间的相互关系。但嵌套不宜过深,包的嵌套层的相互关系。但嵌套不宜过深,包的嵌套层数一般以数一般以2 23 3层为宜。层为宜。9.1.2 9.1.2 包的嵌套包的嵌套包的嵌套包的嵌套Home本讲稿第九页,共五十二页E例:图例:图9.39.3是包的嵌套的一个示例,它表示一个是包的嵌套的一个示例,它表示一个通用图形编辑器的组织结构。通用图形编辑器的组织结构。E包与它的元素的组成关系可以用树形结构表示,包与它的元素的组成关系可以用树形结构表示,这对于表达概念模型是有用的。例如,图这对于表达概念模型是有用的。例如,图9.49.4是是图图9.39.3的树形表示,只不过它不能表达
9、子包之间的树形表示,只不过它不能表达子包之间的依赖联系。的依赖联系。9.1.2 9.1.2 包的嵌套包的嵌套包的嵌套包的嵌套本讲稿第十页,共五十二页E例:包的嵌套示例,如图例:包的嵌套示例,如图9.39.3所示。所示。9.1.2 9.1.2 包的嵌套包的嵌套包的嵌套包的嵌套本讲稿第十一页,共五十二页E例:包中元素的树形结构示例,如图例:包中元素的树形结构示例,如图9.49.4所所示。它是图示。它是图9.39.3的树形表示。的树形表示。9.1.2 9.1.2 包的嵌套包的嵌套包的嵌套包的嵌套本讲稿第十二页,共五十二页9.2 9.2 包的联系包的联系包的联系包的联系Home9.2.1 9.2.1
10、依赖与输入依赖依赖与输入依赖9.2.2 9.2.2 泛化泛化9.2.3 9.2.3 合并合并本讲稿第十三页,共五十二页E包与包之间的联系主要有两种:依赖(尤包与包之间的联系主要有两种:依赖(尤其是输入依赖)和泛化。其是输入依赖)和泛化。E两个模型元素之间存在着依赖是指一个元两个模型元素之间存在着依赖是指一个元素的定义的改变会引起另一个元素发生相素的定义的改变会引起另一个元素发生相应改变。应改变。E两个包之间存在着依赖通常是指这两个包所两个包之间存在着依赖通常是指这两个包所含的模型元素之间存在着一个或多个依赖。含的模型元素之间存在着一个或多个依赖。E对于由对象类组成的包,如果在两个包的任对于由对
11、象类组成的包,如果在两个包的任何对象类之间存在着任何一种依赖,则这两何对象类之间存在着任何一种依赖,则这两个包之间存在着依赖。个包之间存在着依赖。9.2.1 9.2.1 依赖与输入依赖依赖与输入依赖依赖与输入依赖依赖与输入依赖本讲稿第十四页,共五十二页E包的依赖联系同样是用一条虚箭线表示,包的依赖联系同样是用一条虚箭线表示,虚箭线从依赖包(源)指向独立包(目标)。虚箭线从依赖包(源)指向独立包(目标)。E包的依赖联系没有传递性。包的依赖联系没有传递性。E例:例:“订货订货”包与包与“顾客顾客”包之间存在着包之间存在着依赖,如图依赖,如图9.59.5所示。所示。9.2.1 9.2.1 依赖与输入
12、依赖依赖与输入依赖依赖与输入依赖依赖与输入依赖Home本讲稿第十五页,共五十二页E例:包的嵌套与泛化示例,如图例:包的嵌套与泛化示例,如图9.59.5所示。所示。9.2.1 9.2.1 依赖与输入依赖依赖与输入依赖依赖与输入依赖依赖与输入依赖本讲稿第十六页,共五十二页E包的依赖联系可以加上许多构造型规定它的语义,其中包的依赖联系可以加上许多构造型规定它的语义,其中最常见的一种依赖是输入依赖。最常见的一种依赖是输入依赖。E输入依赖是包与包之间的一种存取依赖关系。输入指输入依赖是包与包之间的一种存取依赖关系。输入指允许一个包的元素存取另一个包的元素。输入依赖是允许一个包的元素存取另一个包的元素。输
13、入依赖是单向的。输入依赖没有传递性。单向的。输入依赖没有传递性。E包的公共部分,即其可视性为包的公共部分,即其可视性为“公共公共”的模型元素,的模型元素,称为包的输出。包的输出只对另一个与它有输入依赖称为包的输出。包的输出只对另一个与它有输入依赖的包才是可视的、可存取的。的包才是可视的、可存取的。E输入依赖的表示方法是在虚箭线上标有构造型输入依赖的表示方法是在虚箭线上标有构造型,箭头从输入方的包指向输出方的包。,箭头从输入方的包指向输出方的包。9.2.1 9.2.1 依赖与输入依赖依赖与输入依赖依赖与输入依赖依赖与输入依赖本讲稿第十七页,共五十二页E例:包的输入依赖示例,如图例:包的输入依赖示
14、例,如图9.69.6所示。所示。9.2.1 9.2.1 依赖与输入依赖依赖与输入依赖依赖与输入依赖依赖与输入依赖本讲稿第十八页,共五十二页E泛化联系表达事物的一般与特殊的关系。如果泛化联系表达事物的一般与特殊的关系。如果两个包之间存在有泛化联系,意指其中的特殊两个包之间存在有泛化联系,意指其中的特殊性包必须遵循一般性包的接口。性包必须遵循一般性包的接口。E与类的继承相同,特殊包从一般包继承其所含与类的继承相同,特殊包从一般包继承其所含的公共类,并且可以重载和添加自己的类。特的公共类,并且可以重载和添加自己的类。特殊包可以代替一般包,用在一般包使用的任何殊包可以代替一般包,用在一般包使用的任何地
15、方。地方。E例如,在图例如,在图9.59.5中包中包“数据库接口数据库接口”与包与包“OracleOracle接口接口”、“SybaseSybase接口接口”之间存在之间存在泛化联系。其中,泛化联系。其中,“数据库接口数据库接口”包是一般包,包是一般包,“OracleOracle接口接口”包和包和“SybaseSybase接口接口”包是特殊包是特殊包。包。9.2.2 9.2.2 泛化泛化泛化泛化本讲稿第十九页,共五十二页E例:包的嵌套与泛化示例,如图例:包的嵌套与泛化示例,如图9.59.5所示。所示。9.2.2 9.2.2 泛化泛化泛化泛化本讲稿第二十页,共五十二页E包之间的合并联系也是一种依
16、赖关系,它用一条包之间的合并联系也是一种依赖关系,它用一条带有构造型带有构造型的虚箭线表示,从接受合并的虚箭线表示,从接受合并包指向被合并包。包指向被合并包。E包合并联系允许被合并包的内容与接受合并包的包合并联系允许被合并包的内容与接受合并包的内容合并,即(在概念上而非物理上)把被合并内容合并,即(在概念上而非物理上)把被合并包中的全部元素合并加入到接受合并包中,而被包中的全部元素合并加入到接受合并包中,而被合并包与接受合并包中的那些具有相同名称的元合并包与接受合并包中的那些具有相同名称的元素则合并成一个唯一的元素,它拥有两者的特征。素则合并成一个唯一的元素,它拥有两者的特征。E当定义在不同的
17、包中的模型元素具有相同的名称当定义在不同的包中的模型元素具有相同的名称并且表达相同的概念时,就需要使用包合并联系。并且表达相同的概念时,就需要使用包合并联系。9.2.3 9.2.3 合并合并合并合并本讲稿第二十一页,共五十二页9.2.3 合并合并E例:在图例:在图9.79.7中,包中,包P P和和Q Q与包与包W W之间存在合并联之间存在合并联系,如图系,如图9.79.7(a a)所示。它的含义是(在概念)所示。它的含义是(在概念上)包上)包P P和和Q Q中的全部模型元素中的全部模型元素类类A A、B B、C C合并到包合并到包W W中,其中合并后包中,其中合并后包W W的类的类A A的内容
18、是的内容是包包P P和和Q Q各自的类各自的类A A与包与包W W中原来的类中原来的类A A(可分别(可分别记作记作P P:A A、Q Q:A A和和W W:A A)合并的结果,类)合并的结果,类W W:A A的属性和操作来自的属性和操作来自P P:A A、Q Q:A A和和W W:A A,如图如图9.79.7(b b)所示。)所示。本讲稿第二十二页,共五十二页例:包例:包P P和和Q Q中的类中的类A A、B B、C C合并到包合并到包W W中,如图中,如图9.79.7所示。所示。9.2.3 9.2.3 合并合并合并合并WASno:IntSname:StringDeptno:IntOp1()
19、Op2()CBDPASno:IntSname:StringOp1()BADeptno:IntOp2()QCWDA(a)(b)本讲稿第二十三页,共五十二页E包图由包和包之间的联系构成。包图的图形节点包图由包和包之间的联系构成。包图的图形节点是包,节点之间用弧(依赖或泛化)连接。是包,节点之间用弧(依赖或泛化)连接。E包图是维护和控制系统总体结构的重要建模工具。包图是维护和控制系统总体结构的重要建模工具。E包在很多方面与对象类相似,但是在建立系统模包在很多方面与对象类相似,但是在建立系统模型时特别要注意区别包与类。型时特别要注意区别包与类。E对象类是问题领域或解决方案中的事物的抽象,对象类是问题领
20、域或解决方案中的事物的抽象,包是把这些事物组织成模型的一种机制。包是把这些事物组织成模型的一种机制。E包可以没有标识,因为它没有实例,在运行系包可以没有标识,因为它没有实例,在运行系统中不可见;类必须有标识,它有实例,类的统中不可见;类必须有标识,它有实例,类的实例(对象)是运行系统的组成元素。实例(对象)是运行系统的组成元素。9.3 9.3 包图包图包图包图本讲稿第二十四页,共五十二页9.4 9.4 包图的应用包图的应用包图的应用包图的应用Home9.4.1 9.4.1 包图的建立包图的建立9.4.2 9.4.2 系统建模系统建模9.4.3 9.4.3 开发跟踪开发跟踪本讲稿第二十五页,共五
21、十二页使用包的目的是把模型元素组织成组,为其命使用包的目的是把模型元素组织成组,为其命名,以便作为整体处理。名,以便作为整体处理。对于一个大型的复杂的系统,常需要把系统设对于一个大型的复杂的系统,常需要把系统设计模型中的大量的模型元素组织成包和子系统计模型中的大量的模型元素组织成包和子系统(子系统是特殊的包),给出它们之间的联系,(子系统是特殊的包),给出它们之间的联系,以方便理解和处理整个模型。以方便理解和处理整个模型。Home9.4.1 9.4.1 包图的建立包图的建立包图的建立包图的建立本讲稿第二十六页,共五十二页建立包图的具体的做法如下:建立包图的具体的做法如下:(1 1)分分析析系系
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第9章 包图精选文档 精选 文档

限制150内