有两个类:问题和答案。问题实例包含一个答案列表,每个答案都指向一个后续问题。因此,每个选择的答案都会触发一个相关的下一个问题,直到选择了没有后续问题的答案。
UML图应该是什么样子,才能最好地描述这样的调查问卷流程:
Q1: "Are you hungry?" [Yes, No]
Yes->Q2: "What do you want to eat?" [Apple, Pear, Banana]
Apple->Q4: "Green or red?" [Green, Red]
Pear ->Q5: "Big or small?" [Big, Small]
No ->Q3: "Are you thirsty?" [Yes, No]
Yes->Q6: "What would you like to drink?" [Tea, Coffee, Water, Vodka]
Tea ->Q7: "Any sugar?" [1 spoon, 2 spoons, 3 spoons]
Vodka->Q8: "Are you old enough for it?" [Yes, No] 类图将描述类之间的关系,而不是问题-回答流。
对象图会包含太多关于对象之间的关系和对象内部结构的信息,这将使我们很难读取我们感兴趣的问题/回答流。
如果问题是对或错,活动图可以很好地工作,那么决策菱形图标可以用于对和错的流程。但是,如果一个问题有7个可能的答案,这就不起作用了。
因此,我的问题是找到一种能够以最基本、最清晰的方式描述这样的流程的图表类型。
发布于 2015-04-01 12:12:24
不同的图表用于不同的事情,并提供不同的细节模型。如果您想在模型中显示类之间的关系,那么使用两个关联的类图
Question 1 <-- answers --> 1..* Answer
Answer 1 <-- follow-up --> 0..1 Question将会很好(我故意不说任何关于类的内容,因为我不想建议实现)。在一些工具中,例如Enterprise Architect,您可以使用此图来生成源代码。基于你的问题,我想这就是你想要的。
另一方面,如果你想显示控制流,那么你应该使用behaviour diagrams中的一个。序列图或通信图显示了模型的对象如何相互交互(使用哪些方法)来实现特定的用例。如果您在模型中使用状态,那么您可以在状态机图表上显示它。
发布于 2015-04-02 17:35:47
您似乎对描述/建模“过程流”的两种可能性感到困惑:
您可以使用对象/实例级模型来描述示例或设计内容。
但对于设计软件应用程序,您需要在类型级别进行建模。但是你的问题的流程模式是如此简单,你不需要任何行为模型,真的。从类图(如Marek Adamek的答案中所描绘的)完全可以理解,在类图中,流程从一个问题循环到它可能的答案之一,然后循环到这个答案的后续问题(然后到下一个迭代)。
https://stackoverflow.com/questions/29382468
复制相似问题