- •Часть 1. Планирование архитектуры
- •Заключение
- •Дополнительная литература
- •4.10. Дискуссионные вопросы
- •Глава 8. Моделирование условий полета. Конкретный пример архитектуры, ориентированной на интегрируемость
- •8.4. Заключение
- •Дополнительная литература
- •Дискуссионные вопросы
- •Глава 9. Документирование программной архитектуры
- •Заключение
- •Дополнительная литература
- •Дискуссионные вопросы
- •Глава 10. Реконструкция программной архитектуры
- •Заключение
- •Дополнительная литература
- •Дискуссионные вопросы
- •Глава 6. Управление воздушным движением. Пример разработки, ориентированной на высокую готовность
- •Глава 7. Проектирование архитектуры
- •Глава 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 (Питтсбург, сша).
Этапы atam
Операции оценки по методу АТАМ распадаются на четыре этапа.
На нулевом этапе — «Установление партнерских отношений и подготовка» — руководители группы оценки проводят неофициальные совещания с основными ответственными за проект лицами и прорабатывают подробности предстоящей работы. Представители проекта посвящают специалистов по оценке в суть проекта, тем самым повышая квалификацию некоторых из них. Эти две группы принимают согласованные логистические решения: где и когда встречаться, кто предоставит лекционные плакаты и с кого пончики и кофе. Кроме того, они согласовывают предварительный перечень заинтересованных лиц (перечисляя их не по именам, а по ролям) и устанавливают сроки и получателей сводного отчета. Они также организуют снабжение специалистов по оценке архитектурной документацией — если, конечно, таковая существует и может оказаться полезной. Наконец, руководитель группы оценки объясняет руководителю проекта и архитектору, какую информацию им следует предоставить на первом этапе, и при необходимости помогает им составить соответствующие презентации.
Таблица
11.2.
Этапы
АТАМ и их характеристики1
Этап
Операции
Участники
Средняя
продолжительность
0
Установление
партнерских отношений и подготовка
Руководство
группы оценки и основные ответственные
за проектлица
Проходит
в неформальной обстановке, согласно
конкретной ситуации; можетдлиться
несколько недель
1
Оценка
Группа
оценки и ответственные за проект
лица
1
день
с последующим перерывом
продолжительностью от 2
до
3
недель
2
Оценка
(продолжение)
Группа
оценки, ответственные за проект
лица и заинтересованные лица
2
дня
3
Доработка
Группа
оценки и заказчик оценки
1
неделя
1
Источник:
приводится по изданию [Clements
02a]
(адаптированная
всрсия).
На первом и втором этапах проводится непосредственно оценка — все погружены в аналитические операции. К началу этих этапов все участники группы оценки должны ознакомиться с документацией по архитектуре, получить достаточное представление о системе, знать задействованные архитектурные методики и ориентироваться в первостепенных атрибутах качества. На первом этапе, намереваясь приступить к сбору и анализу информации, участники группы оценки встречаются с лицами, ответственными за проект (как правило, встреча длится весь день). На втором этапе к специалистам присоединяются заинтересованные в архитектуре лица, и в течение примерно двух дней они проводят аналитические мероприятия совместно. Первой и второй этапы подробно расписаны в следующем разделе.
Третий этап занимает доработка — группа оценки составляет в письменном виде и предоставляет получателям сводный отчет. По сути, участники занимаются самопроверкой и вносят в результаты своей работы разного рода коррективы. Назаключительном совещании группы обсуждаются успехи и трудности. Участники изучают отчеты, выданные им на первом и втором этапах, и заслушивают выступление наблюдателя за процессом. По сути, они занимаются поиском путей усовершенствования по части исполнения своих ролей, с тем чтобы проводить последующие оценки с меньшими усилиями и с более высокой эффективностью. Действия, выполненные в период оценки участниками трех групп, тщательно регистрируются. По прошествии нескольких месяцев руководитель группы должен связаться с заказчиком оценки, для того чтобы оценить долгосрочные результаты ее проведения и сравнить издержки с выгодами.
Четыре этапа АТАМ, их участники и приблизительный график представлены в табл. 11.2.
Операции на различных этапах оценки
Аналитические этапы АТАМ (этап 1 и 2) состоят из девяти операций. Операции с первой по шестую проводятся на первом этапе. На втором этапе в присутствии всех заинтересованных лиц подводятся предварительные итоги и выполняются операции 7-9.
Аналитические операции, как правило, выполняются последовательно, в соответствии с установленным планом, однако для адаптации к доступным трудовым ресурсам или архитектурной информации возможно проведение динамических модификаций. Каждая оценка уникальна — иногда, если в том есть необходимость, группа на короткое время возвращается к предыдущим операциям, раньше времени переходит к последующим или выполняет операции повторно.
Операция 1: презентация АТАМ
В ходе первой операции руководитель специалистов по оценке организует для представителей проекта презентацию метода АТАМ. От него требуется растолковать всем участникам суть процесса, которому им придется следовать, ответить на все вопросы, а также определить контекст остальных операций и их ожидаемые результаты. Стандартная форма презентации позволяет руководителю кратко охарактеризовать все операции, предусмотренные в АТАМ, и поставленные перед ними задачи.
Операция 2: презентация коммерческих факторов
Все участники оценки — как представители проекта, так и специалисты из группы оценки — должны знать контекст системы, а также основные коммерческие факторы, стимулирующие ее разработку. Ответственное за проект лицо (в идеале — руководитель проекта или заказчик системы) обязано представить обзор системы с коммерческой точки зрения. В числе прочего в составе этой презентации должны содержаться описания:
важнейших функций системы;
всех значимых технических, управленческих, экономических или политических ограничений;
коммерческих задач и коммерческого контекста в его отношении к проекту;
основных заинтересованных лиц;
архитектурных мотивов (иначе говоря, основных задач но реализации атрибутов качества, оказывающих на архитектуру определяющее воздействие).
Операция 3: презентация архитектуры
На этом этапе главный архитектор (или группа архитекторов) организует презентацию архитектуры на адекватном ситуации уровне детализации. «Адекватность» детализации обусловливается несколькими факторами: степенью разработанности проекта и документации архитектуры, временными ограничениями, а также характером требований к поведению и качеству.
В ходе презентации архитектор должен изложить технические ограничения — в частности, назвать операционную систему, аппаратное и промежуточное программное обеспечение, а также другие системы, с которыми будет взаимодействовать рассматриваемая система. Что самое главное, от архитектора требуется описать архитектурные методики (или образцы, если архитектор свободно владеет соответствующим словарем), применяемые для реализации требований.
Максимально эффективное использование отведенного на презентацию времени обеспечивает высокий коэффициент «сигнал-помеха». Другими словами, не переходя к обсуждению вспомогательных областей и уклоняясь от детального рассмотрения отдельных аспектов, архитектор должен донести до слушателей суть архитектуры. Таким образом, нелишне заблаговременно рассказать архитектору, какую именно информацию от него ожидают получить участники группы оценки. При подготовке презентации применяются специальные шаблоны наподобие показанного в листинге 11.1. Некоторым архитекторам трудно обойтись без «генеральной репетиции» презентации, которая также считается одной из операций первого этапа.
Листинг 11.1. Пример шаблона презентации архитектуры2 Презентация архитектуры (-20 слайдов; 60 минут).
Важнейшие архитектурные требования, связанные с ними измеряемые величины и все существующие стандарты/модели/методики, направленные на их удовлетворение (2-3 слайда).'
Значимые сведения об архитектуре (4-8 слайдов):
Контекстная диаграмма, демонстрирующая систему в том контексте, в котором она должна будет существовать. Люди и другие системы, которые будут с ней взаимодействовать.
Модульное или многоуровневое представление — модули (возможно, подсистемы или уровни), описывающие декомпозицию функциональности в системе, а также содержащиеся в них объекты, процедуры и функции и отношение между последними (например, вызовы процедур и методов, обратные вызовы, включение).
Представление «компонент и соединитель» - процессы и потоки вместе с тем, что их соединяет: синхронизацией, потоками данных и событиями.
Представление размещения — процессоры, память, внешние устройства/ датчики, а также соединяющие их сети и устройства связи. Здесь же должны быть показаны процессы, исполняющиеся на разных процессорах.
Применяемые архитектурные методики, образцы и тактики с указанием атрибутов качества, на реализацию которых они направлены, и описанием механизмов этой реализации (3-6 слайдов).
Применение коммерческих коробочных продуктов (COTS) вместе с описанием
механизмов их отбора/интеграции (1-2 слайда).
Кальки 1-3 наиболее важных сценариев Use Case. По возможности следует
указывать потребление ресурсов периода прогона каждым из сценариев (1-3 слайда).
Кальки 1-3 наиболее важных сценариев изменений. По возможности следует приводить описания воздействия изменений (расчетный диапазон/трудность проведения изменений) применительно к модифицируемым модулям или интерфейсам (1-3 слайда).
Архитектурные проблемы/риски, связанные с удовлетворением важнейших архитектурных требований (2-3 слайда).
Глоссарий (1 слайд).
По приведенному шаблону презентации видно, что основным инструментом изложения архитектуры являются архитектурные представления (см. главу 2). 'За редкими исключениями, в ходе проведения оценки весьма полезными оказываются контекстные диаграммы, «компонент и соединитель», представления декомпозиции уровней и размещения, а также многоуровневые представления; соответственно, архитектор должен быть готов продемонстрировать их. Если значимая в контексте рассматриваемой архитектуры информация, в особенности относящаяся к выполнению важнейших задач по реализации атрибутов качества, содержится в каких-то других представлениях, их также следует упомянуть. В общем, архитектору рекомендуется оперировать теми представлениями, которые в процессе создания архитектуры показались ему наиболее важными.
Во время презентации участники группы оценки могут попросить архитектора прояснить какие-то непонятные моменты; при этом они исходят из знаний, полученных в результате проводимого на нулевом этапе анализа архитектурной документации, и изучения в ходе предшествующей операции коммерческих факторов. Кроме того, они ожидают получить и зафиксировать сведения о применяемых архитектурных тактиках и образцах.
Операция 4: выявление архитектурных методик
Согласно АТАМ, необходимым условием анализа архитектуры является компетентность в вопросах задействованных в ней архитектурных методик. На материале главы 5 мы выяснили, что архитектурные образцы, помимо прочего, вы-
годно отличаются тем, что их воздействие на различные атрибуты качества хорошо изучено. Так, многоуровневый образец повышает переносимость системы, причем иногда — за счет снижения производительности. Образец репозитария данных, как правило, отличается масштабируемостью по части количества производителей и потребителей данных. И так далее.
В рассматриваемый момент у всех участников группы уже должно сложиться четкое представление об образцах и методиках, задействованных архитектором при проектировании системы. Для этого есть все предпосылки — ведь они ознакомились с архитектурной документацией, а в ходе третьей операции прослушали проведенную архитектором презентацию. На том же этапе архитектор должен явно, по именам перечислить использованные образцы и методики, а от участников группы требуется умение распознавать те из них, которые архитектор не упомянул.
В период проведения настоящей операции задача группы оценки заключается в том, чтобы каталогизировать очевидные образцы и методики. Обязанность по составлению (при участии специалистов) соответствующего списка, а также по его последующему распространению возлагается на секретаря. В дальнейшем этот список становится основой для проведения анализа.
Операция 5: генерация дерева полезности атрибутов качества
В зависимости от того, способна ли архитектура реализовать в системе те или иные атрибуты качества, она признается пригодной или непригодной для конструирования этой самой системы. Архитектура, в которой достигается высочайшая производительность, никоим образом не сочетается с системой, в которой приоритет отдается, скажем, безопасности. В ходе операции 2, попутно с изложением коммерческих факторов, должны быть представлены задачи по реализации атрибутов качества, важнейшие в контексте данного варианта архитектуры; впрочем, их детализация на этом этапе не позволяет выполнять действия аналитического характера. Общие задачи наподобие «модифицируемости», «высокой пропускной способности» или «возможности перенесения на разные машины» обозначают контекст и направление, формируют основу для изложения последующей информации. С другой стороны, они не настолько конкретны, чтобы на их основе можно было делать выводы о пригодности архитектуры. О какой модифицируемости идет речь? Насколько высокой должна быть пропускная способность? На какие конкретно машины предполагается переносить систему?
Настоящая операция предполагает детальную фиксацию задач по реализации атрибутов качества; для достижения этой цели применяется механизм под названием «дерево полезности». Участники группы оценки совместно с ответственными за проект лицами устанавливают наиболее важные для системы задачи по реализации атрибутов качества, расставляют их согласно приоритетам, уточняют и выражают в виде сценариев. Дерево полезности способствует конкретизации требований по качеству и тем самым склоняет архитектора и представителей заказчика к их точному формулированию.
Корневым узлом дерева полезности является собственно полезность (utility), выражающая общую «добротность» системы. Атрибуты качества как компоненты полезности располагаются на втором уровне. Тс из них, которые обозначены в презентации коммерческих факторов во время второй операции, составляют
исходный (начальный) набор второго уровня. Чаще всего дочерними элементами полезности оказываются производительность, модифицируемость, безопасность, практичность и готовность, однако оценщикам ничто не мешает вводить новые имена. Иногда разные группы заинтересованных лиц по-разному называют одни и те же концепты (в частности, некоторые заинтересованные лица любят термин «удобство сопровождения»). В отдельных случаях они употребляют такие понятия, которые носят явную смысловую нагрузку только в их собственной субкультуре, однако в других областях почти не используются, — например, что-нибудь вроде «гибкорасширяемости» (flextensihility). Имена, вводимые заинтересованными лицами, адекватны лишь до тех пор, пока по мере уточнения на последующих уровнях они могут объяснить свое значение (см. врезку «Что в имени твоем?»).
На более низких уровнях, дочерних по отношению к каждому из атрибутов качества, располагаются их уточнения. К примеру, производительность можно разложить на «задержку данных» и «пропускную способность для транзакций». Это — очередной шаг на пути к уточнению задач по атрибутам до сценариев атрибутов качества, предполагающих возможность расстановки приоритетов и проведения анализа. В частности, задержка данных уточняется до «Снизить задержку сохранения в базе данных по заказчикам до 20 мс» и «Довести частоту кадров видеоизображения в реальном времени до 20 кадров в секунду» — и тот и другой варианты задержки являются значимыми в контексте системы.
При помощи механизма сценариев (см. главу 4) общие (и неоднозначные) формулировки желаемых атрибутов качества конкретизируются и приводятся в форму, позволяющую проводить тестирование. Из них формируются и систематизируются по выражаемым атрибутам качества листья дерева полезности. Шестичастная форма, предложенная в главе 4, в данном случае адаптируется к задачам оценки. Сценарии АТАМ состоят из трех частей: стимула (наблюдаемое в системе условие, породивший его источник и стимулируемый артефакт системы), среды (все происходящее в данный момент времени) и реакции (реакция системы на стимул, выраженный в измеримой форме).
Теперь в нашем распоряжении есть вполне осязаемые сведения, исходя из которых архитектуру можно оценивать. Собственно говоря, все аналитические операции в рамках АТАМ предполагают единовременный выбор одного сценария и проверку степени реакции на него (реализации) со стороны архитектуры. Подробнее об этом мы поговорим применительно к следующей операции.
Некоторые сценарии выражают несколько атрибутов качества и, следовательно, размещаются на дереве сразу в нескольких местах. В этом, как правило, нет ничего страшного, однако, с другой стороны, руководитель группы оценки должен следить за теми сценариями, которые демонстрируют тенденцию к избыточному разрастанию, иначе их будет трудно анализировать. Пытайтесь разбивать сценарии на составляющие, выражающие относительно более мелкие проблемы.
Участники группы оценки должны не просто знать задачи, возложенные на архитектуру, но и осознавать их относительную значимость. На дереве полезности зачастую оказывается по 50 листьев-сценариев, на анализ которых во время совещания по оценке просто не хватает времени. Таким образом, составление дерева полезности одновременно способствует расстановке приоритетов. Решения о назначении сценариям приоритетов должны приниматься ответственными лицами согласованно. Иногда для этого вводится шкала приоритетов от 0 до 10,
в иных случаях вполне хватает относительных рангов: высокого, среднего и низкого. (Мы отдаем предпочтение второй методике: во-первых, она лучше приспособлена к разнородным группам, а во-вторых, по сравнению с присваиванием точных значений, занимает меньше времени.)
После этого в отношении сценариев проводится вторичная расстановка приоритетов — в этот раз на основе другого критерия. Архитектор ранжирует сценарии исходя из своих представлений о том, насколько проблематичным окажется реализация каждого из них в архитектуре. В данном случае, как и раньше, подходит схема «высокой/средней/низкой» сложности.
ЧТО В ИМЕНИ ТВОЕМ?
Изложенные в нашей книге методы оценки архитектуры предусматривают фиксацию атрибутов качества с помощью сценариев. Зачем это нужно? Дело в том, что сами по себе атрибуты качества слишком размыты, чтобы проводить на их основе аналитические действия.
С другой стороны, дерево полезности АТАМ систематизируется по именам атрибутов качества. Нет ли в этом противоречия? Нам не все равно, какие атрибуты качества заинтересованные лица сочтут наиболее важными. Они вольны называть атрибуты как угодно — если это способствует мыслительному процессу. К примеру, в табл. 11.5, приведенной ниже, разделены такие атрибуты, как «конфигурируемость» и «модульность»; у вас есть полное право возразить против такой формулировки — ведь оба указанных атрибута являются подвидами «модифицируемости», а значит, обозначить их следует как уточнения последнего. В принципе, мы с этим согласны. Но в данном случае, по мнению заинтересованных лиц, и тот и другой подвид в силу существенных различий заслуживали отдельных позиций на дереве полезности, и мы не стали с ними спорить. В конце концов, листы-сценарии на дереве полезности значительно важнее структуры ветвей.
Ситуация, при которой одни и те же имена атрибутов качества переходят из одной оценки в другую, встречается очень редко. То, что одна компания называет «удобством сопровождения», другая предпочитает именовать «взаимозаменяемостью». Иногда «переносимость» рассматривается как подвид модифицируемости, но во многих других случаях заинтересованные лица предпочитают трактовать эти атрибуты по отдельности. Надежность часто называют готовностью, и наоборот. Помимо всего прочего, нам приходилось сталкиваться с оригинальными именами атрибутов качества, смысл которых был понятен только сотрудникам конкретной организации, — примерами тому «развертываемость» и «продаваемость». Мы сначала не совсем поняли, что это значит, но, поскольку в АТАМ нет необходимости тратить ценное время на терминологические споры, никаких проблем не возникло. Реальное значение атрибутов выражается в сценариях. Самое главное — упомянутые термины были понятны заинтересованным лицам; исходя из этого они могли составить сценарии и тем самым сформулировать задачи, которые требовалось решить.
В одном из случаев оценки по методу АТАМ мы столкнулись с довольно оригинальными задачами компании-разработчика — они хотели привлечь новых способных сотрудников к работе в своем центральном офисе, который, на беду, находился в маленьком тихом городке на американском Среднем Западе. Исходя из этого коммерческого фактора они сформулировали архитектурную задачу — архитектура должна была опираться на современные программные разработки, которые, как предполагалось, заинтересуют новых специалистов.
Несмотря на то что атрибута качества под именем «lowa-bility» нет ни в одном стандартном перечне IEEE, ISO или ANSI, в нашей практике был случай, когда он нашел свое отражение на дереве полезности АТАМ и заставил специалистов основательно поразмыслить над тем, какие сценарии смогут выразить сформулированную в таком виде задачу.
-РСС
Теперь каждому сценарию соответствует упорядоченная пара наподобие (В,Высокий]), (В,С[редний]), (В,Н[изкий]) и т. д. Самые важные и сложные сценарии требуют выделения значительных временных ресурсов для проведения анализа, а оставшаяся часть будет просто фиксироваться. Сценариям, рассматриваемым
как несущественные (И,*) или легко реализуемые (*,Н), вряд ли будет уделяться слишком много внимания.
Продуктом составления дерева полезности является перечень сценариев с расставленными приоритетами, выступающий в качестве плана проведения оставшейся части оценки по методу АТАМ. Он сообщает участникам группы о том, на что имеет смысл потратить ограниченное время, — в частности, в каких случаях следует провести испытания архитектурных методик и рискованных решений. Дерево полезности помогает специалистам по оценке сориентироваться в архитектурных методиках, способных реализовать высокоприоритетные листы-сценарии.
К рассматриваемому периоду вся необходимая для проведения анализа информация должна быть выражена в табличной форме — в частности, речь идет об ожидаемых значимых атрибутах качества, реализуемых архитектурой и обусловливаемых коммерческими факторами (операция 2) и деревом полезности (операция 5), а также о самой архитектуре, зафиксированной в виде презентации (операция 3) и каталога применяемых методик (операция 4). Пример дерева полезности в табличной форме (без корневого узла) приводится в табл. 11.5.
Операция 6: анализ архитектурных методик
В рамках данной операции группа оценки по одному исследует сценарии с наивысшим приоритетом; архитектор при этом объясняет, каким образом они реализуются в архитектуре. Участники группы оценки — по большей части дознаватели — испытывают архитектурные методики, при помощи которых архитектор реализует каждый из сценариев. Параллельно группа документирует значимые архитек*?урные решения, устанавливает и каталогизирует рискованные и нерискованные решения, точки чувствительности и компромиссы. Если речь идет о хорошо изученной методике, участники группы расспрашивают архитектора о том, как ему удалось преодолеть ее известные недостатки и из чего он сделал вывод о ее адекватности. Тем самым они проверяют, подходит ли конкретная реализация методики для удовлетворения требований по конкретным атрибутам качества.
К примеру, на количество транзакций, которые база данных может обработать за одну секунду, влияет количество одновременных обращений к ней. Из этого следует, что по отношению к отклику, измеряемому транзакциями в секунду, распределение клиентов между серверами является точкой чувствительности. Если значение отклика при распределении становится неприемлемым, значит, мы имеем дело с рискованным решением. Если же архитектурное решение оказывается точкой чувствительности в отношении сразу нескольких атрибутов, его следует признать точкой компромисса.
В ходе критического анализа сценария следует обсуждать возможные риски, нерискованные решения, точки чувствительности и компромисса. Такие дискуссии, в свою очередь, иногда диктуют необходимость в проведении углубленного анализа. Определяющей здесь является позиция архитектора. Если, к примеру, архитектор оказывается не способен охарактеризовать количество клиентов или предложить выравнивание нагрузки путем распределения процессов между аппаратными устройствами, заниматься формированием сложных очередей или проводить частотно-монотонный анализ производительности не имеет смысла. Если же архитектор отвечает на эти вопросы, группа оценки должна провести хотя бы фрагментарный, поверхностный анализ с целью выявления недостатков принятых архитектурных решений в контексте реализации ими требований по атрибутам качества. Комплексный анализ здесь не требуется. Цель заключается в том, чтобы при помощи выявленной значимой архитектурной информации установить связь между принятыми архитектурными решениями и требованиями по атрибутам качества, которые предполагается удовлетворить.
Рис.
11.1. Пример анализа
архитектурной методики1
1Источник,
приводится по изданию [Clements
02а]
(адаптированная версия).
На рис. 11.1 изображена стандартная форма, предназначенная для фиксации результатов анализа архитектурной методики применительно к конкретному сценарию. Из него следует, что по результатам рассматриваемой операции участники группы оценки устанавливают ряд точек чувствительности и компромиссов, рискованные и нерискованные решения. Любые точки чувствительности и компромиссы потенциально рискованны. К моменту завершения оценки по методу АТАМ их необходимо занести в одну из двух категорий: рискованные и нерискованные. Рискованные и нерискованные решения, точки чувствительности и компромиссы — все они фиксируются в отдельных списках. Приведенные на рис. 11.1 обозначения R8, ТЗ, S4, N12 и т. д. — это указатели на соответствующие позиции в таких списках.
К моменту завершения рассматриваемой операции у всех участников группы оценки должно сложиться устойчивое представление о важнейших аспектах архитектуры в целом и о логическом обосновании основных проектных решений; кроме того, в их распоряжении должны быть списки рискованных и нерискованных решений, точек чувствительности и компромиссов.
Перерыв и начало второго этапа
На этом завершается первый этап. Группа оценки делает перерыв на одну-две недели, во время которого ее участники резюмируют полученные данные и в неформальной манере (как правило, по телефону) переговариваются с архитектором. При желании в этот период можно провести анализ дополнительных сценариев или уточнить неясные вопросы.
Второй этап начинается лишь тогда, когда, во-первых, к его проведению подготовятся ответственные за проект руководители, а во-вторых, вместе соберутся все заинтересованные лица. Все работы на этом этапе проводятся в присутствии многочисленных участников и расширенной группы заинтересованных лиц. Сначала для того чтобы заинтересованные лица получили представление о применяемом методе и своей в нем роли, резюмируются результаты первого этапа. Затем руководитель группы оценки воспроизводит результат операций со второй по шестую, озвучивает текущее состояние списка рисков, нерискованных решений, точек чувствительности и компромиссов. После этого, когда заинтересованные лица «догонят» процесс оценки, можно приступать к трем оставшимся операциям.
Операция 7: мозговой штурм и расстановка сценариев согласно приоритетам
Составление дерева полезности главным образом преследует целью воспроизвод- ство архитектурных мотивов по атрибутам качества с точки зрения архитектора и выбранных им путей реализации таковых. Мозговой штурм сценариев решает другую задачу — он выражает настроения, царящие среди заинтересованных лиц в условиях их наиболее широкого представительства. Наибольшая эффективность этой методики появляется в крупных группах, где она создает ситуацию стимулирования одних размышлений другими. Этот процесс благоприятствует взаимодействию заинтересованных лиц, поощряет творческую мысль и выражает коллективную позицию участников. Перечень сценариев, сформулированных методом
мозгового штурма, подлежит сравнению с перечнем, составленным согласно дереву полезности. Если эти два документа не противоречат друг другу, значит, намерения архитектора и ожидания заинтересованных лиц сходятся. Выявление новых значимых сценариев — это уже риск, свидетельствующий о рассогласовании целей заинтересованных лиц, с одной стороны, и архитектора — с другой.
Участники группы оценки на рассматриваемом этапе просят заинтересованных лиц озвучить сценарии, носящие операционно-смысловую нагрузку в контексте их индивидуальных ролей. Так, специалист по сопровождению, вероятно, сформулирует сценарии реализации модифицируемости, а пользователь в своем сценарии, скорее всего, сделает упор на ту или иную полезную функциональность или на удобство взаимодействия с системой.
Вполне допустимым на этом этапе следует считать возврат к тем сценариям дерева полезности, которые не были проанализированы ранее. Воссоздавая в ходе мозгового штурма те сценарии 5 и 6 операций, которым, по их мнению, не было уделено должного внимания, заинтересованные лица компенсируют недоработки.
После сбора сценариев следует операция по расстановке среди них приоритетов. Такая необходимость вызвана теми же факторами, которые обусловливают назначение приоритетов на дереве полезности, — участники группы оценки должны знать, чему следует уделить ограниченные временные ресурсы. Во-первых, заинтересованных лиц просят соединить воедино сценарии, которые, по их мнению, выражают один и тот же тип поведения или одну и ту же задачу по атрибуту качества. Затем путем голосования из числа получившихся сценариев выбираются наиболее важные. Каждому заинтересованному лицу предоставляется количество голосов, составляющее 30 % от общего числа сценариев3, после чего полученное число округляется. Так, если сценариев всего двадцать, каждое заинтересованное лицо получает по шесть голосов. Распоряжаться ими заинтересованное лицо может произвольно — если потребуется, оно отдаст все шесть голосов за один сценарий, или по одному голосу за'каждый из любых шести сценариев, или примет какое-либо промежуточное решение.
Голосование по сценариям проходит открыто; по нашему опыту, этот способ не только забавен — он способствует укреплению у участников чувства общности. После подсчета голосов руководитель группы оценки сортирует сценарии по количеству поданных голосов и выделяет из них те, за которые проголосовало заметно меньше заинтересованных лиц, чем за все остальные. Сценарии с наивысшими показателями утверждаются и впоследствии участвуют в дальнейших операциях. Так, к примеру, группа может взять на рассмотрение лишь пять сценариев, набравших наибольшее количество голосов.
Операция 8: анализ архитектурных методик
После выявления сценариев и их расстановки согласно приоритетам группа оценки инструктирует архитектора в процессе реализации наиболее ценных (см. операцию 7), с точки зрения заинтересованных лиц, сценариев. Архитектор должен
объяснить механизм воздействия значимых архитектурных решений на их реализацию. Лучше всего, если главным действующим лицом во время этой операции станет архитектор, объясняющий реализацию сценариев в контексте рассмотренных ранее архитектурных методик.
Действия, проводящиеся участниками группы оценки, схожи с теми, что требуется выполнить во время операции 6. Иначе говоря, они отображают недавно составленные сценарии с наивысшнм приоритетом на выявленные к настоящему моменту архитектурные артефакты.
Операция 9: презентация результатов
Наконец, информацию, собранную согласно методике АТАМ, необходимо резюмировать и еще раз изложить в присутствии заинтересованных лиц. Обычно подобного рода презентации организуются в форме устного отчета с показом слайдов, однако не исключается и вариант последующего предоставления заинтересованным лицам более подробного письменного отчета. Во время презентации руководитель группы оценки в очередной раз перечисляет этапы АТАМ и излагает собранную по результатам их выполнения информацию — в частности, коммерческий контекст, важнейшие требования, ограничения и архитектуру. Помимо прочего, в отчете должны быть отражены следующие моменты:
документированные архитектурные методики;
набор сценариев, сформулированных методом мозгового шторма, и их приоритеты;
дерево полезности;
выявленные риски;
установленные нерисковаиные решения;
найденные точки чувствительности и компромиссы.
В ходе оценки все эти моменты должны быть обнаружены, публично оглашены и письменно зафиксированы. Также во время рассматриваемой операции участники группы оценки, исходя из какой-либо значимой задачи или регулярно встречающегося недостатка, формулируют (на основе выявленных рискованных решений) магистральные риски. К примеру, совокупность рисков, связанных с недостаточной или устаревшей документацией, можно сгруппировать в рамках магистрального риска, декларирующего нехватку внимания к документации. Совокупность рисков, связанных с неспособностью системы функционировать в условиях разного рода аппаратных и/или программных отказов, формирует магистральный риск недостаточного внимания к резервированию или готовности.
Для каждого из установленных магистральных рисков группа определяет находящиеся под его воздействием коммерческие факторы (они должны были быть выявлены в ходе операции 2). Определение магистральных рисков и их связей с конкретными факторами замыкает процесс оценки, поскольку его конечные результаты соотносятся с первоначальной презентацией. Не менее важно, что оно раскрывает перед ответственными лицами суть установленных рисков. То, что руководитель ранее рассматривал как далекий от практического контекста технический вопрос, теперь со всей очевидностью предстает как угроза, лежащая в зоне его ответственности.
В табл. 11.3 отражены все девять операций АТАМ и показана степень их влияния на конечные продукты оценки по этой методике. обозначает операции, которые напрямую воздействуют на эти результаты, а «*» — операции, влияющие на них лишь косвенно.
Таблица 11.3. Коррелированные операции и продукты АТАМ’
a В ходе установления коммерческих факторов излагается первоначальное, наиболее общее описание атрибутов качества.
b Во время презентации коммерческих факторов допускается разглашение ранее выявленных или устойчивых рисков, которые в таком случае необходимо зафиксировать.
с В своей презентации архитектор может установить дополнительные риски.
d В своей презентации архитектор может выявить дополнительные точки чувствительности или компромиссы.
e Стандартные сопутствующие риски характерны для многих архитектурных методик.
f Многим архитектурным методикам свойственны стандартные сопутствующие варианты чувствительности и компромиссы между атрибутами качества.
f В ходе рассматриваемых аналитических операций возможно выявление новых архитектурных методик, не замеченных во время операции 4; в таком случае формулируются новые методико-ориен- тированные вопросы.
