Диаграмма классов StarUML: добавить атрибут типа Guid [] - PullRequest
4 голосов
/ 31 октября 2011

В StarUML 5.0 я пытаюсь определить класс с атрибутом типа Guid [] (массив структуры Guid). Но нельзя вводить «-guids: Guid []», так как StarUML автоматически отбрасывает квадратные скобки.

Я не пробовал другие инструменты моделирования ... просто хочу знать, как это сделать с помощью StarUML.

Кажется, что StarUML принимает, если я предоставляю длину массива, например "-guids: Guid [10], но в коде, сгенерированном StarUML, это поле выглядит как

private Guid guids; //the square brackets are missing;

Или я могу добавить звездочку, например "-guids: Guid *", в сгенерированном коде поле выглядит следующим образом

private Guid* guids; 

это не то, чего я хочу, даже с учетом того факта, что в C ++ указатель и массив являются концептуально взаимозаменяемыми. (Я кодирую на C #)

1 Ответ

8 голосов
/ 09 ноября 2011

StarUML определяет массивы немного иначе, чем стандартный UML. Для вашей конкретной задачи я бы использовал [*] для определения массива. Первый пример ниже описывает это.

Определить массив с неопределенным количеством элементов:

-guids: Guid[*]

Определить массив с определенным количеством элементов:

-guids: Guid[16]

Определение массива base 0 с неопределенным числом элементов:

-guids: Guid[0..*]

Определение базового массива 1 с неопределенным количеством элементов:

-guids: Guid[1..*]

Определить конкретный базовый массив с определенным количеством элементов:

-guids: Guid[1..100]
...