Глава 11 1 страница
Метод анализа компромиссных архитектурных решений — комплексный подход к оценке архитектуры (в соавторстве с Марком Кляйном) 06 услугах, которые нам оказывают другие люди, мы судим по тому, насколько существенными они кажутся им, а на действительную их ценность как-то не обращаем внимания. Фридрих Нище Настоящая глава представляет собой обзор метода анализа компромиссных архитектурных решений (Architecture Tradeoff Analysis Method, АТАМ) — комплексной универсальной методики оценки программной архитектуры. В соответствии со своим названием этот метод обнаруживает степень реализации в архитектуре тех или иных задач по качеству, а также (исходя из допущения о том, что любое архитектурное решение влияет сразу на несколько задач по качеству) механизм их взаимодействия — другими словами, их взаимозаменяемость. Оценить архитектуру крупной системы весьма не просто. Во-первых, чем больше система, тем масштабнее ее архитектура и тем протяженнее промежуток времени, за который о ней можно составить некое представление. Во-вторых, согласно Ницше (см. эпиграф) и архитектурно-экономическому циклу (Architecture Business Cycle, ABC), любая компьютерная система призвана решать коммерческие задачи; таким образом, и ходе оценки необходимо устанавливать связи между этими задачами и техническими решениями. Наконец, крупные системы, как правило, характеризуются многочисленностью заинтересованных лиц, а для того чтобы за ограниченный промежуток времени проанализировать их позиции, процесс оценки ш'обходпмо внимательно контролировать. Итак, из всего вышесказанного понят но, что основной проблемой в контексте оценки архитектуры является ограниченность по времени. Основное назначение АТАМ состоит в том, чтобы выявить коммерческие задачи, поставленные в контексте разработки системы и проектирования архитектуры. Вкупе с участием заинтересованных лиц это помогает специалистам по оценке сфокусироваться на тех элементах архитектуры, которые играют первостепенную роль для реализации упомянутых задач. В этой главе мы перечислим этапы АТАМ и рассмотрим их с функциональной точки зрения. Для иллюстрации теоретического материала мы также приведем конкретный пример употребления АТАМ, основанный на нашем собственном опыте. 11.1. Участники АТАМ Ниже перечислены группы специалистов, участие и сотрудничество которых является необходимым условием проведения процесса АТАМ. 1. Группа оценки. Специалисты из этой группы не должны участвовать в разработке оцениваемой архитектуры. Как правило, численность группы составляет 3-5 человек. Каждому из них назначается ряд ролей, которые он должен исполнять в период оценки. (Описание этих ролей, а также желательные характеристики каждой из них приводятся в табл. 11.1.) В некоторых случаях группа оценки являет собой постоянное подразделение, регулярно проводящее действия по оценке вариантов архитектуры; в иных ситуациях ее участники подбираются из числа специалистов с серьезными знаниями в области архитектуры для выполнения конкретной задачи. Иногда группы оценки и разработки набираются из сотрудников одной компании, однако не исключается вариант заказа оценки у третьей стороны. В любом случае это должны быть компетентные, объективные люди без предубеждений и корыстных целей. 2. Лица, ответственные за проект. Полномочия участников этой группы позволяют им выполнять для проекта представительские функции и принимать решения о внесении в него изменений. Как правило, в их число входят руководитель проекта, а также (при наличии такового) заказчик, финансирующий разработку. Кроме того, речь идет об архитекторе — ведь, согласно основному принципу оценки архитектуры, архитектор должен принимать в этом процессе самое деятельное участие. Наконец, одним из представителей проекта обычно является специалист, ответственный за проведение оценки; даже если ои не наделеи такими полномочиями, участие его в рассматриваемой группе обязательно. 3. Заинтересованные в архитектуре лица. Заинтересованным лицам, естественно, хочется, чтобы архитектура не отклонялась от проекта. Способность этих людей выполнять свои задачи напрямую зависит от того, в какой степени архитектура реализует модифицируемость, безопасность, высокую надежность и прочие атрибуты качества. В число заинтересованных лиц входят разработчики, тестировщики, сборщики, специалисты по сопровождению, инженеры по эффективности, пользователи, конструкторы систем, взаимодействующих с рассматриваемой системой, и многие другие. В ходе оценки от них требуется сформулировать конкретные задачи по реализации атрибутов качества, при выполнении которых систему можно будет признать удачной. Нормальным следует считать участие в процессе оценки 12-15 заинтересованных лиц.
11.2. Результаты проведения оценки по методу АТАМ Минимальный набор результатов процесса оценки на основе АТАМ выглядит следующим образом. ♦ Компактная презептацггя архитектуры. Согласно распространенному мнению, документация архитектуры не может обойтись без объектной модели, списка интерфейсов и их сигнатур или какого-нибудь другого объемистого перечня. Одно из требований, предъявляемых к документации методом АТАМ, напротив, подразумевает возможность ее составления за один час; получившаяся в результате архитектурная презентация должна быть, таким образом, краткой и понятной (хотя как раз понятной она бывает не всегда). ♦ Формулировка коммерческих задач. Часто бывает так, что отдельные участники группы разработчиков впервые узнают о коммерческих задачах именно из презентации АТАМ. ♦ Требования по качеству в форме совокупности сценариев. Коммерческие задачи подразумевают формулирование требовании по качеству Некоторые из них фиксируются в форме сценариев. ♦ Отображение apxuтектурных решений на требования по качеству. Архитектурные решения можно интерпретировать исходя из тех атрибутов качества, реализации которых они способствуют или препятствуют. Для каждого анализируемого по методу АТАМ сценария реализации атрибута качества определяются те архитектурные решения, которые помогают его реализовать. ♦ Ряд установленных точек чувствительности и компромиссов. Так называются архитектурные решения, оказывающие заметное воздействие на один или несколько атрибутов качества. К примеру, решение о введении резервной базы данных, очевидно, относится к числу архитектурных, — оказывая положительное воздействие на надежность, в отношении этого атрибута качества оно является точкой чувствительности. С другой стороны, на сопровождение резервной базы данных расходуются системные peqypcbi, а значит, это решение отрицательно сказывается на производительности. Следовательно, оно одновременно является точкой компромисса между надежностью и производительностью. Признать его рискованным или, напротив, не связанным с рисками, можно только исходя из оценки стоимости производительности в контексте предъявляемых к данной архитектуре требований по атрибутам качества. ♦ Набор рискованных и нерискованиыхрешепий. Согласно АТАМ, рискованное решение — это архитектурное решение, которое может привести к нежелательным последствиям, затрудняющим реализацию сформулированных требований по атрибутам качества. Нерискованным решением, соответственно, называется архитектурное решение, которое по результатам анализа признано безопасным. Установленные риски составляют основу плана смягчения архитектурных рисков. ♦ Набор магистраяьных рисков. После проведения анализа группа оценки должна проверить все установленные риски на наличие магистральных рисков, свидетельствующих о систематически встречающихся в архитектуре слабых местах, недостатках архитектурного процесса или некомпетентности группы архитекторов. Если не разобраться с такого рода рисками, они способны поставить под сомнение реализацию коммерческих задач проекта. На основе перечисленных результатов специалисты составляют окончательный письменный отчет, в котором конспектируется сам метод, резюмируются сделанные выводы, фиксируются сценарии и материалы их анализа, систематизируются полученные данные. Есть также ряд вторичных результатов оценки. Презентации архитектуры зачастую создаются конкретно для проведения оценки и в этом случае но качеству превосходят все составленные ранее материалы. Такого рода дополнительная документация, переживая этап оценки, становится одной из составляющих наследия проекта. Кроме того, сценарии, создаваемые участниками оценки, как выразители коммерческих задач и требований к архитектуре можно задействовать в качестве справочного руководства при развитии архитектуры. Наконец, результаты анализа, изложенные в сводном отчете, служат логическим обоснованием определенных архитектурных решений — как принятых, так и не принятых. Итак, вторичные результаты осязаемы и перечислимы. Следует перечислить и неосязаемые результаты оценки на основе АТАМ. Среди них — формирование в среде заинтересованных лиц чувства товарищества, открытие между ними и архитектором каналов взаимодействия, а также общее, распространяющееся на всех участников повышение компетентности в вопросах данной архитектуры, осознание ее преимуществ и недостатков. Не поддающиеся измерению, эти результаты не менее важиы, чем все остальные, а их воздействие зачастую оказывается наиболее продолжительным. 11.3. Этапы ATAM Операции оценки по методу АТАМ распадаются на четыре этапа. На нулевом этапе — «Установление партнерских отношений и подготовка» — руководители группы оценки проводят неофициальные совещания с основными ответственными за проект лицами и прорабатывают подробности предстоящей работы. Представители проекта посвящают специалистов по оценке в суть проекта, тем самым повышая квалификацию некоторых из них. Эти две группы принимают согласованные логистические решения: где и когда встречаться, кто предоставит лекционные плакаты и с кого пончики и кофе. Кроме того, они согласовывают предварительный перечень заинтересованных лиц (перечисляя их не по именам, а по ролям) и устанавливают сроки и получателей сводного отчета. Они также организуют снабжение специалистов по оценке архитектурной документацией — если, конечно, таковая существует и может оказаться полезной. Наконец, руководитель группы оценки объясняет руководителю проекта и архитектору, какую информацию им следует предоставить на первом этапе, и при необходимости помогает им составить соответствующие презентации.
На первом и втором этапах проводится непосредственно оценка — все погружены в аналитические операции. К началу этих этапов все участники группы оценки должны ознакомиться с документацией по архитектуре, получить достаточное представление о системе, знать задействованные архитектурные методики и ориентироваться в первостепенных атрибутах качества. На первом этапе, намереваясь приступить к сбору и анализу информации, участники группы оценки встречаются с лицами, ответственными за проект (как правило, встреча длится весь день). На втором этапе к специалистам присоединяются заинтересованные в архитектуре лица, и в течение примерно двух дней они проводят аналитические мероприятия совместно. Первой и второй этапы подробно расписаны в следующем разделе. Третий этап занимает доработка — группа оценки составляет в письменном виде и предоставляет получателям сводный отчет. По сути, участники занимаются самопроверкой и вносят в результаты своей работы разного рода коррективы. Назаключительном совещании группы обсуждаются успехи и трудности. Участники изучают отчеты, выданные им на первом и втором этапах, и заслушивают выступление наблюдателя за процессом. По сути, они занимаются поиском путей усовершенствования по части исполнения своих ролей, с тем чтобы проводить последующие оценки с меньшими усилиями и с более высокой эффективностью. Действия, выполненные в период оценки участниками трех групп, тщательно регистрируются. По прошествии нескольких месяцев руководитель группы должен связаться с заказчиком оценки, для того чтобы оценить долгосрочные результаты ее проведения и сравнить издержки с выгодами. Четыре этапа АТАМ, их участники и приблизительный график представлены в табл. 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), выражающая общую «добротность» системы. Атрибуты качества как компоненты полезности располагаются на втором уровне. Тс из них, которые обозначены в презентации коммерческих факторов во время второй операции, составляют
|