
- •Часть 1. Планирование архитектуры
- •Заключение
- •Дополнительная литература
- •4.10. Дискуссионные вопросы
- •Заключение
- •Дополнительная литература
- •Дискуссионные вопросы
- •Глава 6. Управление воздушным движением. Пример разработки, ориентированной на высокую готовность
- •Глава 7. Проектирование архитектуры
- •Глава 8. Моделирование условий полета. Конкретный пример архитектуры, ориентированной на интегрируемость
- •8.4. Заключение
- •Дополнительная литература
- •Дискуссионные вопросы
- •Глава 9. Документирование программной архитектуры
- •Заключение
- •Дополнительная литература
- •Дискуссионные вопросы
- •Глава 10. Реконструкция программной архитектуры
- •Глава 11. Метод анализа компромиссных архитектурных
- •Заключение
- •Дополнительная литература
- •Дискуссионные вопросы
- •Глава 12. Метод анализа стоимости и эффективности — количественный подход к принятию
- •Заключение
- •Дополнительная литература
- •Дискуссионные вопросы
- •Глава 13. Всемирная паутина. Конкретный пример реализации способности к взаимодействию 374
- •Глава 14. Линейки программных продуктов.
- •Заключение
- •Дополнительная литература
- •Глава 15. CelsiusTech. Конкретный пример разработки
- •Заключение
- •Дополнительная литература
- •Дискуссионные вопросы
- •Заключение
- •Дополнительная литература
- •Дискуссионные вопросы
- •Заключение
- •Дополнительная литература
- •Дискуссионные вопросы
- •Заключение
- •Дополнительная литература
- •Заключение
- •Часть 1. Планирование архитектуры
- •Часть 2. Создание архитектуры
- •Часть 3. Анализ архитектуры
- •Часть 4. От одной системы к множеству
- •Часть 1
- •Глава 1
- •1.1. Откуда берутся варианты архитектуры?
- •1.2. Программный процесс и архитектурно-экономический цикл
- •1.3. Из чего складывается «качественная» архитектура?
- •1.4. Заключение
- •1.5. Дискуссионные вопросы
- •Глава 2
- •2.1. Чем является программная архитектура и чем она не является
- •2.2. Другие взгляды на архитектуру
- •2.3. Архитектурные образцы, эталонные модели и эталонные варианты архитектуры
- •2.4. Почему программная архитектура так важна?
- •2.5. Архитектурные структуры и представления
- •2.6. Заключение
- •2.7. Дополнительная литература
- •2.8. Дискуссионные вопросы
- •Глава 3
- •3.1. Связь с архитектурно-экономическим циклом
- •3.2. Требования и атрибуты качества
- •3.3. Архитектура авиационной электронной системы а-7е
- •3.4. Заключение
- •3.5. Дополнительная литература
- •3.6. Дискуссионные вопросы
- •Часть 2
- •Глава 4
- •4.1. Функциональность и архитектура
- •4.2. Архитектура и атрибуты качества
- •4.3. Атрибуты качества системы
- •4.4. Практическое применение сценариев атрибутов качества
- •4.5. Другие атрибуты качества системы
- •4.6. Коммерческие атрибуты качества
- •4.7. Атрибуты качества архитектуры
- •4.8. Заключение
- •4.9. Дополнительная литература
- •4.10. Дискуссионные вопросы
- •Глава 5
- •5.1. Определение тактики
- •5.2 Тактики реализации готовности
- •5.3. Тактики реализации модифицируемости
- •5.4. Тактики реализации производительности
- •5.5. Тактики реализации безопасности
- •5.6. Тактики реализации контролепригодности
- •5.7. Тактики реализации практичности
- •5.8. Взаимосвязь тактик и архитектурных образцов
- •5.9. Архитектурные образцы и стили
- •5.10. Заключение
- •5.11. Дополнительная литература
- •5.12. Дискуссионные вопросы
- •Глава 6
- •6.1. Связь с архитектурно-экономическим циклом
- •6.2. Требования и атрибуты качества
- •6.3. Архитектурное решение
- •6.4. Заключение
- •6.5. Дополнительная литература
- •6.6. Дискуссионные вопросы
- •Глава 7
- •7. 1. Архитектура в контексте жизненного цикла
- •7.2. Проектирование архитектуры
- •1. Выбор модуля для декомпозиции
- •2А. Выбор архитектурных мотивов
- •2Ь. Выбор архитектурного образца
- •2D. Задание интерфейсов дочерних модулей
- •7.3. Формирование рабочих групп
- •7.5. Заключение
- •7.6. Дополнительная литература
- •7.7. Дискуссионные вопросы
- •Глава 8
- •8.1 Связь с архитектурно- экономическим циклом
- •8.2. Требования и атрибуты качества
- •8.3. Архитектурное решение
- •8.2 Заключение
- •8.5 Дополнительная литература
- •8.6. Дискуссионные вопросы
- •Глава 9
- •9.1. Варианты применения архитектурной документации
- •9.2. Представления
- •9.3 Выбор значимых представлений
- •9.4. Документирование представления
- •9.5. Перекрестная документация
- •9.6. Унифицированный язык Моделирования
- •9.7. Заключение
- •9.8. Дополнительная литература
- •9.9. Дискуссионные вопросы
- •Глава 10
- •10.1. Введение
- •10.2. Извлечение информации
- •10.3. Создание базы данных
- •10.4. Объединение представлений
- •10.5. Реконструкция
- •10.6. Пример
- •10.7. Заключение
- •10.8. Дополнительная литература
- •10.9. Дискуссионные вопросы
- •Часть 3
- •Глава 11
- •Результаты проведения оценки по методу атам
- •Этапы atam
- •1 Источник: приводится по изданию [Clements 02а] (адаптированная версия).
- •11.4. Система Nightingale: конкретный пример проведения оценки по методу атам
- •11.5. Заключение
- •Дополнительная литература
- •Дискуссионные вопросы
- •Глава 12
- •Результаты оценки по методу свам
- •Заключение
- •Дополнительная литература
- •Дискуссионные вопросы
- •Глава 13
- •13.1. Отношение к архитектурноэкономическому циклу
- •13.4. Еще одна итерация архитектурноэкономического цикла: эволюция вариантов веб-архитектуры систем электронной коммерции
- •13.7. Заключение
- •13.8. Дополнительная литература
- •13.9. Дискуссионные вопросы
- •Часть 4
- •Глава 14
- •За счет чего работают линейки программных продуктов?
- •Варианты архитектуры линеек продуктов
- •Факторы, усложняющие применение линеек программных продуктов
- •Заключение
- •Дополнительная литература
- •Дискуссионный вопрос
- •Глава 15
- •Связь с архитектурноэкономическим циклом
- •Требования и атрибуты качества
- •Архитектурное решение
- •Заключение
- •Дополнительная литература
- •Дискуссионные вопросы
- •Глава 16
- •Связь с архитектурноэкономическим циклом
- •16.3. Архитектурное решение
- •16.4. Решения по размещению системы
- •Заключение
- •Дополнительная литература
- •Дискуссионные вопросы
- •Глава 17
- •17.2. Требования и атрибуты качества
- •17.3. Архитектурное решение
- •17.4. Механизм реализации атрибутов качества в архитектуре Luther
- •Заключение
- •Дополнительная литература
- •Дискуссионные вопросы
- •Глава 18
- •18.1. Воздействие компонентов на архитектуру
- •18.2. Архитектурное несоответствие
- •18.3. Компонентное проектирование как поиск
- •18.4. Пример приложения aseilm
- •18.5. Заключение
- •18.6. Дополнительная литература
- •Глава 19
- •19.1. Снова архитектурноэкономический цикл
- •19.2. Создание архитектуры
- •19.3. Архитектура в рамках жизненного цикла
- •Влияние коммерческих компонентов
- •Заключение
- •8 Все перечисленные специалисты работают в корпорации Inmedius (Питтсбург, сша).
10.7. Заключение
Неосязаемость архитектуры во многих случаях приводит к тому, что на протяжении жизненного цикла системы она утрачивается или разрушается. Именно с этим связана потребность в методиках восстановления и извлечения вариантов архитектуры из унаследованных систем. Мы в настоящей главе представили обзор типичного процесса архитектурной реконструкции и весьма подробно изложили пример его проведения.
Нетривиальность отображения архитектуры на артефакты системы уровня исходного кода значительно усложняет архитектурную реконструкцию; для того чтобы облегчить ее проведение, желательно привлекать к процессу специалистов, обладающих солидными знаниями о рассматриваемой системе. Нисколько не умаляя важности инструментальных средств — особенно в тех случаях, когда они сочетаются в рамках компактного инструментария, — мы все же отметим, что в контексте реконструкции человеческие знания имеют поистине непреходящую ценность.
10.8. Дополнительная литература
В настоящее время существует несколько инструментариев реконструкции. В Институте программной инженерии (Software Engineering Institute, SEI) разработан инструментарий Dali [Kazman 99а]. Также следует упомянуть продукт разработки Sneed [Sneed 98], фабрики программного обновления, созданные Вероефом (Chris Verhoef) и его коллегами [Brand 97], а также инструментальный набор воссоздания архитектуры от Philips Research [Krikhaar 99].
Обзор стандартной формы Rigi содержится в издании [Muller 93]. Инструмент Rigi описывается в работе [Wong 94].
В труде [Bowman 99] изложен метод извлечения архитектурной документации из кода реализованной системы, сильно напоминающий Dali. В частности, там приводится пример реконструкции архитектуры системы Linux, в ходе которой путем анализа исходного кода программой cfx (это инструмент быстрого извлечения кода С) была получена символьная информация, на основе которой впоследствии провели генерацию набора отношений между символами. Затем последовала ручная древовидная декомпозиция системы Linux на подсистемы и назначение им исходных файлов. Далее при помощи утилиты обработки существенных фактов были установлены отношения между идентифицированными подсистемами, а посредством инструмента визуализации Isedit проведена вирилизация извлеченной структуры системы. Уточнить результирующую структуру удалось путем перемещения исходных файлов из одной подсистемы в другую.
Харрнс (Harris) и ряд его коллег предлагают совместить в рамках каркаса архитектурной реконструкции восходящий и нисходящий подходы [Harris 95]. Каркас этот включает три части: механизм отображения архитектуры, машину распознавания исходного кода вместе со вспомогательной библиотекой запросов на распознавание, а также механизм «панорамного» обзора программы. При восходящем анализе панорамное представление позволяет отображать файловую структуру и исходные элементы системы, а также реорганизовывать информацию в рамках более содержательных кластеров. В нисходящем анализе для выявления тех элементов, которые планируется обнаружить в программной системе, используются отдельные архитектурные образцы. Запросы на распознавание помогают проводить проверку на предмет существования ожидаемых элементов.
В работе [Guo 99] приводится обзор полуавтоматического метода восстановления архитектуры под названием ARM, подходящего, правда, только для тех систем, которые проектировались и разрабатывались с помощью образцов. Состоит он из четырех основных этапов: 1) разработка конкретного плана распознавания конкретных образцов; 2) извлечение исходной модели; 3) обнаружение и оценка экземпляров образцов; 4) реконструкция и анализ архитектуры. Параллельно с описанием метода ARM в издании приводятся конкретные примеры его применения в целях реконструкции систем и проверки их соответствия документированным вариантам архитектуры.