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