Могу ли я нарисовать несколько специализаций для класса в диаграмме классов UML? - PullRequest
0 голосов
/ 27 января 2019

Я ищу чертеж UMLclass для базы данных, которую я буду реализовывать в oracle.
В этой базе данных у меня есть класс, который может быть специализирован более чем одним способом.В качестве примера: существует класс Publication, который может специализироваться на книгах и журналах, в свою очередь это могут быть цифровые или печатные копии.
Как правильно представить его, учитывая, что моя вторая специализация имеет примерно одиннадцатьребенок?

Я думаю об этом решении: solution Считаете ли вы, что это правильно?Публикация может быть специализированной как цифровая книга одновременно?Есть ли совпадение этих двух специализаций?

Ответы [ 2 ]

0 голосов
/ 12 февраля 2019

Ваше решение в порядке.Возможно, вам следует переименовать некоторые классы, например, Digital Publication, потому что кто-то может подумать, что Digital не является специальным Publication.

Чтобы сделать его еще лучше, вы должны рассмотреть возможность использования Generalization Sets.В настоящее время все четыре обобщения являются одним набором по умолчанию, хотя они показаны с двумя деревьями.Этот набор по умолчанию перекрывается и не является полным.Это означает, что экземпляр Publication может быть экземпляром всех четырех специализаций одновременно или быть чем-то совершенно другим.Я думаю, что для вашей цели потребуются два Generalization Sets:

  • PublicationKind с Book и Magazine
  • PublicationMeans с Digital Publication и Hard Publication

Оба будут отмечены свойствами {disjoint, complete}.

Многократное обобщение имеет свои преимущества.Просто используйте это с умом.

0 голосов
/ 27 января 2019

первая версия вопроса

Конечно, класс может наследоваться (обобщаться) несколькими.

Издание может быть цифровой книгой?

На вашей диаграмме ничего не сказано об этом, потому что:

  • Book ---|> Publication означает, что книга - это публикация, а не публикация - это книга

  • Digital ---|> Publication означает, что Цифровой является Публикацией, а не Публикация является Цифровым

Способ сделать что-то ближе к "Публикации - это цифровая книга" - это изменить направление наследования:

enter image description here

при этом Публикация - это Книга и Цифровая, но не совсем Цифровая Книга , потому что Цифра и Книга - это два разных класса

вторая версия вопроса

Издание может быть одновременно специализировано как цифровая книга?

Если в то же время означает для того же экземпляра ответ - нет, потому что на вашей диаграмме книга не может быть также цифровой, поэтому экземпляр не может быть одновременно экземпляром Книга и экземпляр Digital

...