Полезен ли UML для описания шаблонного кода? - PullRequest
10 голосов
/ 24 февраля 2011

Я хотел бы знать, полезен ли UML для описания сильно шаблонного кода. Я знаю, что в UML есть понятие параметризованных классов (vector<T> <---- <<bind>> ---- vector<int>), но этого недостаточно для описания сложных типизированных утиных отношений, которые мы можем иметь с шаблонами. Я всегда могу поставить ассоциации между такими классами, но мне кажется, что на самом деле это не поможет понять, как это работает.

Более того, с учетом, например, библиотеки STL, алгоритмы часто реализуются как функции и, таким образом, не очень хорошо вписываются в модель ООП, хотя они все еще ведут себя как объекты, представляющие ассоциации между классами.

Итак, имеет ли смысл рисовать UML-диаграммы для описания такого шаблонного кода? Если да, то какие типы диаграмм были бы наиболее полезны - в «стандартном» ООП я видел диаграммы классов, используемые большую часть времени, но, вероятно, для шаблонного кода некоторые другие виды диаграмм были бы более полезными? Если UML не подходит для этого, что еще я могу использовать?

1 Ответ

2 голосов
/ 24 февраля 2011

Я думаю, что это зависит.

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

Но если отношения между классами остаются более или менее одинаковыми, независимо от того, какони создаются, тогда диаграмма классов UML будет столь же полезна для моделирования этих отношений, как и для непараметризированных классов.

...