генерация кода из диаграммы классов UML

У меня есть диаграмма классов UML с двумя классами A и B в корпоративной архитектуре (упрощенный пример). На диаграмме классов показана связь между A и B. Связь составляет от 0..1 до 0..m для A и B соответственно. Это означает, что A может иметь 0 ... m экземпляров B, а B принадлежит 0 или 1 экземпляру A. Я сгенерировал этот код C# с помощью корпоративного архитектора (упрощенный):

class A
{
   public B _b;
}

class B
{

}

Однако, не должно ли быть так:

class A
{
   public IList<B> _bs;
}

class B
{

}

Есть ли что-то, что я должен учитывать во время генерации кода (я также выбрал оба класса, а затем безуспешно сгенерировал код).


person cs0815    schedule 25.10.2012    source источник
comment
Просто не делай этого. Время, которое, как вы думаете, вы сэкономите, автоматически сгенерировав свой дизайн в код, очень быстро исчезнет, ​​когда вам придется решать все проблемы с помощью инструмента, который делает это плохо.   -  person Jack Hughes    schedule 25.10.2012
comment
Значит, инструмент плохо справлялся?   -  person cs0815    schedule 25.10.2012


Ответы (2)


Перейдите в Инструменты — Параметры — Разработка исходного кода — C# и нажмите кнопку Классы коллекций, чтобы указать классы коллекций, используемые для генерации кода (игнорируйте метку 1..*).

Вы указываете свойства кратности (упорядоченные и т. д.) в свойствах соединителя на вкладке «Целевая роль» (я почти уверен, что EA проигнорирует кратность 0..1 в исходной роли; на самом деле он мало что может с этим сделать). ).

Наконец, убедитесь, что все ваши классы и пакеты указаны как C#. Самый простой способ — щелкнуть правой кнопкой мыши пакет в браузере проекта и выбрать Code Engineering — Reset Options for this Package, затем в диалоговом окне указать «Где язык — ‹Все›», «Преобразовать в C#» и Обработать дочерние пакеты.

person Uffe    schedule 01.11.2012

Вам нужно определить, какой класс коллекции вы хотите использовать для генерации кода. Это, по памяти, Инструменты> Параметры> Разработка кода> С#

person chimp    schedule 26.10.2012