假设您正在查看 6 种基本类型的 UML 图(来自此 UML 2.0 样式的元素)
- 类图
- 用例图
- 状态机图
- 活动图
- 序列图
- 物理图
假装你疯了,你想为你的系统画出所有 6 个图表。
你会从哪个开始?那你会去哪个?如果您非常清楚您希望系统做什么,那么访问每个图表的最佳顺序是什么?
我认为您应该从物理图开始,然后按自己的方式制作类图。自上而下,我总是说..?我错了吗?
用例是定义系统“做什么”的主要用例,可能紧随其后的是状态机和活动图(无论哪种方式都可以看到——通常活动图更多的是关于“什么”,而状态机更多的是关于“如何”,但我已经看到了每个的反例);类和序列图,甚至更多的组件和部署图(统称为“物理”),越来越多地涉及您的系统如何完成它的工作。我肯定会从“什么”转向“如何”,因为相反的顺序没有什么意义——如果你没有定义“什么”,“如何”怎么可能有意义?
所以,粗略地总结一下:用例、活动、状态机、类、序列、组件、部署。这个顺序是有意义的,因为它在实现方面和分析方面变得更深入,因此,例如,有兴趣准确了解您将迎合哪些用例以及您将应用哪些业务规则(活动图)的人可能会停止“阅读” “比需要了解您的部署策略的完整详细逻辑的人更早。
类图、序列图和用例图代表了项目中通常创建的图的 90% 以上。类图本身有时比所有其他图代表更多的图。
最好的解决方案是保持简单,并使建模适应团队的水平。
如果没有 UML 经验,那么只需创建类图来表示您的应用程序的框架。
如果是初学者,那么从用例、序列和类图开始。
如果是中等级别,则使用所有图表,因为每个图表都覆盖另一个视图,这并不总是可以用 Java 编码。我的意思是java只与类和序列图有关。
物理图可能是一个很好的起点。我发现活动图对于解决设计中的问题非常有帮助,并且出于同样的原因,序列也很有用。我很少为状态机图而烦恼。
我认为实际上你会想要重新审视你首先做的任何设计(迭代设计,哇!)所以它可能值得从任何能给你的项目带来最清晰的东西开始。
UML 图是对设计的各种模型的描述。我不确定它们是否可以按照您描述的方式进行干净的序列化。类图经常用于流程的分析和设计阶段。类似地,其他图表用于多个阶段。
这取决于您在任何时间点对设计的哪个方面感兴趣,您使用适当的图表来“查看”设计模型。
我已经看到了“从类图开始”和“从用例模型开始”的提议。我开始意识到这真的无关紧要。
我认为您想从使用多个图表的系统的高级行为开始,然后逐渐使用同一组图表进行更详细的设计。