UML 包图
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第七章 包图
包的定义
包(Pachage)是一种对模型元素进行成组 组织的通用机制,它把语义上相近的可能 一起变更的模型元素组织在同一个包中, 便于理解复杂的系统,控制系统结构各部 分间的接缝。 包是一个概念性的模型管理的图形工具, 只在软件的开发过程中存在。
包的表示
包的图标是一个大矩形的左上角带一个小矩 形 包的名字可以用一个简单名(字符串)表示, 或用路径名表示,包名可以放在大矩形框中, 也可以放在左上角的小矩形框中 包名下,可以用括在花括号中的文字(约束) 说明包的性质,如“{abstract}”, “{version}”等
包的联系
两个包之间存在着依赖是指一个元素的定 义的改变会引起另一个元素发生相应改变。 包的依赖联系同样是用一条虚箭线表示, 虚箭线从依赖包(源)指向独立包(目标)
输入依赖:包与包之间的一种存取依赖关系, 输入依赖是单向的,表示方法是在虚箭线上标 有构造型<<Import>>,箭头从输入方的包指 向输出方的包。 表示存取依赖联系的另一个构造型是 <<Access>>,和<<Import>>的区别: <<Import>>把目标包的内容加到源包的名字 空间,<<Access>>不把目标包的内容加到源 包的名字空间。 输入依赖没有传递性
包的嵌套
包可以拥有其他包作为包内的元素,子 包又可以拥有自己的子包,这样可以构 成一个系统的嵌套结构。 包的嵌套层数一般以2~3层为宜 2 3
标准构造型
UML中定义的用于包的构造型有: <<façade>>,<<framework>>,<<stub>>,<<subsyste m>>,<<system>>等
对于每一个包,标出其模型元素的可视性: 公共、保护或私有 确定包和包之间的依赖联系,特别是输入 依赖 确定包和包之间的泛化联系,确定包元素 的多态性与重载 绘制包图 包图精化
包图小结
包图是保持系统构架简明清晰的工具。只 要不能将整个系统的类图压缩到一张A4纸 上,就应该使用包图。 依赖产生耦合,可用“启发式”方法将依 赖减少到最低程度。 包图中各元语的定义、可视化图符、名称 及其功能简述与类图中相同。
<<façade>>:说明包仅仅是其他一些包的视图,只包含对 另一个包所拥有的模型元素的引用,只用作为另一个包的 部分内容的公共视图 <<framework>>:说明一个包代表模型架构 <<stub>>:说明一个包是另一个包的公共内容的服务代理 <<subsystem>:说明一个包代表系统模型的一个独立部分, 即子系统 <<system>>:说明一个包代表系统模型
包图的建立
分析系统模型元素(通常是对象类),把概念或 语义上相近的模型元素纳入一个包
如果一个类的行为或结构的变更要求另一个类作相应 的变更,则这两个类是功能相关的 如果删除一个类后,另一个类就变成多余的,则这两 个类是功能相关的 如果两个类之间有大量的频繁交互或通信,则这两个 类是功能相关的 如果两个类之间有一般/特殊关系,则这两个类是功能 相关的 如果一个类激发创建另一个类的对象,则这两个类是 功能相关的 如果两个类不涉及同一个外部活动者,则这两个类不 应放在同一个包内
标以 {global} 的包叫通用包,表示系统的所有其 他包都依赖于该包
客户机
服务器
《Import》
策略
Gቤተ መጻሕፍቲ ባይዱI
《Import》
GUI:: #
泛化:表达事物的一般和特殊的关系。如 果两个包之间有泛化联系,意指其中的特 殊性包必须遵循一般性包的接口。 对一般性包可以加上一个性质说明 “{abstract}”,表明它定义了一个接口。
Version 1.2
一个包可以拥有一个或多个模型元素,包 括对象类、接口、组件、节点、协同、 use case、图及其他包等,所有的UML的 模型元素都可以放入包内。 不同包的模型元素可以同名,但在同一个 包中的模型元素不能同名。 包要具有高内聚、低藕合的特点
包内模型元素的可视性
可视性标记“+”、“#”、“-”分别表 示的可视性为“公共”、“保护”、“私 有” +,对所有包是可视的 #,只能对该包的子包是可视的 -,对外包是不可视的
包的定义
包(Pachage)是一种对模型元素进行成组 组织的通用机制,它把语义上相近的可能 一起变更的模型元素组织在同一个包中, 便于理解复杂的系统,控制系统结构各部 分间的接缝。 包是一个概念性的模型管理的图形工具, 只在软件的开发过程中存在。
包的表示
包的图标是一个大矩形的左上角带一个小矩 形 包的名字可以用一个简单名(字符串)表示, 或用路径名表示,包名可以放在大矩形框中, 也可以放在左上角的小矩形框中 包名下,可以用括在花括号中的文字(约束) 说明包的性质,如“{abstract}”, “{version}”等
包的联系
两个包之间存在着依赖是指一个元素的定 义的改变会引起另一个元素发生相应改变。 包的依赖联系同样是用一条虚箭线表示, 虚箭线从依赖包(源)指向独立包(目标)
输入依赖:包与包之间的一种存取依赖关系, 输入依赖是单向的,表示方法是在虚箭线上标 有构造型<<Import>>,箭头从输入方的包指 向输出方的包。 表示存取依赖联系的另一个构造型是 <<Access>>,和<<Import>>的区别: <<Import>>把目标包的内容加到源包的名字 空间,<<Access>>不把目标包的内容加到源 包的名字空间。 输入依赖没有传递性
包的嵌套
包可以拥有其他包作为包内的元素,子 包又可以拥有自己的子包,这样可以构 成一个系统的嵌套结构。 包的嵌套层数一般以2~3层为宜 2 3
标准构造型
UML中定义的用于包的构造型有: <<façade>>,<<framework>>,<<stub>>,<<subsyste m>>,<<system>>等
对于每一个包,标出其模型元素的可视性: 公共、保护或私有 确定包和包之间的依赖联系,特别是输入 依赖 确定包和包之间的泛化联系,确定包元素 的多态性与重载 绘制包图 包图精化
包图小结
包图是保持系统构架简明清晰的工具。只 要不能将整个系统的类图压缩到一张A4纸 上,就应该使用包图。 依赖产生耦合,可用“启发式”方法将依 赖减少到最低程度。 包图中各元语的定义、可视化图符、名称 及其功能简述与类图中相同。
<<façade>>:说明包仅仅是其他一些包的视图,只包含对 另一个包所拥有的模型元素的引用,只用作为另一个包的 部分内容的公共视图 <<framework>>:说明一个包代表模型架构 <<stub>>:说明一个包是另一个包的公共内容的服务代理 <<subsystem>:说明一个包代表系统模型的一个独立部分, 即子系统 <<system>>:说明一个包代表系统模型
包图的建立
分析系统模型元素(通常是对象类),把概念或 语义上相近的模型元素纳入一个包
如果一个类的行为或结构的变更要求另一个类作相应 的变更,则这两个类是功能相关的 如果删除一个类后,另一个类就变成多余的,则这两 个类是功能相关的 如果两个类之间有大量的频繁交互或通信,则这两个 类是功能相关的 如果两个类之间有一般/特殊关系,则这两个类是功能 相关的 如果一个类激发创建另一个类的对象,则这两个类是 功能相关的 如果两个类不涉及同一个外部活动者,则这两个类不 应放在同一个包内
标以 {global} 的包叫通用包,表示系统的所有其 他包都依赖于该包
客户机
服务器
《Import》
策略
Gቤተ መጻሕፍቲ ባይዱI
《Import》
GUI:: #
泛化:表达事物的一般和特殊的关系。如 果两个包之间有泛化联系,意指其中的特 殊性包必须遵循一般性包的接口。 对一般性包可以加上一个性质说明 “{abstract}”,表明它定义了一个接口。
Version 1.2
一个包可以拥有一个或多个模型元素,包 括对象类、接口、组件、节点、协同、 use case、图及其他包等,所有的UML的 模型元素都可以放入包内。 不同包的模型元素可以同名,但在同一个 包中的模型元素不能同名。 包要具有高内聚、低藕合的特点
包内模型元素的可视性
可视性标记“+”、“#”、“-”分别表 示的可视性为“公共”、“保护”、“私 有” +,对所有包是可视的 #,只能对该包的子包是可视的 -,对外包是不可视的