1、 1. 包包 包包(Package): 是是UML用来组织模型元素的模用来组织模型元素的模型元素。型元素。 可以把包比作一个存放模型元素的箱子或容可以把包比作一个存放模型元素的箱子或容器,在它里面可以存放多个模型元素。器,在它里面可以存放多个模型元素。 包中可以包含类、构件、用例、节点、活动、包中可以包含类、构件、用例、节点、活动、状态、包等其他模型元素。状态、包等其他模型元素。 2.包的表示包的表示 UMLUML用带把的矩形框来表示包。用带把的矩形框来表示包。简单包名简单包名路径包名路径包名 3.包中元素的可见性包中元素的可见性 包中的元素对其他包可以访问,也可以隐藏,包中的元素对其他包可以
2、访问,也可以隐藏,可见性具有可见、保护和私有三种形式可见性具有可见、保护和私有三种形式。可见可见保护保护私有私有 4.包中元素的显现性包中元素的显现性 包中的元素可以对外显现,也可以隐藏包中的元素可以对外显现,也可以隐藏。显现显现隐藏隐藏 5.包成员包成员 包成员是包中的元素,例如下图中的包成员是包中的元素,例如下图中的“检索检索图书图书”用例就是用例就是“处理订单处理订单”包的成员。包的成员。包成员包成员 1. 包名包名 包名应由标识符表示,并且用能够表示包含包名应由标识符表示,并且用能够表示包含义的名字。包的名字放到包的顶部,或包的内义的名字。包的名字放到包的顶部,或包的内面。例如:面。例
3、如: 2. 包成员的命名包成员的命名 包中成员的名字不允许相同。包中成员的名字不允许相同。 非限定名非限定名:成员的名字,不包括包的名字。:成员的名字,不包括包的名字。 例如,下图例如,下图“货品货品” 限定名限定名: 成员前面缀包名。例如,成员前面缀包名。例如, B:B:货品货品 包的可见性是指包中成员被其他包或模包的可见性是指包中成员被其他包或模型元素访问的程度型元素访问的程度 ,分以下三种情况分以下三种情况: 包图用来展现包和包之间的关系。包图用来展现包和包之间的关系。书店图书管理的包图:书店图书管理的包图:1. 包依赖关系的含义包依赖关系的含义 如果一个包要访问或导入另外一个包中的元素
4、,则两个如果一个包要访问或导入另外一个包中的元素,则两个包之间存在依赖关系。包之间存在依赖关系。 包的依赖关系用包的依赖关系用UMLUML中的虚线箭头来表示中的虚线箭头来表示, ,由源包指向被由源包指向被依赖的独立包。依赖的独立包。2. 包依赖的类型包依赖的类型 1)使用:)使用:表示一个包中的元素要使用到另外一表示一个包中的元素要使用到另外一个包中的元素个包中的元素 。2. 包依赖的类型包依赖的类型 2)抽象:)抽象:如果一个包的元素是对另外一个包元如果一个包的元素是对另外一个包元素的抽象,则两个包之间存在抽象关系素的抽象,则两个包之间存在抽象关系 。2. 包依赖的类型包依赖的类型 3)跟踪
5、:)跟踪:如果一个包的元素是对另外一个包元如果一个包的元素是对另外一个包元素的深化,则两个包之间存在跟踪关系素的深化,则两个包之间存在跟踪关系 。1. 导入关系的含义导入关系的含义 导入导入(import)(import)是指将是指将A A包的元素导入到包的元素导入到B B包中,使得导入包中,使得导入到到B B包中的包中的A A包中的元素在包中的元素在B B包中的访问程度等同于包中的访问程度等同于B B包的元包的元素。素。2. 元素导入元素导入 元素导入元素导入是指将包内任意元素导入到另外一个包中。是指将包内任意元素导入到另外一个包中。3. 包导入包导入 包导入包导入是指将一个包中的所有元素导
6、入到另外一个包中。是指将一个包中的所有元素导入到另外一个包中。 包合并包合并(package merge)(package merge)是将源包的元素合并到目标包中,是将源包的元素合并到目标包中,以扩展目标包的内容。合并之后,源包元素的特性在自己以扩展目标包的内容。合并之后,源包元素的特性在自己原有特性的基础上增加目标包的特性。原有特性的基础上增加目标包的特性。 包合并包合并合并的结果合并的结果 包的包含包的包含(include)(include) 关系是指一个包可以嵌套另外一个包关系是指一个包可以嵌套另外一个包作为自己的子包,而且允许多层嵌套作为自己的子包,而且允许多层嵌套 。 3. 包的嵌
7、套包的嵌套 包之中可以嵌套子包。包之中可以嵌套子包。 1、重用等价原则、重用等价原则 对于同类可重用的模型元素尽量放到一个包对于同类可重用的模型元素尽量放到一个包中,不要把可重用模型元素和不可重用的模型中,不要把可重用模型元素和不可重用的模型元素混到一个包中。元素混到一个包中。 2、共同重用原则、共同重用原则 把同一个应用要重用的多个模型元素放到同一把同一个应用要重用的多个模型元素放到同一个包中,以减少包间的依赖,提高包的独立性。个包中,以减少包间的依赖,提高包的独立性。 3、共同封闭原则、共同封闭原则 把可能同时修改,同时维护的模型元素放到把可能同时修改,同时维护的模型元素放到一个包中,以便
8、于维护和升级。一个包中,以便于维护和升级。4、非循环依赖原则、非循环依赖原则 包之间的依赖关系不要形成循环:即包之间的依赖关系不要形成循环:即A依赖依赖B,B依赖依赖C,C又依赖又依赖A。 利用包来有效分类组织模型元素。例如:利用包来有效分类组织模型元素。例如: 利用包来建立软件结构模型:利用包来建立软件结构模型: 一个包就是一个命名空间,在包中的所有命名元素都可一个包就是一个命名空间,在包中的所有命名元素都可以通过元素名称来标识。以通过元素名称来标识。 组成关系虽然能够反映整体与部分的组成关系,但反映组成关系虽然能够反映整体与部分的组成关系,但反映不出整体和各部件之间的结构关系。不出整体和各
9、部件之间的结构关系。 为了反映类的组成结构提出组成结构图。为了反映类的组成结构提出组成结构图。 组成结构图组成结构图(Composite Structure Diagram)(Composite Structure Diagram)也被称为复也被称为复合结构图,用来描述类与其成员的组成结构关系,成员之合结构图,用来描述类与其成员的组成结构关系,成员之间的连接关系,以及端口及协作的一种图。间的连接关系,以及端口及协作的一种图。 1 1 类与其成员类与其成员 一个类的成员是指与该类存在组成关系的其他类。在组一个类的成员是指与该类存在组成关系的其他类。在组成结构图中,把类的成员放到类的内部来描述成结
10、构图中,把类的成员放到类的内部来描述 。 2 2 成员的多重性成员的多重性 多重性在组成结构图中表示在成员类名的右边或下方。一多重性在组成结构图中表示在成员类名的右边或下方。一个教室中最少应该有个教室中最少应该有3030张课桌,也可以更多,一个讲台,张课桌,也可以更多,一个讲台,可以配置可以配置1 1个投影。个投影。 3 3 成员的连接成员的连接 在组成结构图中,成员之间如果存在关系,可以用连接符在组成结构图中,成员之间如果存在关系,可以用连接符连接。连接符用在两个成员之间的一条连线表示,成员之连接。连接符用在两个成员之间的一条连线表示,成员之间存在的关联、组成、泛化、依赖,以及动态的消息调用
11、间存在的关联、组成、泛化、依赖,以及动态的消息调用关系都采用连接符表示关系都采用连接符表示 。 4 4 类的关联类的关联 组成结构图还能表示与其关联的类,关联的类在组成结构组成结构图还能表示与其关联的类,关联的类在组成结构图中用边框为虚线的矩形框表示。图中用边框为虚线的矩形框表示。 5 5 类的端口类的端口 端口表示类与外部部件交互的交互点,类自身是一个封装端口表示类与外部部件交互的交互点,类自身是一个封装体,它通过端口与外部发生交互关系,端口表示为在类边体,它通过端口与外部发生交互关系,端口表示为在类边线上的一个小矩形框。线上的一个小矩形框。 1 1 协作的含义协作的含义 协作协作(coll
12、aboration)(collaboration)描述为完成一项功能,涉及到的承描述为完成一项功能,涉及到的承担相应角色的实体及其这些实体相互之间的联系。担相应角色的实体及其这些实体相互之间的联系。 例如,例如,“客户登录客户登录”功能涉及到的实体有登录界面,登录功能涉及到的实体有登录界面,登录控制器,以及客户等实体。而且这三者在登录中分别承担控制器,以及客户等实体。而且这三者在登录中分别承担接收信息,控制登录过程和信息存储的角色,登录就可以接收信息,控制登录过程和信息存储的角色,登录就可以称为一个协作。称为一个协作。 2 2 协作的表示协作的表示 UMLUML用虚线椭圆表示协作,协作名写到椭
13、圆内,参与协作用虚线椭圆表示协作,协作名写到椭圆内,参与协作的实体放到椭圆内的实体放到椭圆内 。 3 3 协作的用途协作的用途 1 1)用例实现建模)用例实现建模 3 3 协作的用途协作的用途 2 2)设计模式建模)设计模式建模 5 5 5 5 5 5 5 5 一一 简答题简答题(1)包的可见性有(包的可见性有( ),私有和(),私有和( )几种。)几种。 (2)包的依赖关系可以分为(包的依赖关系可以分为( ),抽象和(),抽象和( )几种形式。)几种形式。 (3)包导入可以分为(包导入可以分为( )和()和( )两种类型。)两种类型。 (4)包的包含关系是指一个包可以(包的包含关系是指一个包可以( )另外一个包作为自己的)另外一个包作为自己的( )。)。 二二 填空题填空题 1、举例说明包在软件结构建模中的作用?、举例说明包在软件结构建模中的作用? 2、包在现实中有无与之对应的事物,为什么?、包在现实中有无与之对应的事物,为什么?