Путаница в том, как работают атрибуты в диаграммах классов UML - PullRequest
1 голос
/ 02 февраля 2012

Я прошел курс «Объектно-ориентированные системы и дизайн» в Стокгольмском университете. Мне пришлось сдать дополнительное задание, в котором я должен был создать диаграмму классов UML, отражающую веб-сайт, на котором продавались автомобили (это не тема, в которой я прошу вас сделать мою домашнюю работу). Вот что я сдал:

Description

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

Мой вопрос: как это должно быть смоделировано по-другому? У меня есть агрегация для некоторых объектов, перечисления, потому что у веб-сайта было ограниченное количество атрибутов для некоторых классов.

Любая помощь очень ценится.

С уважением,

Hugo

Ответы [ 2 ]

1 голос
/ 02 февраля 2012

Я вижу некоторые проблемы на вашей диаграмме:

  • Я полагаю, у вас есть некоторые перечисления в вашей диаграмме, которые не определены должным образом. Перечисление должно выглядеть следующим образом: this .
  • Вы определяете атрибуты в дополнение к агрегации (например, Bil имеет отношение агрегации к этому SäkerhetsTilägg и дополнительно определяет атрибут säkerhet. Вы должны использовать отношение или атрибут, см. здесь .
  • Пока мы находимся в этом, множественность несколько запутывает. Вы говорите, что Bil может иметь любое число SäkerhetsTilägg, а атрибут säkerhet содержит ровно один SäkerhetsTilägg.
  • Afaik, у вас есть для определения видимости атрибутов и методов (например, +, - и т. Д.).
0 голосов
/ 02 февраля 2012

Мне кажется, что ваши Перечисления смоделированы как Классы. Несмотря на то, что визуально Enumeration выглядит как класс со стереотипом <>, это на самом деле совсем другая вещь, и в нем есть EnumerationLiterals, когда атрибуты будут для класса.

В ArgoUML вы можете создать Перечисление, используя четвертую кнопку справа на панели инструментов. Это раскрывающееся меню, в котором по умолчанию создается новый тип данных, но если вы потянете его вниз и выберите зеленый прямоугольник, он создаст перечисление. Сначала создайте свои перечисления, и они будут доступны для выбора в качестве типа ваших атрибутов.

Окончательный результат должен выглядеть следующим образом: ArgoUML enumeration homework

...