Я и несколько других разработчиков в настоящее время очищаем нашу унаследованную базу кода, в основном разделяя визуальный слой и слой данных. Чтобы помочь разработчикам, не участвующим в этом рефакторинге, понять модель, я хотел бы представить (довольно неформальную) диаграмму классов с комментариями об области применения и желаемом использовании для каждого класса. Поскольку я ленивый, я бы хотел использовать для этого UMLGraph.
Однако есть небольшая проблема: у нас есть база Perl-кода, и рефакторинг широко использует роли Moose. Сейчас я не знаю UML достаточно хорошо, чтобы найти правильную абстракцию для ролей - мое первое предположение - интерфейсы, но они также содержат реализацию; множественное наследование тоже не совсем сокращает его.
Как я (или как бы вы) правильно представляли роли в диаграмме классов?