UML 图简介
为了表示软件系统的不同视角,使用了主要完全基于 UML (统一建模语言)的不同 UML 图。每个观点都侧重于某些特定方面,而忽略其余方面。有些人还可能会问,为什么要从不同的角度构建多个模型——为什么不只构建一个涵盖所有角度的模型呢?问题的答案是:如果制作一个模型来捕捉所有需要的视角,那么它将与原始问题一样复杂,并且几乎没有用处。一旦从所有需要的角度对系统进行了建模,就可以对构建的模型进行细化以获得系统的实际实现。它将整个软件系统分为组件和子组件。
借助 UML 图可以捕捉到的众多观点如下:
- 用户的看法
- 结构视图
- 行为观
- 实施视图
- 环境观
这些解释如下。
- 用户观点:
用户视图定义了设备的许多功能,这是对其用户所拥有的。该视图根据系统向其用户提供的功能捕获系统视图。这个视图就像一个黑盒子,系统的各种细节,如内部结构、实现等,对用户都是隐藏的。它视图被称为中心视图,因为所有其他视图都必须符合该视图。确实值得注意的是,即使是面向对象的开发,我们也需要一个函数式视图。那是因为,毕竟,用户认为系统提供了一组功能。 - 结构视图:
从名称结构视图来看,该视图定义了问题的结构。问题的结构可以基于对象或类来定义,这对于理解系统的工作及其实现非常重要。此视图还用于捕获对象或类之间的关系。这种观点被称为静态模型,其背后的原因是系统的结构不会随着时间而改变。 - 行为观:
该视图定义了对象如何相互交互,只是为了实现系统行为。因此它构成被称为系统的动态模型,其背后的原因是它捕获了系统的时间相关(动态)行为。 - 实施视图:
此视图捕获系统的各种重要组件及其相互依赖关系。例如,实现视图可能会将GUI部分、中间件和数据库部分显示为不同的部分,并且还会捕获它们之间的相互依赖关系。 - 环境观:
此视图描述了硬件特定部分上众多添加剂的实现。对于一个平滑的系统,用例模型、类图和交互图之一也可能就足够了。对于对象经历许多状态变化的系统,状态图也可能是必要的。对于在大量硬件组件上实现的系统,部署图也可能是必要的。因此,要构建的模型类型取决于手头的问题。