在软件工程中,我们使用三种模型从不同的视角来描述系统:描述系统内部对象及其关系的类模型,描述对象生命历史的状态模型,以及描述对象之间交互行为的交互模型。每种模型都会在开发的所有阶段中得到应用,并随着开发过程的进行获得更多细节。对系统的完整描述需要所有这三种视角的模型。

类模型(class model)描述了系统内部对象及其关系的静态结构。类模型界定了软件开发的上下文——论域(universe of discourse)。类模型包含类图。类图(class diagram)的结点是类,弧表示类间的关系。

状态模型(state model)描述了对象随着时间发生变化的那些方面。状态模型使用状态图确定并实现控制。状态图(state diagram)的结点是状态,弧是由事件引发的状态间的转移。

交互模型(interaction model)描述系统中的对象如何协作以完成更为宽泛的任务。交互模型自用例开始,用例随后会有顺序图和活动图详细描述。用例(use case)关注系统的功能,即系统为用户做了哪些事情。顺序图(sequence diagram)现实交互的对象以及发生交互的时间顺序。活动图(activity diagram)描述重要的处理步骤。

这三个模型描述了一套完整的系统的相互独立的部分,但它们又是交叉相连的。类模型是最基本的,因为在描述何时以及如何发生变化之前,要先描述是哪些内容正在发生变化或转化。