请尝试本文介绍的技巧来创建有效的 UML 序列图。本文改编自The Object Primer 2nd Edition的第 6 章。
有一些方法可以帮助您提高 UML 序列图的质量和效力。它们包括:
验证决策
在开发
保持简单
在对第 2 和第 3步建模时,我忽然意识到学生可能应该使用口令进入系统。在向 SME提出了这个概念后发觉我错了:姓名和学号组合对于我们的目的来说已经足够唯一,并且学校也不希望增加复杂的口令管理。这是个很有意思的决策,因为这是学校的一个运作策略,所以可以作为一条商业规则记载到增补规范中。通过与SME一起检验这个想法,而不是假定我比他们知道得更多,我避免了“镀金”的机会,因而减少了我们小组开发这一系统所需的工作。
绘制消息和返回值
我更喜欢从左至右地绘制消息,从右至左地绘制返回值,尽管这样对于复杂的对象/类来说不总是非常合适。我将消息上的标签和返回值对齐到离箭头最近的位置。我不喜欢在序列图上标出返回值,为的是使图尽可能地简化。不过,始终标出返回值也同样有效,特别是在序列图用于设计而不是分析目的时。(我希望我的分析图尽量简单,而设计图尽量全面。)在分析期间,我的目标是理解逻辑和确保逻辑的正确性。而在设计期间,则要赋予消息精确的细节,如
将序列图分层
我喜欢将序列图从左至右地分层。先标出参与者,然后是控制器类,然后是用户界面类,最后是商业类。在设计期间,可能需要添加系统类和持久类,我通常将它们放在序列图的最右侧。以这种方式将序列图分层往往使它们更易于阅读,并且更容易找出分层逻辑问题,例如用户界面类直接访问持久类(在今后的建模技巧中将对此做更多介绍)。
遵循一致的逻辑风格
请注意,在
牢记序列图是动态的
您可能听说过诸如 动态建模和 静态建模这样的术语,其他一些熟悉面向对象建模技术的开发人员常常会提到它们。您甚至可能听到过有关每种风格的优点的争论。
动态建模技术主要集中在标识系统中的行为,包括序列图的绘制和活动图的绘制(请参阅
因此实际上没有什么好争论的 --要想恰如其分地说明面向对象系统,同时需要动态和静态建模技术。
Scott W. Ambler 是 Ronin International 的总裁,该公司是一家专门提供面向对象软件过程指导、体系结构建模和 Enterprise JavaBean (EJB) 开发的咨询企业。他创作或者与其他人合著了几本有关面向对象开发的书籍,包括最近出版的 Object Primer 2nd Edition,该书详细介绍了本文所概述的主题。可以通过 scott.ambler@ronin-intl.com 与他联系,他的网站位于 www.ambysoft.com。 |
联系客服