关键字:UML 建模工具 · 使用建模工具建模
在实际的系统中模型需要工具支持,工具提供了观察和编辑模型的交互方式。工具提供了一层超出 UML 自身作用域的组织,可以帮助用户理解并获得信息。通过搜索和过滤已经存在的资料,工具有助于在大型模型中查找信息。
· 工具问题
工具处理模型的物理组织和存储。它必须支持一个项目的若干工作组同时工作,以及支持跨越多个项目的重用。以下几点问题超出了规范的 UML 的作用域,但在运用实际工具中必须予以考虑。
* 二义性和未详尽说明的信息 在初期阶段,许多事物不能用语言表达。工具必须能够调整模型的精确性并且不能强迫每个值都要进行详细说明。可参看以下两小节。
* 表示选项 用户不想在任何时候都看到所有的信息。工具必须能够过滤和隐藏那些某一时间不需要的信息。工具还要通过显示器硬件的功能提供交替的可视化支持。这一点已经在 12.3 节讲过了。
* 模型管理 模型单元的配置控制、访问控制和版本超出了 UML 的作用域,但是它们对于软件工程过程十分重要,并且位于元模型的上层。
* 与其他工具的接口 模型需要由代码生成器、规格计算机、报表书写器、执行引擎和其他后台工具处理。其他工具所需要的信息要包含到模型中,但这不是 UML 信息。标记值适合保存这些信息。
· 工作进展过程中产生的不一致模型
建模的最终目标是生成一定细化层次的系统描述。最后的模型必须满足不同的有效性约束才有意义。但是,正如许多创造性的过程一样,结果不必以线性方式产生,中间产品不必每一步都满足所有的有效性约束。实际上,一个工具不仅要处理语义上满足有效性约束的模型,还要处理在句法上有效的模型,这些模型满足一定的构造规则但可能会违背一些有效性约束。语义上无效的模型不能直接使用。相反,它们可以看作是通向最终目标的进展中的工作。
· 空值和未详细说明的值
一个完整的模型包含了它的所有元素的所有属性值。在许多情况下空值(无值)是一种可能出现的值,一个值是否可能为空是属性类型描述的一部分。例如,空值对集合大小的上 限没有意义。有的集合有固定的大小,有的则没有固定的上限值,在这种情况下,集合的大小是无限的,所以具有空值与否实际上取决于一种数据类型的可能值的范围。
另一方面,在设计的早期,开发者也许没有注意到特殊特性的值。在特定的阶段,这个值可能没有意义,如建立领域模型时的可视性。或者,这个值有含义但建模者还未详细说明它,开发者应当记住它仍然需要细化。这种情况下,这个值是没有详尽说明的,这表示一个值最终是需要的但目前还没有被详细说明。它和空值不同,空值在最终模型里是合法值。许多情况下,特别是字符串中,空值是表示一个未被详尽说明的值的好方法,但并非全是这样。未被详细说明的值在结构完善的模型中是无意义的, UML 定义不处理没有详细说明的值。这是支持 UML 的工具的职责 , 也是处于进展中的没有语义的工作模型的一部分。