Как сгенерировать системную архитектуру из java-кода?

Под системной архитектурой я подразумеваю вычислительные компоненты программной системы и взаимодействия/отношения между этими компонентами. Компоненты могут быть задачами, процессами, объектами или модулями и т. д. Различные компоненты связаны соединителями (вызов процедуры, неявный вызов, передача сообщений, создание экземпляров, общая база данных и т. д.).

Я сгенерировал UML-диаграммы с помощью обратного проектирования с помощью Visual Paradigm, но могу ли я также сгенерировать архитектуру?


person marco reus    schedule 05.04.2015    source источник
comment
Может быть дубликатом: stackoverflow.com/questions/1392417/package-dependency (а также поиск инструмента, что здесь не по теме, но не на softwarerecs.stackexchange.com).   -  person Gábor Bakos    schedule 05.04.2015
comment
Что вы понимаете под системной архитектурой?   -  person Stephen C    schedule 05.04.2015
comment
Диаграмма архитектуры программного обеспечения   -  person marco reus    schedule 05.04.2015


Ответы (2)


Поскольку компоненты и взаимодействия могут быть неявными в коде, в общем случае вы не можете сгенерировать такую ​​диаграмму автоматически. Вы должны изучить различные аспекты вашего приложения: исходный код, существующую документацию, пользовательский интерфейс, конфигурацию, задачи jira и т. д. и попытаться восстановить исходную архитектуру.

person Denis Borovikov    schedule 05.04.2015

«Архитектура» — это просто представление некоторых свойств кода, которые не меняются очень быстро. (Если свойство меняется быстро, это не основа архитектуры).

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

Урок состоит в том, что «извлечение архитектуры» сначала требует от вас решить, какие свойства кода вы хотите видеть абстрактно, а затем построить (если сможете) механизм для извлечения этой информации.

Поскольку люди в основном не согласны с тем, какие свойства полезны, вы получаете много аргументов о том, «какая (моя любимая) архитектура», и вы не получаете много инструментов, поскольку их сложно построить, а существует множество их.

person Ira Baxter    schedule 23.04.2015