Должен ли я использовать трассировку или реализацию UML - PullRequest
4 голосов
/ 05 апреля 2019

У меня есть логическая модель данных и несколько физических моделей данных для разных систем, все они документированы в UML. Я хочу показать, как данные в физических моделях прослеживаются до логической модели, чтобы при внесении изменений в логическую модель мы могли легко определить все физические модели, на которые влияют.

Эти отношения лучше всего представлены как след или реализация? Я подозреваю, что ответ «след», но хотел посмотреть, что думают другие, прежде чем вкладывать в это слишком много времени и ошибаться. Предлагает ли отношение трассировки или реализации дополнительную семантику по сравнению с другим, что было бы полезно в этом контексте?

Ответы [ 2 ]

5 голосов
/ 05 апреля 2019

Моя интерпретация (намеренно процитированная): «Я обычно делаю их <<trace>> зависимостями. Realization находится между интерфейсом или абстрактным классом и« обычным »классом. Физическая модель получена из логической модели. , а не 1: 1. В большинстве случаев вы вносите изменения на физическом уровне, которые не предусмотрены в логической модели (ненормализация и все виды оптимизации, которые вам необходимы на уровне БД). Каким-то образом это своего рода реализация. «

Однако, и это - чистая истина, это то, что спецификация UML говорит на с. 54:

7.8.14 Реализация [Класс]

Реализация - это специализированная абстракционная связь между двумя наборами элементов модели, один из которых представляет спецификацию (поставщик), а другой - реализацию последнего (клиент). Реализация может быть использована для поэтапного уточнения модели, оптимизации, преобразования, шаблонов, синтеза модели, компоновки структуры и т. Д.

Так что вы действительно можете использовать реализацию здесь. <<trace>> более неформальный, но не обязательно неправильный.

2 голосов
/ 09 апреля 2019

Эти отношения лучше всего представить в виде трассы, то есть отношения зависимости со стереотипом <<trace>>. Трассировка предназначена для связи элементов в различных моделях, что в точности соответствует вашей ситуации.

Спецификация UML 2.5.1 определяет стереотип трассировки как часть «стандартного профиля» (раздел 22.3) следующим образом:

Определяет отношение трассировки между элементами модели или наборами модели. элементы, которые представляют одну и ту же концепцию в разных моделях. Следы есть в основном используется для отслеживания требований и изменений по моделям. Как Модельные изменения могут происходить в обоих направлениях, направленность зависимость часто можно игнорировать. Отображение определяет отношения между ними, но это редко вычисляется и обычно неформально.

Хотя спецификация UML определяет отношения реализации достаточно широко, чтобы соответствовать и вашим целям, примеры в спецификации UML (например, рисунок 7.21) и то, как я видел эти отношения в реальных проектах, приводят меня к выводу что этот тип отношений в первую очередь предназначен для использования элементов в одной и той же модели, в частности элементов интерфейса с классами, которые реализуют эти интерфейсы.

...