关键字:UML 为了成功使用UML,在使用的过程中必须流程化。因此本文介绍了实施UML时的九项注意点,通过这些使UML符号更好的满足不同项目的需求。
1997年的最后一个季度,我在教一些来自不同项目的开发者使用UML作面向对象分析与实际。这些项目涉及许多应用领域包括零售货架空间管理,临床药物实验,移动电话等。开发语言包括Visual Basic, C++, Java, DB2还有其他。通过我们公司的用例驱动统一对象建模过程(是建立在Booch, Jacobson, and Rumbaugh方法的基础之上的)来从几个方面介绍UML符号如何更好得满足不同项目的需求。为如何使用UML提供了实际的指导。
UML的符号比较多(可能太多)而且足够灵活能适应大范围项目的需求。为了成功使用UML,在使用的过程中必须流程化。不同的项目需要不同的内容。项目中使用UML符号的哪些具体元素取决于项目的本质(使用关系数据库客户端/服务器端或实时嵌入式)及要使用的开发语言。使用JAVA或Smalltalk时一些详细的C++设计组件将不会被使用;如果使用VB,你可能想避免使用更多的泛化和继承。有时,纯粹的建模组件可能太庞大了,尤其对那些刚开始接触面向对象分析和设计的学生来说。但是,好消息是几乎任何事情都可以使用UML来建模来实现。有很多建模组件可供使用。
You Still Need a Process过程仍然需要
UML本身仅仅是一种符号,为了创建有效的模型,仍然需要一个建模过程。使用UML有很多种建模方法;建模语言本身并不描述过程。在UML产生的几年前,我们一直把作了微小变化的Objectory过程(从Ivar Jacobson的 《面向对象软件工程:一个用例驱动方法》而来,Addison-Wesley, 1992)作为Booch/Rumbaugh/Jacobson的综合来授课,并取得了成功。我们的方法将重点放在了区分更高层次的静态模型(域模型),同时也产生用例。然后我们精炼出静态模型,在开发用例和动态模型时反复精练。
或者你更倾向于使用Objectory,对象模型方法,我们的ICONIX统一对象模型过程,或其他一些方法。在从事建模工作之前,理解UML不是一个过程是重要的。让项目组处于同一个开发阶段尤其重要。让项目组对UML有统一的理解使建模成功的保证。UML的规模(文档符号的庞大相对于过程而言)很容易陷入“分析麻痹”。关注项目组通过UML符号对过程的统一理解,能让建模更容易。
Legacy Methods Are Important 过去的方法依然重要
我的大部分学生会问我理解Booch, Jacobson, and Rumbaugh过去的方法是否仍然很重要。我的答案是非常重要。就像知道电流设计并没有排除知道电路理论一样,虽然UML符号而不排除理解对象建模理论的必要性。自从UML代表了Jacobson, Booch, and Rumbaugh三人方法的综合,但早期的方法是信息的来源。
Keep It Simple保持简单
让一个项目组有效的使用UML是有难度的。项目组成员对于面向对象分析和设计以及UML的理解层次各自不同。开始之前统一培训是不错的方法,培训需要认真考虑项目组每个成员的背景及项目的特殊要求。最重要的决定在于课程表的明智选择和指导老师在工作期间的调整。
在学习UML中需要记住的一点是我们并不需要使用每一个存在的组件。让过程尽量简单化。流程化一个项目的文档和建模方法对项目的进行有非凡的作用。