Инструмент для создания диаграмм моделей доменов, которые можно просматривать динамически - PullRequest
2 голосов
/ 20 сентября 2011

Я хочу создавать и поддерживать доменную модель / концептуальные модели высокого уровня для моего проекта. В настоящее время я использую jDeveloper и создаю диаграммы классов UML. Это плохо работает, и я хотел бы найти лучшую альтернативу.

Проблема в том, что как только число объектов становится достаточно большим, диаграмма содержит так много связей, что их почти невозможно прочитать и сохранить. Диаграмма представляет собой большую паутину линий, пересекающих друг друга.

enter image description here

Я думаю, что какой-то гибрид инструмента UML-моделирования и инструмента отображения разума идеально подойдет для этой потребности

  • Необходимость концептуализации высокого уровня и общения с клиентами. Диаграмма не должна быть идеальной UML
  • Некоторые инструменты отображения разума, которые я пробовал, имеют связь только между узлами. Этого недостаточно, мне понадобится как минимум информация о множественности в отношениях (0 ... *) и возможность определять поля для узлов
  • Диаграмму классов UML можно сделать немного более читаемой, используя другой стиль линий (наклонный / прямой) и расположив классы так, чтобы связанные классы были рядом друг с другом. Я пробовал оба, но они помогают только в определенной степени, и как только диаграмма становится достаточно сложной, вы ничего не можете сделать, чтобы она не стала нечитаемой. Вот где появляется «динамическая» часть - у вас может быть инструмент, в котором классы являются узлами на графе, и когда вы выбираете один класс, он приводит его к центру и ко всем классам, связанным с ним, вокруг него. Таким образом, вы можете в интерактивном режиме просматривать диаграмму классов / карту разума и концентрироваться на одном классе за раз.

1 Ответ

3 голосов
/ 20 сентября 2011

a Проблема в том, что вы используете графическую диаграмму классов для отображения всей информации, а не несколько диаграмм или навигацию в реальном времени.

Что я делаю в своих проектах, так это создаю полную модель из моего существующего кода или все еще на более высоком уровне концепции без какого-либо кода. Как только моя модель создается с большой грязной графической диаграммой, я создаю меньшие диаграммы классов, чтобы получить представления. Это статические структурные схемы, которые я обычно даю разработчикам. То, что я делаю сам для того, чтобы помочь мне думать, это показать и скрыть зависимости, ассоциации или наследства. Это означает, что я могу щелкнуть фон диаграммы и выбрать скрыть зависимости, а затем выбрать показать ассоциации и т. Д. Я также могу щелкнуть класс и увидеть все связанные классы, имеющие зависимости, ассоциации и т. Д. С этим классом. Поэтому я могу динамически перемещаться внутри моей модели. Очень круто.

Я использую Eclipse и уже перепробовал почти все плагины UML. Я использую Papyrus для высокого уровня абстракции и простого проекта, основанного на одной диаграмме классов, и Omondo, если очень большой проект с множественными диаграммами для генерации кода Java.

...