нарисовать диаграмму классов UML с помощью классов обслуживания - PullRequest
0 голосов
/ 10 мая 2018

это небольшой сценарий большой системы. я хочу смоделировать этот сценарий в диаграмме классов, а затем реализовать его в коде

это сценарий в книжном магазине. Там покупатель и книги клиент может покупать книги, искать книги по имени и читать книги

диаграмма классов реализована следующими способами

1.Введите все операции в класс клиента, потому что клиент - это тот, кто выполняет эти действия. но buyBooks(),searchBook(),readBooks() методы не несут ответственности за изменение состояния класса клиента (эти методы не работают с данными внутри класса клиента), поскольку они нарушают базовую инкапсуляцию принципа oop.

клиент может покупать, искать, читать 1 или более книг, поэтому ассоциации помечены, как показано на рисунке.

Я нашел множество диаграмм классов, нарисованных таким образом при обращении к ИНТЕРНЕТУ

enter image description here

2. переведите все операции в класс клиентов так же, как указано выше. и пометьте каждую ассоциацию отдельно, тремя отдельными строками

ассоциации

  • клиент может купить одну или несколько книг
  • клиент может искать одну или несколько книг
  • клиент может прочитать одну или несколько книг

enter image description here

3. здесь все операции относятся к классу обслуживания, поскольку эти методы не отвечают за изменение состояния ни клиента, ни класса книги

и затем пометить ассоциацию.

enter image description here - среди тезисов, какая из них является правильной диаграммой классов? - допустимо ли рисовать классы обслуживания в диаграммах классов uml?

1 Ответ

0 голосов
/ 10 мая 2018

На мой взгляд, может работать либо первая, либо последняя диаграмма (однажды исправленная), но я склоняюсь к первой реализации. Второй просто не прав.

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

Теперь ваш синтаксис диаграммы классов отключен. Стрелки должны быть открытыми (например, >), а не сплошными. Кроме того, ваше значение множественности в классе Book кажется неправильным: экземпляр книги, вероятно, будет иметь нулевых покупателей, связанных с ним, если он еще не был куплен, и одного покупателя, связанного с ним, если он имеет. Если это так, ваше значение кратности на конце книги должно быть 0..1.

Наконец, ваша вторая диаграмма неверна, потому что ассоциации по классам, а не по операциям; Вы не ставите связь для каждой операции, а по одной на класс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...