在设计工具中绘制统一建模语言图和在白板上描述设计之间有两个重要区别(i)通常,该工具可防止您在构建语法检查时遇到一些常见错误,并且(ii)您有更多时间查阅您的记录。
为了避免在面试和/或与下一个项目团队进行的设计会议中受辱,可能有必要在白板上培训设计。
以下是UML 2.x的基本知识。
如果您还不熟悉UML,那么OMG [ 1 ]的UML®资源页面将是一个很好的学习起点。
UML活动图–死锁错误
UML活动图中缺少有关令牌流的知识是一个非常常见的错误来源。
在图1中,描绘了一个典型的错误。
要在每个传入的连接器上执行活动,都需要一个令牌-否则将发生死锁。
在错误的示例操作中,X将永远等待。
正确是操作X之前的另一个合并节点。
图1:死锁错误示例 |
一个无辜的问题,例如“您将如何在Java中实现它?” 在UML 2活动图中显示您对令牌流的真正了解。
图2中发生了类似的令牌流问题。这里的起始节点有两个边。
这意味着不清楚将执行动作X还是Y。
在正确的版本中, 前叉节点会为两个操作拆分令牌。
图2:初始节点错误样本 |
UML类图–组成与自身的关系
在图3中,与自我的构成关系是错误的。
在UML 2中,实心菱形符号表示该关系是一个合成。
这意味着,如果删除拥有的OrderItem,则所有相关的OrderItem实例都将被销毁。
在几乎所有情况下,聚合都是正确的解决方案。
图3:成分与自我样本的关系 |
在聚合关系(未填充菱形符号)中,对象不参与组件对象的生命周期。
因此,相关的OrderItems可能比被破坏的实例寿命更长。
在Wikipedia [ 2 ]中,您找到了一个很好的示例: “例如,一所大学拥有多个系(例如化学系),每个系都有许多教授。
如果大学关闭,这些系将不再存在,但这些系中的教授将继续存在。
因此,大学可以看作是系的组成,而系则是教授的集合体。
此外,一位教授可以在一个以上的系中工作,但是一个系不能属于一个以上的大学。”
建议
在大多数行业中,实际上仅需要14个标准UML图中的一些。
我认为用例图,活动图,序列图,类图,组件图和部署图是最重要的。
对于嵌入式系统开发,可能还需要状态机图。
因此,当您开始学习UML时,请重点关注6种最重要的图类型。
参考文献
[1]UML®资源页面;
http://www.uml.org
[2] Wkipedia –对象组成;
http://en.wikipedia.org/wiki/Object_composition
翻译自: https://www.javacodegeeks.com/2012/07/common-errors-in-whiteboard-job.html