尽管迄今为止人们似乎更强调实现层类图 ,但这三个层次都可应用于UML,而且实际上另外两个层次的类图更有用。 下面介绍细化概念。细化是UML中的术语,表示对事物更详细一层的描述。
两个元素 A、B描述同一件事物,它们的区别是抽象层次不同,若元素B是在元素A的基础上的更详细 的描述,则称元素B细化了元素A,或称元素A细化成元素B。细化的图形表示为由元素B指向 元素A的、一头为空心三角的虚线(千万不要把方向颠倒了!)。细化主要用于模型之间的 合作,表示开发各阶段不同层次抽象模型的相关性,常用于跟踪模型的演变。
(7) 约束 在UML中,可以用约束(Constraint)表示规则。约束是放在括号"{ }"中的一个表达式 ,表示一个永真的逻辑陈述。在程序设计语言中,约束可以由断言(Assertion)来实现。
(8) 对象图、对象和链 UML中对象图与类图具有相同的表示形式。对象图可以看作是类图的一个实例。对象 是类的实例;对象之间的链(Link)是类之间的关联的实例。对象与类的图形表示相似,均 为划分成两个格子的长方形(下面的格子可省略)。上面的格子是对象名,对象名下有下划 线;下面的格子记录属性值。链的图形表示与关联相似。对象图常用于表示复杂的类图的 一个实例。
(9) 包 一个最古老的软件方法问题是:怎样将大系统拆分成小系统。解决这个问题的一个思 路是将许多类集合成一个更高层次的单位,形成一个高内聚、低耦合的类的集合。这个思 路被松散地应用到许多对象技术中。UML中这种分组机制叫包(Package)(见图5)。
不仅是类,任何模型元素都运用包的机制。如果没有任何启发性原则来指导类的分组 ,分组方法就是任意的。
在UML中,最有用的和强调最多的启发性原则就是依赖。包图主要 显示类的包以及这些包之间的依赖关系。有时还显示包和包之间的继承关系和组成关系 。
包的内容 在图5中,"系统内部"包由"保险单"包和"客户"包组成。这里称"保险单" 包和"客户"包为"系统内部"包的内容。当不需要显示包的内容时,包的名字放入主方框内 ,否则包的名字放入左上角的小方框中,而将内容放入主方框内。包的内容可以是类的列 表,也可以是另一个包图,还可以是一个类图。
包的依赖和继承 图5中"保险单填写界面"包依赖于"保险单"包;整个"系统内部"包 依赖于"数据库界面"包。
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/