关键字:UML模型 管理视图包间
· 包间的依赖关系
依赖关系在独立元素之间出现,但是在任何规模的系统中,应从更高的层次观察它们。包之间的依赖关系概述了包中元素的依赖关系,即包间的依赖关系可从独立元素间的依赖关系导出。
包间依赖关系的存在表示存在一个自底向上的方法(一个存在声明),或允许过后存在于一个自顶向下的方法(限制其他任何关系的约束)中,对应的包中至少有一个独立元素之间给定种类的依赖关系的关系元素。这是一个“存在声明”,并不意味着包中的所有元素都有依赖关系。这对建模者来说是表明存在更进一步的信息的标志,但是包层依赖关系本身并不包含任何更深的信息,它仅仅是一个概要。
自顶向下方法反映了系统的整个结构,自底向上方法可以从独立元素自动生成。在建模中两种方法有它们自己的地位,即使是在单个的系统中也是这样。
独立元素之间属于同一类别的多个依赖关系被聚集到包间的一个独立的包层依赖关系中,独立元素包含在这些包中。如果独立元素之间的依赖关系包含构造型(如几种不同的使用),为了产生单一的高层依赖关系,包层依赖关系中的构造型可能被忽略。
包用附有标签的矩形表示,依赖关系用虚线箭头表示。
图 10-1 显示了订票系统的包结构图。外部包外部。 Seat selection 的两个变更之间存在依赖关系,子系统和的任何一个实现都将只包括其中一个变。
图 10-1 包和包间的关系
· 访问与引入依赖关系
通常,一个包不能访问另一个包的内容。包是不透明的,除非它们被访问或引入依赖关系才能打开。访问依赖关系直接应用到包和其他包容器中。在包层,访问依赖关系表示提供者包的内容可被客户包中的元素或嵌入于客户包中的子包所引用。提供者中的元素在它的包中要有足够的可见性,使得客户可以看到它。通常,一个包只能看到其他包中被指定为具有公共可见性的元素。具有受保护可见性的元素只对包含它的包的后代包具有可见性。可见性也可用于类的内容(属性和操作)。一个类的后代可以看到它的祖先中具有公共或受保护可见性的成员,而其他的类则只能看到具有公共可见性的成员。对于引用一个元素而言,访问许可和正确的可见性都是必须的。所以,如果一个包中的元素要看到不相关的另一个包的元素,则第一个包必须访问或引入第二个包,且目标元素在第二个包中必须有公共可见性。
嵌套在另一个包中的包是包容器顺的一部分,而且可以完全访问包容器顺的内容。然而,对包容器顺体来说,如果不访问嵌套包,则不能看到嵌套包的内部,其内容被封装了起来。
请注意访问依赖关系不改变客户的命名空间或以任何其他方式自动建立引用,它仅仅授予建立引用的权限。引入依赖关系用来将名字加入到客户包的名字域作为路径名的别名。
依赖关系在独立元素之间出现,但是在任何规模的系统中,应从更高的层次观察它们。包之间的依赖关系概述了包中元素的依赖关系,即包间的依赖关系可从独立元素间的依赖关系导出。
包间依赖关系的存在表示存在一个自底向上的方法(一个存在声明),或允许过后存在于一个自顶向下的方法(限制其他任何关系的约束)中,对应的包中至少有一个独立元素之间给定种类的依赖关系的关系元素。这是一个“存在声明”,并不意味着包中的所有元素都有依赖关系。这对建模者来说是表明存在更进一步的信息的标志,但是包层依赖关系本身并不包含任何更深的信息,它仅仅是一个概要。
自顶向下方法反映了系统的整个结构,自底向上方法可以从独立元素自动生成。在建模中两种方法有它们自己的地位,即使是在单个的系统中也是这样。
独立元素之间属于同一类别的多个依赖关系被聚集到包间的一个独立的包层依赖关系中,独立元素包含在这些包中。如果独立元素之间的依赖关系包含构造型(如几种不同的使用),为了产生单一的高层依赖关系,包层依赖关系中的构造型可能被忽略。
包用附有标签的矩形表示,依赖关系用虚线箭头表示。
图 10-1 显示了订票系统的包结构图。外部包外部。 Seat selection 的两个变更之间存在依赖关系,子系统和的任何一个实现都将只包括其中一个变。
图 10-1 包和包间的关系
· 访问与引入依赖关系
通常,一个包不能访问另一个包的内容。包是不透明的,除非它们被访问或引入依赖关系才能打开。访问依赖关系直接应用到包和其他包容器中。在包层,访问依赖关系表示提供者包的内容可被客户包中的元素或嵌入于客户包中的子包所引用。提供者中的元素在它的包中要有足够的可见性,使得客户可以看到它。通常,一个包只能看到其他包中被指定为具有公共可见性的元素。具有受保护可见性的元素只对包含它的包的后代包具有可见性。可见性也可用于类的内容(属性和操作)。一个类的后代可以看到它的祖先中具有公共或受保护可见性的成员,而其他的类则只能看到具有公共可见性的成员。对于引用一个元素而言,访问许可和正确的可见性都是必须的。所以,如果一个包中的元素要看到不相关的另一个包的元素,则第一个包必须访问或引入第二个包,且目标元素在第二个包中必须有公共可见性。
嵌套在另一个包中的包是包容器顺的一部分,而且可以完全访问包容器顺的内容。然而,对包容器顺体来说,如果不访问嵌套包,则不能看到嵌套包的内部,其内容被封装了起来。
请注意访问依赖关系不改变客户的命名空间或以任何其他方式自动建立引用,它仅仅授予建立引用的权限。引入依赖关系用来将名字加入到客户包的名字域作为路径名的别名。
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/