UML 建模、设计与分析:从新手到高手
上QQ阅读APP看书,第一时间看更新

5.3 对象图和包图建模

虽然用户已经了解了对象图和包图的基础知识,但在建模时还需要遵循一定的策略,才可以设计出完美的建模模型。

5.3.1 使用对象图建模

对系统的静态结构建模可以绘制类图,以描述抽象的语义以及它们之间的具体关系。但是,一个类可能包含多个实例,对于若干个相互联系的类来说,它们各自的对象之间进行交互的具体情况可能多种多样。类图并不能完整地描述系统的对象结构,为了考查在某一时刻正在发生作用的对象以及这组对象之间的关系,需要使用对象图描述系统的对象结构。

在构造对象图或使用对象图建模时,可以遵循如下策略。

□ 识别准备使用的建模机制。建模机制描述了为其建模的系统的部分功能和行为,它们是由类、接口和其他元素之间的交互产生的。

□ 针对所使用的建模机制,识别参与协作的类、接口和其他元素以及它们之间的关系。

□ 考虑贯穿所用机制的脚本。冻结某一时刻的脚本,并且汇报参与所用机制的对象。

□ 根据需要显示每个对象的状态和属性值。

□ 显示对象之间的链。

5.3.2 使用包图建模

到目前为止,用户已经了解了包和包图相关的知识,而当系统非常复杂时,采用包图建模技术非常有效。包图建模的一般步骤如下。

(1)分析系统模型元素,把概念或语义上相近的模型元素归纳到一个包中。

(2)对于每一个包,标识模型元素的可见性。

(3)确定包与包之间的泛化关系,确定包元素的多态性与重载。

(4)绘制包图。

(5)进一步完善包图。

本节以图书管理系统为例,使用包图创建一个简单的模型。

图书管理系统的类图构建完成后,可以根据该系统类图中类与类之间的逻辑关系将图书管理系统中的类划分为3个包:UserInterface包、Library包和DataBase包。其中,UserInterface包用于描述用户界面的相关类;Library包描述业务逻辑处理相关的Book类、Title类、Loan类和Borrower类等;DataBase包包含了与数据库有关的类,如Persistent类。该系统的包图如下图所示。

从上图中可以看出,UserInterface包依赖于Library包和DataBase包,而Library包则依赖于DataBase包。