UML——包图

一、包图的含义

       包图(Package Diagram)由包和包之间的关系构成,对维护和控制系统总体结构很重要。系统建模中,有大量的类、接口、组件、节点和图,有必要将这些元素进行分组,把语义相近并倾向一起变化的元素组织起来加入同一包,这样方便理解和处理整个模型。

       设计良好的包是高内聚、低耦合的,并且对其内容的访问具有严密的控制。

二、包的名字

         每个包都必须有一个区别于其他包的名字。模型包的名字是一个字符串,可以分为简单名和路径名。

         简单名:指包仅含一个简单的名称。

         路径名:指以包位于的外围包的名字作为前缀。

                                                            UML——包图_第1张图片

三、拥有的元素

         1.包可以拥有类、接口、组件、节点、协作、用例和图,包甚至还可以包含其它包。

         2.包构成一个命名空间,这意味着一个模型包内各个同类建模元素不可以具有相同的名字,不同模型包的建模

            元素可以具有相同的名字。  

         3.如果包被撤销,其中的元素也要被撤销。

四、包的可见性

                包并不是独立存在的,包内的元素必然会和外部的类存在关系。而好的软件模型中的各个包应该做到高内

        聚、低耦合,为了做到这一点,就需要对包内的元素加以控制,使得某些元素能被外界访问,其他元素对外界不

        可见。这就是包内元素的可见性控制。

        包的可见性分为3种:

        1.公有访问(Public):包内的元素可以被任何引入此包的其他包内的元素访问。公有访问用前缀于内含元素名

                                              字的加号(+)表示。

        2.保护访问(Protect):此元素能被该模型包在继承关系上后继模式包的内含元素访问。保护访问用前缀于内含

                                               元素名字的(#)号表示。      

        3.私有访问(Private):表示此元素可以被属于用一包的内含元素访问。私有访问用前缀于内含元素名字的减号

                                             (—)表示。

五、引入与输出

         引入(Import):允许一个包中的元素可以单向访问另一个包中的元素。

         输出(Export):包中具有公有访问权限的内含元素

         UML——包图_第2张图片

       上图中,包Package2引入包Package3,那么包Package3中的公有元素C1对包Package2中的元素是可见,但是保护元素C2不是可见的,同理,B1对包Package1中的元素来讲也是可见的,但是私有元素-B2不是可见的。但是并不意味着,包Package3中的公有元素对包Package1中的元素可见。包Package4没有引入任何一个包,所以其它包中的元素对Package4中的元素来讲都不可见。

六、标准元素

                      UML——包图_第3张图片

七、包之间的关系

         包与包之间有两种关系:

         1.引入和访问依赖:用于在一个包引入另一个包输出的元素。

         2.泛化:和类的泛化关系类似,包间的泛化关系遵循替代原则,特殊包可以应用到一般包被使用的任何地方。

八、包图建模技术

        建立包图的具体做法:

        1.分析系统模型元素(通常是对象类),把概念上或语义上相近的模型元素纳入一个包。

        2.对于每一个包,对其模型元素标出其可见性。

        3.确定包与包之间的依赖关系,特别是输入依赖。

        4.确定包与包之间的泛化关系,确定包元素的多重性和重载。

        5.绘制包图

        6.包图精化

 

以图书管理系统的包图为例:

                 UML——包图_第4张图片

机房收费系统的包图:

                 UML——包图_第5张图片

你可能感兴趣的:(UML)