Принцип инструментария
Для проведения реконструкции архитектуры требуются специальные инструмен-тальные средства; с другой стороны, ни один инструмент или набор инструментов не способен справиться с этой задачей самостоятельно. Во-первых, поскольку в исследуемых артефактах может встретиться множество различных языков, желательно, чтобы эти инструменты были ориентированы на конкретные языки. К примеру, программное обеспечение, находящееся в составе комплексного измерителя магнитного резонанса, может быть написано на 15 различных языках. Во-вторых, инструменты извлечения данных несовершенны — зачастую они возвращают неполные или ошибочные результаты; следовательно, имеет смысл задействовать несколько подобного рода инструментов, которые могли бы дополнять и проверять показания друг друга. Наконец, как мы уже говорили, перед реконструкцией ставятся разные задачи. От планов применения восстановленной документации зависит спектр извлекаемой информации, а он, в свою очередь, определяет набор инструментальных средств. Из всего этого следует, что для проведения реконструкции архитектуры необходимо применять наборы инструментальных средств — так называемые инструментарии (workbenches). Инструментарий должен быть открытым (удобным в смысле введения новых инструментов) и предусматривать облегченный интеграционный каркас, исключающий излишнее воздействие новых инструментов на старые инструменты и данные. Один из инструментариев разработан в Институте программной инженерии — он называется Dali, и для иллюстрирования материалов этой главы мы к нему еще обратимся. Несколько других инструментариев упоминается в разделе «Дополнительная литература» в заключительной части главы. Операции в ходе реконструкции Х0Де реконструкции программной архитектуры выполняется ряд операций итерационного характера: Извлечение информации. Цель — извлечь из разных источников нужную информацию. 1. Составление базы данных. Извлеченная информация стандартизируется — например, переводится в стандартную форму Rigi (формат данных на основе кортежей вида отношение<объект1><объект2>) — и преобразуется в формат записей базы данных на основе SQL; по результатам этих преобразований создается база данных. 3. Объединение представлений. Информация, содержащаяся в базе данных объединяется, формируя связное представление архитектуры. 4. Реконструкция. Па этом этапе производятся важнейшие действия по построению абстракций и отображению данных, на основе которых генерируется отображение архитектуры в целом. Как и следовало ожидать, все эти процессы итерационны. Схема операций по реконструкции архитектуры и проходящих между ними информационных потоков приводится на рис. 10.1. Совершенно необходимо участие в процессе реконструкции нескольких человек: во-первых, специалиста, отвечающего непосредственно за реконструкцию, и, во-вторых, одного или нескольких людей, знакомых с реконструируемой системой (например, ее архитекторов и программных инженеров). Извлекая из системы нужную информацию, специалист по реконструкции вручную или при помощи инструментальных средств строит абстракции и таким образом, восстанавливает черты архитектуры. При этом он выдвигает ряд гипотез о системе, выражающих обратные отображения исходных артефактов на проектные решения (в идеале, они должны быть противоположны вариантам проектного отображения). Гипотезы тестируются путем генерирования обратных отображений, применения их к извлеченной информации и проверки результата на правильность. Повышение эффективности при генерации и проверке гипотез достигается за счет привлечения знакомых с системой людей — в частности, ее архитектора или программных инженеров (тех, кто участвовал в первоначальной разработке системы, и тех, кто занимается ее сопровождением в настоящее время)- В нижеследующих разделах мы более подробно рассмотрим отдельные опера- кии реконструкции архитектуры и изложим практические рекомендации по их проведению. По большей части эти рекомендации не привязаны к конкретному инструментарию и поэтому потенциально применимы даже в тех случаях, когда реконструкция проводится вручную.
|