UML--包图详解

UML--包图详解
包图
在UML的建模机制中,模型的组织是通过包(Package)来实现的。包可以把所建⽴的各种模型(包括静态模型和动态模型)阻⽌起来,形成各种功能或⽤途的模块,并可以控制包中元素的可见性,以及描述包之间的依赖关系
模型的组织结构
计算机系统的模型⾃⾝是⼀个计算机是⼀个计算机系统的制品,被应⽤在⼀个给出了模型含义的⼤语境环境中。该模型包括模型的内部组织、整个开发过程中对每个模型的注释说明、⼀个缺省值解、创建和操纵模型的假定条件以及模型与其所处环境之间的关系等。
模型需要有⾃⼰的内部组织结构,⼀⽅⾯能够对⼀个⼤系统进⾏分解,降低系统的复杂度;另⼀⽅⾯允许多个项⽬开发⼩组同时使⽤某个模型⽽不发⽣过多的相互牵涉。⼀般对系统模型的内部组织结构通常采⽤先分层再细分为包的⽅式。金纳米颗粒
包的命名和可见性
包图(Package Diagram)是⼀种维护和描述系统总体结构模型的重要建模⼯具,通过对图中各个包以及包之间关系的描述,展现出系统的模块 与模块之间的依赖关系。如下图:
包是包图中最重要的概念,它包含了⼀组模型元素和图。对于系统中的每个模型元素,如果它不是其他模型元素的⼀部分,那么它必须在系统中唯⼀的命名空间内声明。包含⼀个元素声明的命名空间被称为拥有这个元素。包是⼀个可以拥有任何种类模型元素的通⽤命名空间。可以这样说,如果将整个系统描述为⼀个⾼层的包,那么它就直接或间接地包含了所有的模型元素。
在系统模型中,每个图必须被⼀个唯⼀确定的包所有,同样这个包可能被另⼀个包所包含。包是构成进⾏配置控制、存储和访问控制的基础。所有的UML模型元素都能⽤包来进⾏组织。每⼀个模型元素或者为⼀个包所有,或者⾃⼰作为⼀个独⽴的包,模型元素的所有关系组成了⼀个具有等级关系的树状图。然⽽,模型元素(包括包)可以引⽤其他包中的元素,所以包的使⽤关系组成了⼀个⽹状结构。
耐高温盘根
在UML中,包图的标准形式是使⽤两个矩形进⾏表⽰的,⼀个⼩矩形(标签)和⼀个⼤矩形,⼩矩形紧连接在矩形的左上⾓,包的名称位于⼤矩形的中间。
同其他模型元素的名称⼀样,每个包都必须有⼀个与其他包相区别的名称。包的名称是⼀个字符串,它有两种形式:简单名(Simple Name)和路径名(Path Name)。其中,简单名仅包含⼀个名称字符串,⽽路径名是以包处于的外围包的名字作为前缀并加上名称字符串。但是在Rose中,使⽤简单名称后加上“(from 外围包)”的形式,如下图:
在包下可以创建各种模型元素,例如类、接⼝、构件、节点、⽤例、图以及其他包等。在包图下允许创建的各种模型元素都是根据各种视图下所允许创建的内容决定的,例如在⽤例视图下的包中,只能允许创建包、⾓⾊、⽤例、类、⽤例图、类图、活动图、状态图、序列图和协作图等。
包对⾃⾝所包含的内部元素的可见性也有定义,使⽤关键字private、protected或public来表⽰。private定义的私有元素对包外部元素完全不可见;protected定义的被保护的元素只对那些与包含这些元素的包有泛化关系的包可见;public定义的公共元素对所有引⼊的包以及它们的后代都可见。
上图中,包中包含了“ClassA”、“ClassB”和“ClassC”三个类,分别是⽤public、protected和private三个关键字修饰的。
通常,⼀个包不能访问另⼀个包的内容。包是不透明的,除⾮它们被访问或引⼊依赖关系才能打开。访问依赖关系直接直接应⽤到包和其他包容器中。在包层,访问依赖关系表⽰提供者包的内容可被客户包中的元素或嵌⼊与客户包中的⼦包引⽤。提供者包中的元素在它的包中要有⾜够的可见性,使得客户可以看到它。
通常,⼀个包只能看到其他包中被指定为具有公共可见性的元素。具有受保护可见性的元素只对包含
它的包的后代包具有可见性。可见性也可⽤于类的内容(属性和操作)。⼀个类的后代可以看到它的祖先中具有公共或受保护可见的成员,⽽其他的类则只能看到具有公共可见性的成员。对于引⽤⼀个元素⽽⾔,访问许可证和正确的可见性都是必须的。所以,如果⼀个包中的元素要看到不相关的另⼀个包的元素,则第⼀个包必须访问或引⼊第⼆个包,⽽⽬标元素在第⼆个包中必须有公共可见性。
无人机控制系统网络节点要引⽤包中的内容,使⽤“PackageName::PackageElement”的形式,这种形式叫做全限定名。
包的构造型和⼦系统
包也有不同的构造性,表现为不同的特殊类型的包,例如模型、⼦系统和系统等。
业务分析模型包
业务⽤例模型包
CORBA Module包
⼦系统是有单独的说明和实现部分的包。它表⽰具有对系统其他部分存在接⼝的模型单元,⼦系统使⽤具有构造型关键
字“subsystem”的包表⽰。
⼦系统
双端面机械密封包的嵌套
通用模型包可以拥有其他包作为包内的元素,⼦包⼜可以拥有⾃⼰的⼦包,这样可以构成⼀个系统的嵌套结构,⽐表达系统模型元素的静态结构关系。
包的嵌套可以清晰地表现系统模型元素之间的关系,但在建⽴模型时报的嵌套不宜过深,包嵌套的层数⼀般以⼆到三层为最佳。
包的联系
包之间的关系总的来讲可以概括为依赖关系和泛化关系。两个包之间存在着依赖关系通常是值这两个包所包含的模型元素之间存在着⼀个和多个依赖。对于由对象类组成的包,如果两个包的任何对象类之间存在着⼀种依赖,则这两个包之间就存在着依赖。
包的依赖同样是使⽤⼀根虚箭线表⽰的,虚箭线从依赖源指向独⽴⽬的的包,如下图:
包的依赖性可以加上许多构造型来规定它的语义,其中最常见的是引⼊依赖。引⼊依赖(Import Dependency)是包与包之间的⼀种存取(Access)依赖关系。引⼊是指允许⼀个包中的元素存取另⼀个包中的元素。引⼊依赖是单项的。引⼊依赖的表⽰⽅法是在虚箭线上表明构造型“《important》”,
箭头从引⼊⽅向指向输出⽅的包。引⼊依赖没有传递性,⼀个包的输出不能通过中间的包被其他的包引⼊。

本文发布于:2024-09-22 08:31:41,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/344233.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:模型   元素   关系   系统   依赖   可见   包中
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议