Архитектура в рамках жизненного цикла
Согласно нашим утверждениям, архитектура является основным артефактом жизненного цикла. В то же время жизненный цикл системы отнюдь не исчерпывается разработкой архитектуры. Мы считаем, что в контексте взаимодействии архитектуры и жизненного цикла серьезного методического изучения требуют следующие вопросы. ♦ Применение инструментальных средств для документирования. В главе 9 мы говорили об архитектурной документации, однако вопросов ее составления не касались. В идеале, знания об архитектуре системы должны быть встроены в некий инструмент, при помощи которого документация будет генерироваться автоматически или полуавтоматически. Для инструментального составления документации требуется наличие у применяемого инструмента знаний об архитектурных конструкциях — мало того, в нем должен быть заложен метод перехода от одного представления к другому. Последняя задача, в свою очередь, подразумевает существование метода специфицирования соответствия между представлениями. Обеспечение соответствия между представлениями невозможно без решения ряда задач. Во-первых, представления должны быть непротиворечивыми — иначе говоря, изменение в одном представлении должно автоматически переходить в другие представления. Во-вторых, необходимо соблюдать индивидуальные и общие для всех представлений ограничения. К примеру, у нас должна быть возможность ограничивать процесс тремя потоками (это ограничение распространяется на отдельное представление) и привязывать определенные модули к одному процессу (ограничение, охватывающее несколько представлений). ♦ Программная архитектура в рамках систем управления конфигурациями. Одна из задач реконструкции программной архитектуры состоит в проверке соответствия фактической архитектуры проектной архитектуре. Предположим, что системе управления конфигурациями известна проектная архитектура, и при входной проверке нового или корректировке существующего кодового модуля архитектуру можно верифицировать на согласованность. В таком случае, поскольку соответствие обеспечивается системой управления конфигурациями, необходимость в отдельной процедуре проверки отпадает. Таким образом, один из мотивов проведения архитектурной реконструкции сходит на нет. ♦ Переход от архитектуры к коду. В случае применения нескольких представлений системы — будь то проектные модели, архитектура или код — их необходимо поддерживать в согласованном состоянии. Обновляемое представление остается корректным, остальные же, если их не согласовывать, со временем теряют всякую ценность. Если в определенной инструментальной среде жесткое сцепление между архитектурой и кодом отсутствует, появляются две дополнительные задачи. Первая заключается в переходе от архитектурной спецификации к коду — rio той лишь причине, что этап архитектурного проектирования предшествует этапу кодирования. Вторая задача состоит в том, чтобы обеспечить отражение в архитектуре процесса развития системы, — как правило, именно код, а не архитектура, выступает в качестве обновляемого представления.
|