КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Затраты 4 страница
Эти и другие методики составили концептуальную основу, исходя из которой, приступив к анализу сценариев, участники группы оценки задавали испытательные вопросы. Операция 5: генерация дерева полезности атрибутов качества Дерево полезности, составленное во время проверки системы Nightingale по методу АТАМ, представлено в табл. 11.5. Обратите внимание — на нем присутствуют все атрибуты качества, установленные в ходе операции 2; более того, они уточнены до одного или нескольких конкретных значений. Некоторые уточнения атрибутов качества остались без связанных сценариев. В этом нет ничего необычного и страшного. Иногда люди измышляют разумное с первого Всгляда уточнение, но, столкнувшись с необходимостью его конкрстизации в контексте собственной системы, обнаруживают его несостоятельность. Для того чтобы все участники группы оценки могли постоянно сверяться с деревом полезности, секретарь по результатам записывал имя каждого атрибута качества на отдельный лист лекционного плаката и наклеивал его на стену. Впоследствии, по мере уточнения каждого отдельного атрибута и его конкретизации сценариями, секретарь фиксировал всю необходимую информацию на этом и наклеенных ниже лекционных плакатах1. 1 Кроме того, мы пробовали составлять деревья полезности к оперативном режиме — заполняли таблицы, подобные табл. 11.5, и проецировали их непосредственно с компьютера. При таком подходе дерево легче составлять и корректировать, однако доступным для просмотра участниками остается содержание одного-сдинственного экрана. В то же время обзор дерева во всей его полноте стимулирует умственную деятельность и помогает находить бреши. Программные системы для совместной работы будто бы идеально подходят для подобных ситуации, однако по простоте, надежности и экономичности им сложно тягаться с лекционными плакатами и клейкой лентой.
Сценарии в табл. 11.5 сопровождаются указанием приоритетов, распределенных участниками из числа ответственных лиц. В каждой упорядоченной паре символ до запятой обозначает значимость соответствующей возможности; символ после запятой отражает оценку архитектора относительно сложности ее реализации. Обратите внимание — одни сценарии без труда формулируются исходя из ранее полученных данных, в других отсутствуют стимулы, в третьих — реакция. Неточности в спецификациях сценариев на данном этапе допустимы — главное, чтобы заинтересованные лица понимали, о чем идет речь. Если сценарий отбирается для проведения анализа, его, конечно, следует снабдить явными стимулом и реакцией. Операция 6: анализ архитектурных методик Сценарии с приоритетом (В,В) — иначе говоря, отличающиеся высокой значимостью и трудностью реализации и в связи с этим заслуживающие особого внимания в ходе анализа — на дереве полезности отсутствуют. По этой причине мы перешли к поиску сценариев с приоритетом (В,С). Оказалось, что они в изобилии представлены в группе атрибута «модульность» и связаны с заменой в составе системы разного рода коробочных продуктов. Несмотря на то что эти продукты были введены в систему целенаправленно, в соответствии со стратегией снижения рисков разработки для руководителей проекта это решение вылилось в нескончаемую головную боль — ведь все вело к тому, что система (а значит, и ее покупатели) подпадет под влияние многочисленных производителей. Следовательно, в их собственных интересах было реализовать гибкость архитектуры, которая позволила бы без труда заменять коробочные продукты. Вместе с архитектором мы проработали несколько сценариев. На каждый ушло в среднем полчаса[4]. Поскольку все они оказались связаны с внесением изменений, мы резонно поинтересовались их диапазоном и воздействием. Выяснили мы следующее. ♦ Замена одной коммерческой базы данных другой, приобретенной у нового производителя, обещала стать трудным занятием. В масштабе всей системы использовался один из диалектов SQL (надмножество SQL по стандарту ANSI), специфичный для производителя текущей базы данных, а также ряд не менее специализированных инструментов и компонентов. По мнению архитектора, замена базы данных была бы крайне маловероятна, в связи с чем он не брал в расчет высокую стоимость перехода на новую систему. Впрочем, руководитель проекта не выказал столь же твердой уверенности в невозможности развития событий по рассматриваемому сценарию. Таким образом, мы зафиксировали первый установленный на основе анализа архитектурный риск: «Поскольку в системе Nightingale используются специфичные для конкретного производителя инструменты и компоненты, а также диалект SQL не поддерживаемый или несовместимый с базами данных других производителей, произвести замену базы данных будет очень сложно и отнюдь не дешево — весь процесс займет несколько человеко-лет». Архитектурное решение о связывании архитектуры с конкретной базой данных мы обозначили как точку чувствительности с отрицательным воздействием на модифицируемость. ♦ Заменить одну операционную систему другой было бы довольно просто. На стороне сервера операционная система была выделена на отдельный уровень, что способствовало локализации изменений. С другой стороны, подсистема OLTM напрямую зависела от средств аутентификации NT, а значит, от новой операционной системы требовались аналогичные свойства. Что касается DSRGM, то здесь все зависимости от операционной системы были исключены на уровне исходного кода — дело в том, что разработка этой подсистемы проводилась на платформе Windows NT, а размещена она была на платформе UNIX; отсюда очевидный вывод о ее полной независимости от операционной системы. В связи с этим мы зафиксировали первое нерискованное решение: «Поскольку зависимости от операционной системы в подсистемах OLTM и DSRGM локализованы или исключены, введение новой операционной системы вместо старой не предполагает сколько-нибудь серьезных модификаций». Инкапсуляцию зависимостей от операционной системы мы отметили как точку чувствительности с положительным воздействием на модифицируемость. ♦ Мы установили ряд проблем, связанных с внесением изменений в процессор правил. Считать такой сценарий надуманным нет никаких оснований — как мы выяснили, текущий процессор не отличался высокими характеристиками производительности и удобства сопровождения. Вероятнее всего, впоследствии его бы просто исключили, а правила реализовали бы средствами C++. Поскольку прямое построение цепочек правил не разрешалось (что было вполне разумно и объяснялось желанием отложить соответствующее решение на более поздний период), правила в силу их процедурного характера можно было скомпилировать. Подобная модификация, скорее всего, привела бы к нескольким серьезным последствиям. - Повышение производительности (хотя бесспорного решения эта проблема на тот момент еще не получила). - Устранение необходимости в обучении сотрудников языку правил и объяснению им принципа действия процессора. - Группе разработчиков не пришлось бы создавать полезные правила и среду моделирования. - Правила, возможно, «закопались» бы в код C++ и сплелись с функциональным кодом, не имеющим прямого отношения к правилам; отсюда — затруднения по части их обнаружения и сопровождения. - Возможность размещения в правилах ссылок на несуществующие объекты, вероятно, удалось бы исключить. В современном варианте эта возможность, обусловливавшая возникновение ошибок, существовала и имела серьезные шансы, просочившись через тестирование, попасть в производственную систему. Путем составления правил средствами C++ подобные ошибки можно было бы устранить уже в период компиляции.
В расчете на подобные изменения можно было написать генератор правил в виде кода C++. Против такого решения свидетельствовали существенный объем работ и их сложность, остававшаяся неизвестной. Итак, для рассмотренного сценария мы зафиксировали риск, связанный с трудностью исключения процессора правил. Сам факт применения этого процессора (в противоположность коду C++) мы обозначили как точку компромисса в архитектуре — ведь упрощение разработки и внесения изменений в базу правил достигалось за счет снижения производительности, необходимости в подготовке персонала и усложнения тестирования. И так далее. Впоследствии, в рамках того же сценария, мы проанализировали замену коммерческого блока веб-хостинга, коммерческого бухгалтерского пакета, механизма автоматизации документооборота и операционной системы Solaris на платформах Sun, На этом совещание, проводившееся в рамках первого этапа, завершилось. Нам удалось зафиксировать шесть точек чувствительности, одну точку компромисса, четыре рискованных и пять нерискованных решений. Этап 2: оценка (продолжение) На втором этапе, выдержав двухнедельный перерыв, мы вновь созвали совещание. Во время этого перерыва участники группы оценки занимались составлением сводного отчета — точнее, тех его частей, которые уже можно было закрывать. В частности, они описали коммерческие факторы и архитектуру согласно ее презентации, привели список методик, изобразили дерево полезности и изложили результаты анализа, проведенного на первом этапе. Кроме того, мы несколько раз созванивались с архитектором, пытаясь уточнить некоторые технические вопросы, и с руководителем проекта, который должен был обеспечить адекватное представительство заинтересованных лиц во время проведения второго этапа. На втором этапе, помимо ответственных лиц, участвовавших в проведении предыдущего этапа, присутствовали десять новых заинтересованных лиц: разработчики, специалисты но сопровождению, представители первого заказчика и два конечных пользователя. В первую очередь, специально для новых участников, мы повторили первую операцию (описание метода АТЛМ), а для того чтобы привести знания всех присутствующих к единому знаменателю, рассказали о результатах первого этапа. После этого мы приступили к выполнению операций 7, 8 и 9.
Операция 7: мозговой штурм и расстановка сценариев согласно приоритетам Заинтересованные лица поработали на славу — всего в ходе этой операции о*ни огласили 72 сценария. Более десятка из них были отражены на листьях дерева полезности, которое мы составили во время операции 5, но на первом этапе до их анализа дело не дошло. Это вполне нормально, даже полезно. Таким способом заинтересованные лица давачи нам понять, что некоторые сценарии заслуживают большего внимания, чем то, которое они получили на первом этапе. В табл. 11.6 приводятся наиболее интересные из всех сценариев, зафиксированных в ходе операции 7. Одни сформулированы на редкость удачно, иные, напротив. не слишком очевидны. Учитывая стихийный характер мозгового штурма, предполагающего активное участие всех присутствующих, в этом нет ничего страшного. Чем тратить ценное время на вылизывание каждого сценария, мы предпочитаем записывать высказываемые соображения сразу, как только они появляются. Если какой-то сценарий перед голосованием или анализом требуется откорректировать, мы с готовностью это сделаем (естественно, не без участия того человека, который его предложил).
После того как мы провели слияние нескольких почти идентичных сценариев, заинтересованные лица проголосовали. Каждому из них мы выделили по 22 голоса (30 % от 72 сценариев плюс округление до ближайшего целого числа), которые следовало подавать в два захода. Подсчитав голоса, мы вместе с участниками группы оценки на протяжении получаса дополняли составленное во время операции 5 дерево полезности новыми высокоприоритетными сценариями, которых набралось всего около десятка. Все сценарии с высоким приоритетом, выявленные в ходе операции 7, мы без лишних раздумий поместили на дерево полезности в виде новых листьев существующих ветвей. Этим мы хотели показать, что представления архитектора и заинтересованных лиц о важнейших атрибутах качества оказались сходными. Разобравшись с согласованием отдельных сценариев па дереве полезности, мы приступили к анализу тех из них, которые получили наибольшее число голосов.
Операция 8: анализ архитектурных методик В ходе операции 8 мы дополнительно провели анализ семи сценариев; следует заметить, что по меркам АТАМ это довольно много. Учитывая ограниченность объема книги, мы рассмотрим результаты одного-елинственного, 15-го сценария (см. соответствующую врезку).
Операция 9: презентация результатов Девятая операция предполагает проведение одно- или двухчасовой презентации с изложением всех достигнутых результатов и полученных выводов. В начале презентации необходимо показать слушателям набор стандартных слайдов с основными тезисами метода; кроме того, следует подготовить несколько чистых слайдов-шаблонов, на которые впоследствии нужно будет нанести сводные данные по коммерческим факторам и архитектуре, перечень методик, дерево полезности, сведения об анализе сценариев и список результатов его проведения. На втором этапе участники группы оценки должны по вечерам составлять сводки достигнутых за день результатов. Кроме того, при составлении графика второго этапа перед операцией 9 следует выделить дополнительное время, для того чтобы участники смогли встретиться и завершить работу над пакетом результатов. Помимо рискованных и нерискованных решений, точек чувствительности и компромиссов, участники группы должны выявить магистральные риски — факторы, систематически оказывающие на архитектуру негативное воздействие. Это единственный вид результатов, с которыми участники еще не имели дела (и, соответственно, не помогали их устанавливать). Значение каждого из них мы стараемся излагать так, чтобы его понял заказчик, — в частности, мы указываем на те коммерческие факторы, реализацию которых те или иные магистральные риски ставят под сомнение. СЦЕНАРИЙ 15: ПРИ УСТАНОВКЕ СИСТЕМЫ NIGHTINGALE В БОЛЬНИЦЕ НЕОБХОДИМО ПРЕОБРАЗОВАТЬ ЕЕ СУЩЕСТВУЮЩУЮ БАЗУ ДАННЫХ Нет ничего удивительного в том, что проработке этого сценария архитектор уделил особое внимание — ведь от его реализации зависел успех системы в целом. Процедуру, ранее документированную, он изобразил для нас на белой доске. Как часто бывает, анализ этого сценария помог нам лучше разобраться в архитектуре. По понятным причинам архитектор не стал останавливаться на проблеме преобразования базы данных во время презентации (операция 3), посчитав эту информацию служебной. Результаты анализа процесса миграции убедили участников группы оценки в том, что процедура тщательно продумана, ее преимущества известны, а ограничения обоснованны. Тому, что архитектор не упомянул об этом процессе во время презентации (операция 3), мы нисколько не удивились. Неожиданность заключалась в другом: в пакете документации, который мы получили и изучили еще до начала первого этапа, о нем также ничего не было сказано. В ответ на наше недоумение архитектор признал, что процедура еще не документирована, тем самым предоставив нам повод зафиксировать риск. Впрочем, она компенсировалась нерискованным решением, которое мы сформулировали так: «Архитектура предусматривает простые и эффективные средства преобразования и миграции данных, значительно облегчающие размещение системы Nightingale». Магистральных рисков для Nightingale мы выделили всего три. 1. Избыточная зависимость от конкретных коробочных продуктов. В связи с этим мы сообщили о трудностях замены базы данных и исключения процессора правил» а также о зависимости от старой и (вероятно) более не поддерживаемой версии уровня переносимости базы данных. Данный магистральный риск представляет угрозу для коммерческого фактора удобства сопровождения. 2. Неполная определенность процесса восстановления после ошибок. Недостаточный уровень осведомленности заказчика о доступных инструментальных средствах. Некоторые сценарии касались обнаружения и устранения ошибок в базе данных. Несмотря на то что соответствующие процедуры были предусмотрены в архитектуре, о некоторых из них архитекторы и проектировщики задумывались впервые. Г1о словам представителей первого заказчика, процедур, направленных на исправление ошибок, у них не было (ни собственных, ни полученных от компании-разработчика). Этот магистральный риск ставил под сомнение реализацию коммерческого фактора практичности и обеспечения работы предприятия заказчика. 3. Вопросы, связанные с документацией. Документация проекта Nightingale оказалась в неудовлетворительном состоянии. К осознанию этого недостатка группа оценки пришла уже во время проводившегося перед первым этапом совещания, а сценарии, проанализированные на втором этапе, только утвердили нас в таком мнении. Несмотря на наличие ряда объемных и детальных элементов документации (построенной, в частности, средствами UML и модели Rose), ни вступительной части, ни обзора архитектуры составлено не было — а ведь без этого невозможно проводить подготовку персонала, внедрять в проект новых специалистов, сопровождать систему, координировать дальнейшую разработку и тестирование. Недокументированными также оставались обширная база правил, регламентировавшая поведение Nightingale, а также процедура преобразования и миграции данных. В отсутствие этой документации первый заказчик, уже готовый приобрести систему, не смог бы справиться с ее сопровождением; таким образом, риск распространялся на один из основных коммерческих факторов разработки Nightingale — обеспечение функционирования предприятия заказчика. Этап 3: доработка Осязаемым продуктом оценки по методу ЛТЛМ является сводный отчет с перечнем рискованных и нерискованиых решений, точек чувствительности и точек компромиссов. Помимо этого, в него включается каталог применяемых архитектурных методик, дерево полезности, сценарии, сформулированные методом мозгового штурма, и описание анализа всех отобранных сценариев. Наконец, в сводном отчете указываются магистральные риски, которые удалось выявить участникам группы оценки, и коммерческие факторы, реализацию которых они ставят под сомнение. Как и при презентации результатов, при составлении отчета мы воспользовались стандартным шаблоном, многие из разделов которого уже были заполнены (в частности, раздел, посвященный описанию метода АТЛМ); остальные нам лишь предстояло заполнить. Отдельные части сводного отчета — в частности, дерево полезности и результаты анализа операции 6 — мы подготовили во время перерыва между первым и вторым этапами. Все эти подготовительные действия привели к положительному результату: если раньше на подготовку сводного отчета для заказчика оценки АТАМ уходило около двух недель, то в рассматриваемом случае нам удалось составить качественный, комплексный отчет приблизительно за два дня. 11.5. Заключение АТАМ зарекомендовал себя как надежный метод оценки программной архитектуры. Он подразумевает формулирование (в форме сценариев) ответственными за проект и заинтересованными лицами точного перечня требований по атрибутам качества и исследование архитектурных решений, значимых в контексте реализации всех высокоприоритетных сценариев. Путем разделения такого рода решений на рискованные и нерискованные оценщикам удается выявить проблемные участки рассматриваемой архитектуры.
Дата добавления: 2015-04-25; Просмотров: 485; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |