Автоматический анализ сцепки и связности кода в большом проекте
От: Mastak  
Дата: 10.01.13 19:56
Оценка: 3 (1)
Как известно, чтобы большой и сложный проект было легко развивать, достраивтаь и избегать ошибок и болезней роста, нужно чтобы он обладал максимальной сцепкой и минимальнйо связностью, ну то есть чтобы весь код можно было так разделить на кластеры (модули, классы — не важно), чтобы внутри кластера единицы кода (процедуры, функции) максимально взаимодействовали друг с другом, а вот между кластерами связей должно быть как можно меньше.

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

Я знаю, что есть инструменты, которые позволяют из кода автоматически сгенерить, например UML диаграмму классов. Но в моем случае задача стоит чуть посложнее — нужно не только сгенерить диаграмму классов, но и выявить те самые кластеры и нарисовать и посчитать те самые сцепки и связности.

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

Вот есть в природе какой-нибудь инструмент, который бы облегчил или атвоматизировал до некоторой степени эту задачу? Наверняка же подобная проблема возникает не у меня одного и не впервые.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.