在我的应用程序中,我有一个Document类和一个DocumentFact类。 DocumentFact类包含将从数据库中获取多个Documents的方法。这些文档存储在数据表或数据集中。两者(datatable,dataset)都是documentfact类的私有成员。可以通过酒店访问它们。
现在我的问题是:在序列图中,是否允许调用这样的属性:
Actor Web interface DocumentFact Database
| | | |
|input | | |
|-------> | GetDocuments | |
| |---------------->| |
| | | ExecuteSelectQuery() |
| | | -------------------->|
| | | |
| | | Bool |
| | | <--------------------|
| | | |
| | | GetDataSet() |
| | | -------------------->|
| | | |
| | | DataSet |
| | |<---------------------|
| | | |
GetDataSet是一个属性。它是否正确?如果不是,那么这样做的正确方法是什么?
注意:这只是我的序列图的一部分,其余部分不相关。
答案 0 :(得分:5)
要记住的一件重要事情是,UML不是正式的符号,所以你可以做任何你认为有意义的事情。如果某些事情不明确(或者您必须过多地考虑如何表示它),您应该添加一个注释。
我发现在序列图中非常有帮助的一件事就是对消息(或消息组)进行编号,并有一个正在运行的对话框(格式化为编号列表),解释正在发生的事情(......以及为什么你这样做)这样做)。你必须记住,图表并不是独立的,而是应该集成到更大的文档中,因此,如何具体表示一个属性并不是什么大不了的事。只需选择一个表示并解释GetDataSet是Database(或其他:)的属性。
答案 1 :(得分:1)
在记录我的设计时遇到了类似的问题。我刚刚在方法调用下添加了文本'property'(在箭头下)。 (我没有找到'正确'的UML方式。)虽然这不是标准的UML,据我所知,这确实得到了重点。当然,这对你来说可能效果不错,在这种情况下,使用标准UML会更好。
答案 2 :(得分:0)
您可以使用构造型显示该属性。例如,如果DataSet
是属性,并且您正在调用getter,请使用<<get>>
构造型。所以它看起来像
DataSet <<get>>
--------------------->
我不确定它是否符合UML规范。但这符合Scott Ambler在他出色的The Elements of UML 2.0 Style中提出的建议。
他还建议在名字后面保留刻板印象。