
- •Часть 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 (Питтсбург, сша).
18.3. Компонентное проектирование как поиск
Поскольку возможности и обязанности компонентов в процессе разработки систем выступают одним из основных источников архитектурных ограничений, но в то же время в любой системе участвует множество компонентов, компонентное проектирование системы превращается в поиск совместимых ансамблей (ensembles) коробочных компонентов, которые в максимальной степени удовлетворяют задачам системы. Архитектор должен установить возможность или, наоборот, невозможность интеграции компонентов в каждом отдельно взятом ансамбле и, в частности, оценить соответствие ансамбля архитектуре и выставленным к системе требованиям.
Если ансамбль способен ужиться в архитектуре, значит, он подлежит дальнейшему анализу. На первоначальном этапе необходимо оценить осуществимость анализа, убедиться в отсутствии существенных архитектурных несоответствий, не допускающих приемлемого приспособления. Необходимо также принять во внимание осуществимость исправления и остаточный риск после окончания этого процесса.
Одновременное проведение анализа в нескольких направлениях, очевидно, слишком затратно. Как мы покажем в примере, разумнее сосредоточиться на одном, основном, направлении, а все остальные рассматривать как дополнительные. Выбранные компоненты крайне важно рассматривать как ансамбли, и ни в коем случае не по отдельности. Кроме того, не следует забывать, что любое направление анализа — это лишь гипотеза, требующая проверки, и никак не окончательное решение.
«Можно ли реализовать атрибуты качества системы в рамках компонентно- ориентированных вариантов архитектуры?» Ответ поначалу кажется очевидным — нет. Возможность применения существующих коробочных пакетов, содержащих дополнительную функциональность, во многих случаях начинает быстро перевешивать производительность, безопасность и другие требования к системе. Коробочные компоненты иногда стирают границу между требованиями и проектным решением системы. Оценка компонентов часто приводит к изменению требований к системе — повышает ожидания относительно предоставляемых ими возможностей и заставляет пересматривать другие «требования».
Некоторая гибкость требований к системе полезна не только в контексте интеграции компонентных систем; она также помогает понять, какие требования действительно важны, и, соответственно, ориентироваться на их неукоснительное соблюдение. Как же обеспечить реализацию важнейших атрибутов качества в компонентной архитектуре?
В предыдущем разделе мы говорили о том, что интеграция компонентов — это одна из основных областей риска, и в задачи системного архитектора, помимо прочего, входит принятие решения об осуществимости интеграции ансамбля компонентов при соблюдении функциональной целостности системы и соответствии требованиям по атрибутам качества. Ансамбли необходимо оценивать не только на предмет возможности успешной интеграции компонентов, но и в контексте решения задач по атрибутам качества. В ходе оценки осуществимости ансамбля компонентов — в том числе его способности к реализации желаемых атрибутов качества — применяются модельные задачи.
Строго говоря, модельная задача (model problem) — это описание проектного контекста, определяющего ограничения реализации. К примеру, если в разрабатываемом программном обеспечении должен быть веб-интерфейс, исправно работающий в браузерах Netscape Navigator и Microsoft Internet Explorer, значит, эта часть проектного контекста ограничивает пространство решений. Все требуемые атрибуты качества также входят в проектный контекст.
Прототип, находящийся в конкретном проектном контексте, называется модельным решением (model solution). В зависимости от серьезности риска,
присущего проектному контексту, и успешности снижения этого риска модельными решениями, у модельной задачи может быть одно или несколько модельных решений.
Как правило, модельные задачи разрабатываются проектными группами. В идеале, проектная группа состоит из архитектора, выступающего техническим руководителем проекта и принимающего в рамках этого проекта основные решения, и некоторого количества проектировщиков/инженеров, реализующих модельное решение модельной задачи.
Рис. 18.1. Последовательность действий при решении модельной задачи
На рис. 18.1 изображена последовательность действий при решении модельной задачи. Процесс этот состоит из шести последовательно выполняемых этапов:
Архитектор вместе с инженерами формулируют проектный вопрос (design question). Ссылающийся на неизвестное, выраженное гипотезой, проектный вопрос инициирует модельную задачу.
Архитектор с инженерами устанавливают исходные критерии оценки (starting evaluation criteria). В них описывается механизм подтверждения/опровержения гипотезы в модельном решении.
Архитектор с инженерами определяют ограничения реализации (implementation constraints). Они устанавливают фиксированную (негибкую) часть проектного контекста, которая регулирует реализацию модельного решения. Среди такого рода ограничений фигурируют требования по платформе, версии компонентов и бизнес-правила.
В заданном проектном контексте инженеры вырабатывают модельное решение (model solution). Модельное решение представляет собой минимальное приложение, обращающееся только к тем характеристикам компонента (или компонентов), которые необходимы для подтверждения или опровержения гипотезы.
Инженеры устанавливают конечные критерии оценки (ending evaluation criteria). В их число включается начальный набор критериев, а также критерии, установленные по мере реализации модельного решения.
Исходя из конечных критериев, архитектор проводит оценку (evaluation) модельного решения. В результате проектное решение отвергается или одобряется. В связи с этим часто формулируются новые проектные вопросы, разрешаемые аналогичным образом.
Оставшаяся часть главы отведена под пример и иллюстрацию применения перечисленных этапов при разработке веб-приложения ASEILM.
О, АТАМ, ГДЕ ТЫ?
Речь в этой главе идет о том, как определить соответствие отобранного ансамбля компонентов выставленным к системе требованиям по качеству и поведению. Очевидно, это архитектурный вопрос. Так почему же мы не решаем его методом архитектурной оценки — например, методом АТАМ? В конце концов, задача АТАМ состоит именно в том, чтобы оценить архитектурные решения (в том числе решение о применении компонентов, определенным образом «смонтированных» друг с другом) в свете предъявляемых к системе требований по качеству и поведению. Почему просто не «провести здесь оценку по методу АТАМ», и все на этом?
Дело в том, что рассматриваемый в настоящей главе процесс, скорее, касается операций, которые обеспечивают первоочередное принятие наборов архитектурных решений, нежели собственно оценки результатов их принятия. Операции эти больше напоминают макетирование, чем аналитическую оценку.
На примере приложения ASEILM мы видим, насколько многочисленны проблемы совместимости, которые разработчикам приходится решать переданализом соответствия ансамблей компонентов атрибутам качества. Сборка из компонентов ансамбля — это уже проблема. Если же один ансамбль окажется непригодным, приходится переходить к следующему. Рассматриваемый процесс, подразделяемый на ряд компактных и практичных этапов, позволяет увереннее принимать обоснованные решения относительно применения того или иного ансамбля.
Каждый из возможных ансамблей строится на ряде гипотез, формулируемых исходя из понимания поставленной задачи. Процесс протекает полупараллельно — вы упорно стараетесь сочетать компоненты друг с другом и с остальными элементами системы, пока не обнаруживаете, что запутались. Затем вы либо собираете компоненты по-другому, либо сразу переходите к запасному плану (другими словами, к следующему ансамблю). Поскольку о том, насколько и каким образом выбранные ансамбли соответствуют атрибутам качества, как оказывается, вы не имеете ни малейшего понятия, на эти самые атрибуты приходится обращать особое внимание.
Для того чтобы провести оценку по методу АТАМ, нужно обладать определенными сведениями о применяемых компонентах. Посылка процесса, который мы здесь описываем, заключается как раз в том, что четкая информация о них отсутствует.
Представив процесс в обличии метода, мы преследовали намерение лучше донести его суть и сделать акцент на его повторяемости; впрочем, по большей части, он основан на здравом смысле. Все начинается с обоснованного предположения о компонентах, которые предполагается использовать. Затем происходит конструирование макетов, которые подвергаются тестированию по отдельности и во взаимодействии. Функционирующие компоненты развиваются, и одновременно, на случай, если сформулированное предположение окажется ложным, составляется резервный план действий. Все эти операции проводятся не с отдельными компонентами, а с целым ансамблем.
После завершения процесса проверки ансамбля на правильность для него (равно как и для архитектуры системы в целом) можно смело проводить архитектурную оценку по методу АТАМ или no любому другому методу.
- LJВиРСС