Свойство вызова диаграммы последовательности UML
-
22-08-2019 - |
Вопрос
В моем приложении у меня есть класс Document и класс DocumentFact.Класс DocumentFact содержит методы, которые будут получать несколько документов из базы данных.Эти документы хранятся в datatable или наборе данных.Оба (datatable, dataset) являются закрытыми членами класса documentfact.К ним можно получить доступ через свойства.
Теперь мой вопрос заключается в следующем:на диаграмме последовательности разрешено ли вызывать такое свойство, как это:
Actor Web interface DocumentFact Database
| | | |
|input | | |
|-------> | GetDocuments | |
| |---------------->| |
| | | ExecuteSelectQuery() |
| | | -------------------->|
| | | |
| | | Bool |
| | | <--------------------|
| | | |
| | | GetDataSet() |
| | | -------------------->|
| | | |
| | | DataSet |
| | |<---------------------|
| | | |
Где GetDataSet - это свойство.Правильно ли это?И если это не так, то каков правильный способ сделать это?
Примечание: Это всего лишь часть моей диаграммы последовательности, остальное не имеет отношения к делу.
Решение
Одна важная вещь, которую следует помнить, - это то, что UML не является формальной нотацией, поэтому вы можете делать все, что считаете нужным.Если что-то непонятно (или вам приходится слишком много думать о том, как это представить), вам, вероятно, следует добавить примечание.
Одной из вещей, которые я нашел очень полезными в диаграммах последовательности, было пронумеровать сообщения (или группы сообщений) и запустить диалоговое окно (отформатированное в виде нумерованного списка), объясняющее, что происходит (...и почему вы делаете это именно так).Вы должны помнить, что диаграмма не стоит сама по себе, а должна быть интегрирована в больший объем документации, таким образом, то, как конкретно представлять свойство, на самом деле не имеет большого значения.Просто выберите представление и объясните, что GetDataSet - это свойство Database (или что-то еще :).
Другие советы
Я столкнулся с аналогичной проблемой при документировании своего дизайна.Я только что добавил текст "property" под вызовом метода (Под стрелкой).(Я не нашел "правильного" UML-способа сделать это.) Хотя это не стандартный UML, насколько я знаю, это действительно донесло суть.Конечно, у вас это может плохо получиться, и в этом случае вам будет лучше использовать стандартный UML.
Вы можете показать свойство с помощью stereotype.Например, если DataSet
является свойством, и вы вызываете средство получения, используете <<get>>
стереотип.Так что это выглядело бы как
DataSet <<get>>
--------------------->
Я не уверен, есть ли это в спецификации UML.Но это в соответствии с предложением Скотта Эмблера в его превосходном Элементы стиля UML 2.0.
Он также рекомендует сохранить стереотипы после названия.