Путаница в том, как работают атрибуты в диаграммах классов UML
Я прошел курс "Объектно-ориентированная система и дизайн" в Стокгольмском университете. Мне пришлось сдать дополнительное задание, в котором я должен был создать диаграмму классов UML, отражающую веб-сайт, на котором продавались автомобили (это не тема, в которой я прошу вас сделать мою домашнюю работу). Вот что я сдал:
Учитель сказал, что "это не то, как вы используете атрибуты" и, похоже, неохотно объясняет, что я должен был сделать по-другому. Это все по-шведски, но я думаю, что основные моменты ясны независимо от языка.
Мой вопрос: как это должно быть смоделировано по-другому? У меня есть агрегация для некоторых объектов, перечисления, потому что у веб-сайта было ограниченное количество атрибутов для некоторых классов.
Любая помощь с благодарностью.
С уважением,
Хьюго
2 ответа
Я вижу некоторые проблемы на вашей диаграмме:
- Я считаю, что у вас есть некоторые перечисления в вашей диаграмме, которые не определены должным образом. Перечисление должно выглядеть следующим образом.
- Вы определяете атрибуты в дополнение к агрегации (например,
Bil
имеет отношение агрегации к этомуSäkerhetsTilägg
и дополнительно определяет атрибутsäkerhet
, Вы должны использовать отношение или атрибут, см. Здесь. - В то время как мы находимся в этом, множественность несколько запутывает. Вы говорите, что
Bil
может иметь любое количествоSäkerhetsTilägg
в то время как атрибутsäkerhet
держит ровно однуSäkerhetsTilägg
, - Afaik, вы должны определить видимость атрибутов и методов (например,
+
,-
так далее).
Мне кажется, что ваши Перечисления смоделированы как Классы. Несмотря на то, что визуально Enumeration выглядит как класс со стереотипом <>, это на самом деле совсем другое дело, и в нем есть EnumerationLiterals, когда атрибуты были бы для класса.
В ArgoUML вы можете создать Перечисление, используя четвертую кнопку справа на панели инструментов. Это раскрывающееся меню, в котором по умолчанию создается новый тип данных, но если вы потянете его вниз и выберите зеленый прямоугольник, он создаст перечисление. Сначала создайте свои перечисления, и они будут доступны для выбора в качестве типа ваших атрибутов.
Конечный результат должен выглядеть так: