欢迎来到天天文库
浏览记录
ID:52957765
大小:2.55 MB
页数:90页
时间:2020-04-03
《UML入门教程(中文版)part00004.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、276计计第三部分参考资料下载混淆。这是工具的实现职责。用双斜线分隔的不同层次命名空间的名称可以构成路径名。223.namespace(命名空间)模型的一部分,名称在此处定义并使用。在命名空间内,每个名称有唯一的意义。语义所有有名称的元素都在命名空间内声明,它们名称的作用域也是该命名空间。顶级的命名空间是包(包含子系统)或者包容器,包容器的目的主要是将元素组织为易于人类理解并访问的组,并在开发中将模型组成为易于计算机存储、维护的组。基本的模型元素,包括类、关联、状态机、协作都是它们各自内容(如属性、关联端、状态机、协作角色)的命名空间。每个模型元素的作用域
2、在各自的描述中说明。每种模型元素有各自的命名空间。命名空间内定义的名称必须唯一(这正是使用名称的目的)。给出命名空间和名称,可以找到具体的模型元素(如果它有名称—有些元素是匿名的,必须通过有名称的元素与它的关联来查找)。命名空间可以嵌套,给出嵌套的命名空间名称,就可以向内查找。包可以访问或者引入另一个包,从而访问它的命名空间。系统自身定义了最外层的命名空间,它是所有名称的基础。它是一个包,通常还带有几层嵌套的包,直到得到最终基本元素的名称为止。表示法路径名(穿过几个嵌套命名空间的路径)由用双冒号(::)隔开的命名空间(如包或类)的名称连接而成。如下例:Us
3、erInterface::HelpFacility::HelpScreen224.navigability(导航性)说明是否可以穿过类的表达式中的二元关联得到与类的实例相关联的对象或对象集。此概念不适用于n元关联(见text)。导航性的特性是枚举类型,值可以是true(可导航),false(不可导航)。见navigationeffciency。语义导航性说明角色名可否用于表达式,以通过一个对象的关联,到达附属于关联端的对象第13章术语大全计计277下载或对象集。如果有导航性,则关联定义了该角色名的另一个关联端的类的伪属性—即角色名可以像属性一样用于表达式,
4、并得到值。角色名还可用于表达约束。没有导航性说明与角色名相对的类“看不到”关联,因此不能用它构成表达式。没有导航性的关联不会创建源类到目标类之间的依赖关系,但是可能有其他子句创建这样的依赖关系。没有导航性不是说没有遍历关联的方法。可以从其他方向遍历关联,可以在其他类的实例中进行搜索,找出指向对象的类。这种方法仅仅在小范围内适用。n元关联不能定义导航性,因为这需要对类的集合一一定义导航性。这是可以实现的,但是作为一种基本特性就太复杂了。这不是说n元关联不能遍历,而是这样的规则过于复杂,难以用布尔值定义。导航性通常与导航效率相关,但是UML规则中没有严格的要求
5、。表示法可导航的关联用附属于目标类的关联路径上的箭头表示。箭头说明遍历的方向(如图13-131)。导航性的符号可以省略(对于图中所有的关联)。箭头可以画在0、1或者2个关联端上。为了方便,对于双向导航的关联可以将省略箭头。理论上,这可能会与两个方向都不能导航的关联混淆,但是实际上很少有这种关联,因此出现时可以特别表明。没有必要标注“未确定”的导航性。如果没有确定导航性,也可以归入常见的状态。关于导航性的讨论只是对它作或者不作限制。不可导航的:可导航的:产品未存储订单列表每一个订单都有对应的产品列表。可以找到某产品的订单,但必须搜索产品。图13-131导航性
6、225.navigable(可导航的)一种可以用于表达式遍历的关联或者链。它的可导航特性为true。这种链通常用指针或者指针集实现。见navigability、navigationefficiency。226.navigation(导航)在图中遍历连接,特别是对象模型中的二元链和属性,从而得到对象的映射值。在后一278计计第三部分参考资料下载种情况下,导航路径可以表示为属性名或者角色名的序列。见navigability。227.navigationefficiency(导航效率)表明是否可能有效地从一个对象开始遍历二元关联从而与之关联的得到对象或对象集。这
7、个概念不适用于n元关联。导航效率与导航性相关,但不是它定义的特性。见navigability。语义可以用常规方法定义导航效率,以便符合抽象设计和各种程序设计语言的要求。如果得到关联对象集的花费正比于集合中对象的数目(不是多重性的上界,那可能是无穷)加上某个固定常数,则认为二元关联可以有效地进行导航。计算复杂性时,花费是O(n)。如果多重性是1或者0、1,则访问的花费必须为常数,这阻碍了变长列表的搜索。一种较松导航效率定义允许的最小花费为log(n)。虽然通常用嵌入到包含对象属性的块中的指针来实现多重性为1的可导航关联,也可以用散列表来达到外部实现,表中带有
8、平均访问花费。因此,关联可以被实现为参与类之外的外部对象的查表操作
此文档下载收益归作者所有