Можно создать дубликат:
How to describe a contained map in UML class diagram?Как представить карту STL в диалоге UML?
Я хочу обозначения STL MAP в UML диаграмме.
Можно создать дубликат:
How to describe a contained map in UML class diagram?Как представить карту STL в диалоге UML?
Я хочу обозначения STL MAP в UML диаграмме.
Вы можете просто рассматривать его как родной тип данных. В большинстве случаев нет причин делать что-то еще.
Здесь нет «правильных» или «неправильных». Единственные вопросы - вот что делает архитектуру более понятной для команды.
Я полностью согласен. Стандарты, такие как UML, пытаются определить набор стандартных правил, которые упрощают объяснение архитектуры (как своего рода сборник передовой практики или здравого смысла). Но в конце концов, это ваша команда должна понять это, и если для того, чтобы сделать ее более четкой, требуется отклонение от стандартов, нет необходимости придерживаться стандартов. (Я просто понял: если бы мы все придерживались стандартов в компьютерной истории, мы все равно будем использовать Cobol). – Patrick
В зависимости от того, что вы хотите моделировать и как. Я много раз просто смоделировали состав/агрегацию отношения класса, содержащий карту на карту хранятся элементы и добавили атрибут к отношениям:
class MyEnclosingType {
std::map<int,MyEnclosedType*> m_map;
};
MyEnclosingType <>-------------------------- MyEnclosedType
<<map>>
В зависимости от инструмента, который вы используете, некоторые действительно признают это. Например BOUML, IIRC, автоматически нарисует что-то похожее на это:
MyEnclosingType <>-------------------------- MyEnclosedType
^
|
| << bind Key=int >>
|
map
Я не думаю, что это было именно так, но как-то похоже. В конце UML - это инструмент для чтения людьми, а не для компьютеров. Если вы верите в создание кода (удачи), тогда возникает вопрос о том, какую странную конструкцию вам нужно использовать для вашего программного обеспечения, чтобы понять ваши намерения.
Некоторые другие инструменты будут иметь STL или позволяют добавлять параметризованные типы и вы можете использовать, чтобы представлять один и тот же код, как:
Key=string
Value=MyEnclosedType
MyEnclosingType <>-------------------------- map
Где и MyEnclosingType
и map
будут окруженную твердыми коробками, и Key
и Value
будут представлены прерывистым ящиком, перекрывающим поле map
, как и с другими параметризованными типами.
Я бы попытался переделать простой образец кода с помощью карты с вашим инструментом выбора и посмотреть, что инструмент генерирует для вас. Если вам это не нравится, просто подумайте над тем, что вы можете сделать, чтобы на самом деле предлагать как можно больше информации о проблеме, чем вы можете, с помощью того, что позволяют вам инструменты.
Уже задал вопрос и ответил здесь: http://stackoverflow.com/questions/1192606/how-to-describe-a-contained-map-in-uml-class-diagram/9510155#9510155 –