UML2面向对象分析与设计(第2版)
上QQ阅读APP看书,第一时间看更新

2.1 可视化建模基础

可视化建模技术是随着软件工程的发展而被日益重视起来的,并已经成为开发优秀软件的必备条件。其目的是将要构造的软件系统的结构和行为表示出来,并进行合理的控制,从而为更好地理解和开发系统提供保障。

模型是对现实世界的简化。一个好的模型包含了人们需要关注的主要元素,而忽略那些不相关的次要特征。例如,一架飞机是由成千上万个部件组成的,我们很难一次性完整地描述这样的一个实物,为此设计师需要通过不同的视图(如主视图、俯视图、侧视图、仰视图等)表示该飞机不同的方面。而这些视图就是对飞机这个现实世界实物的简化,就是模型。

在软件世界中,模型就是对目标系统进行简化,提供系统的蓝图。模型可以仅列出系统高层的组织结构,也可能包含各个组成部分的细节信息。每个系统都可以从不同的方面分析构建不同的模型,可能是静态的结构,也可能包含动态的信息。

2.1.1 建模的目的

建模的根本目的是能够更好地理解待开发的系统。当我们不能够完整地理解一个复杂的系统时,就需要对其进行建模。开发人员通过建模,可以把一个复杂系统划分成一系列易于理解的小的组成部分,分而治之。通过建模,可以达到以下4个目的。

(1)模型有助于按照所需的样式可视化(Visualize)系统。模型可以为开发团队提供待开发系统的可视化表示,从而使团队成员对系统有统一的理解。

(2)模型能够描述(Specify)系统的结构和行为。模型允许用户在构造系统前准确地描述其结构和行为。

(3)模型提供构造(Construct)系统的模板。模型为开发人员提供了开发实现的依据,开发人员可以根据模型(而不是原始的需求)构造目标系统。

(4)模型可以文档化(Document)设计决策。开发人员通过模型,可以将开发过程中的设计决策记录成文档,并长期保存,便于以后参考和使用。

建模并不只是针对大型系统,甚至像“计算器”这样一个很简单的软件也能从建模中受益。然而,可以明确的一点是,系统规模越大,模型的重要性级别就越高。例如,当构造一架大型客机时,必须要事先构造各种不同的模型;而当叠一架纸飞机时,显然就没有必要花太多的精力去提前构造模型了。

2.1.2 建模的基本原则

模型的应用拥有着悠久的历史,丰富的历史经验形成了建模的基本原则。在建模过程中,只有遵循这些原则,才可能得到所需的模型。

(1)选择合适的模型。所要创建的模型将对解决方案的形成具有重要的影响,正确的模型可以清楚地表明最棘手的开发问题,提供不能轻易地从别处获得的洞察力;而错误的模型可能使人误入歧途,把精力花在不相关的问题上。

(2)模型具有不同的精确程度。面向不同的用户,开发人员需要提供不同抽象层次的模型。有时一个简洁且可执行的用户界面模型正是用户所需要的,而有时则需要耐心地描述每一个细节。

(3)好的模型是与现实相联系的。模型是对现实的简化,但最关键的是简化不能掩盖掉任何重要的细节。

(4)需要从多个视角创建不同的模型,单一的模型是不够的。为了更好地解读系统,我们经常需要添加几个互补/连锁的视图,例如用例视图,揭示系统需求;逻辑视图,揭示软件内部设计逻辑。这些视图从整体上描绘了软件开发蓝图。