Я хотел бы знать, полезен ли UML для описания сильно шаблонного кода. Я знаю, что в UML есть понятие параметризованных классов (vector<T> <---- <<bind>> ---- vector<int>
), но этого недостаточно для описания сложных типизированных утиных отношений, которые мы можем иметь с шаблонами. Я всегда могу поставить ассоциации между такими классами, но мне кажется, что на самом деле это не поможет понять, как это работает.
Более того, с учетом, например, библиотеки STL, алгоритмы часто реализуются как функции и, таким образом, не очень хорошо вписываются в модель ООП, хотя они все еще ведут себя как объекты, представляющие ассоциации между классами.
Итак, имеет ли смысл рисовать UML-диаграммы для описания такого шаблонного кода? Если да, то какие типы диаграмм были бы наиболее полезны - в «стандартном» ООП я видел диаграммы классов, используемые большую часть времени, но, вероятно, для шаблонного кода некоторые другие виды диаграмм были бы более полезными? Если UML не подходит для этого, что еще я могу использовать?