Цель такого анализа — восстановление структуры и спецификации системы. Этот процесс не подразумевает изменения программ. Входными данными процесса анализа обычно служит исходный код системы. Однако зачастую даже он недоступен, тогда процесс анализа начинается с исполняемой программы.
Анализ систем не тождественен реинженирингу систем. Целью анализа является определение архитектуры и спецификации системы на основе ее исходного кода. Целью реинжениринга можно назвать создание усовершенствованной и удобной в сопровождении системы. Но, как показано на рис. 2, анализ системы может быть составной частью процесса реинжениринга.
Схема процесса анализа системы приведена на рис. 5. Вначале с помощью автоматизированных средств проводится анализ структуры системы. В большинстве случаев этого недостаточно для воссоздания системной архитектуры. Требуется дополнительная работа с исходным кодом системы и с моделью ее структуры. Эта дополнительная информация сравнивается с данными, собранными во время автоматического анализа системы, и представляется в виде ориентированного графа, отображающего связи в исходном коде программ.
Рис.5. Процесс анализа системы
Репозиторий системной информации служит для сравнения структуры графа и кода. На основе ориентированного графа можно получить такие документы, как схемы структуры программ и данных, а также матрицы зависимостей. Матрицы зависимостей показывают места определения в программах системных объектов и ссылки на них. Процесс разработки документации повторяющийся, так как информация о системной структуре используется для дальнейшего уточнения информации, которая хранится в системном репозиторий.
В процессе анализа полезны разные средства просмотра программ, которые предоставляют различные системы представления программ и позволяют легко перемещаться по исходному коду. Например, с их помощью можно найти определения данных, а затем переместиться по коду к месту их использования.
После создания документации по системной архитектуре, в репозиторий вводится дополнительная информация, позволяющая восстановить системную спецификацию. Также обязательно ручное описание структуры системы. К сожалению, спецификацию невозможно создать автоматически из модели системы.