Подтвердить что ты не робот

Как добавить конечную переменную в диаграмму классов

Я разрабатываю диаграмму классов для игры scrabble. В одном из классов я объявляю окончательную переменную. Может ли кто-нибудь сказать мне, как я могу указать переменную как final в диаграмме классов UML?

4b9b3361

Ответ 1

Постоянные (т.е. окончательные) поля указываются с помощью соглашения об именах: константы должны быть в ALL_CAPS

Источник

Ответ 2

Существуют разные понятия финала, которые представлены разными способами:

окончательное определение, то есть оно не может быть переопределено в подклассах - это соответствует свойству isLeaf атрибута:

isLeaf: Boolean - Указывает, можно ли еще переопределить переопределяемый элемент. Если значение истинно, тогда невозможно еще раз переопределите RedefinableElement. (UML Superstructure, стр. 132)

Нет официальной записи атрибутов с isLeaf = true, но добавление "{leaf}" является общим.

окончательное значение, т.е. его значение не может быть изменено - это соответствует свойству isReadOnly атрибута:

isReadOnly: Boolean - Если true, атрибут может быть прочитан и не написан. Значение по умолчанию неверно. (UML Superstructure, стр. 125)

Обозначение атрибутов только для чтения состоит из добавления "{readOnly}" к строке атрибута.

константа обычно относится к неотменяемому атрибуту самого класса, а не к экземпляру (статический конечный атрибут). В UML он имеет оба свойства, упомянутые выше, и дополнительно статические, что соответствует свойству isStatic:

isStatic: Boolean. Указывает, относится ли эта особенность к отдельным экземплярам, ​​классифицированным классификатором (false) или классификатору себя (правда). Значение по умолчанию - false. (UML Superstructure, стр. 69)

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

Итак, чтобы подвести итог, постоянный атрибут FOO типа String со значением "x" будет выглядеть так и подчеркнуть дополнительно (что здесь не поддерживается):

+ FOO: String = "x" {readOnly, leaf}

Ответ 3

Объявление окончательного значения переменной/атрибута является детальностью реализации. Поэтому вам не нужно указывать его в вашей диаграмме CLASS, но вы можете следовать соглашению, как предложено eboix.

Спецификация UML ничего не говорит об этом конкретно; поэтому вы можете следовать соглашению о его показе в ALL CAPS.