КАТЕГОРИИ: Архитектура-(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) |
Приемы оперирования требованиями
Представленные ниже приемы есть не что иное, как конкретные деятельности системы проектных деятельностей, которые можно рассматривать в качестве методических средств проекта. Для разного уровня сложности проекта они имеют различное значение, часто некоторые из них не выделяются явно. Но в действительно полезном проекте соответствующие им процессы должны выполняться всегда. Важно, чтобы менеджер проекта осознавал это и точно указывал, кто, когда, как и в какой форме обеспечивает получение результатов использования приемов оперирования требованиями. Прием 1. Анализ проблем Данный вид анализа проводится для понимания проблем прикладной области, чтобы выявить первичные нужды будущих пользователей из конгломерата пожеланий. Его цель — предложить решение на самом высоком уровне. В ходе анализа выделяются реальные проблемы. Ограничиваются возможные решения, которые определяются как прикладными, так и техническими следствиями принимаемых решений. Иными словами, происходит оценка пожеланий с точки зрения их осуществимости в проекте. Если это необходимо, для анализируемого проекта строятся модели оценки прибыли (убытков) от вложений в разработку данной системы (business-case анализ). Результат анализа проблем — ранжированный по степени важности список потребностей пользователей с перечислением следствий решения данной проблемы. Из содержания обсуждаемого приема видно, что применение его целесообразно при уточнении заказа на разработку, а значит, он относится к деятельности менеджера, выполняемой на этапах исследования и анализа осуществляемости. Получаемые сведения позволяют эффективно выполнять два следующих приема, первый из которых связывается с предварительным анализом проектного задания, а второй используется в течение всего периода итеративного развития проекта. В ходе развития проекта анализ проблем уточняется. В этом принимают участие сотрудники, занимающие ключевые роли. Обязательно в процессе анализа проблем является участие заказчика или представителей заказчика, представляющих пользовательскую деятельность достаточно глубоко. Прием 2. Понимание пользовательских потребностей Для понимания пользовательских потребностей очень полезно, а зачастую просто необходимо осуществить типизацию требований (см. лекц 12). Типы требований определяются их группировкой по тем или иным признакам. Чем более развита система, чем больше функций она реализует, чем шире круг ее пользователей, тем больше типов требований приходится рассматривать в проекте. Идентификация типов требований позволяет разработчикам проекта организованно подходить к решению задачи удовлетворения требований к системе. Использование различных типов требований помогает классифицировать запросы к системе по типам реакции на них. Как следствие, облегчается взаимопонимание в коллективе и между разработчиками и заказчиком. В обычном проекте всегда представлен ряд типов требований, которые могут быть разложены на составляющие типы, относящиеся к разным аспектам разработки. Так, коммерческие правила или требования к оформлению экрана можно рассматривать как два типа требований высокого уровня (Тэкон и Тинт из лекции 12), из которых извлекаются типы потребности пользователей, требований к пользовательским средствам, требований к изделию с точки зрения его продажи и др. В свою очередь, требования к проверке программного изделия извлекаются из требований уровня системы и разбиваются на ряд специфичных проверочных процедур. При появлении у проекта значительного числа первичных требований, исходящих из различных источников, без типизации требований проекта просто не обойтись. Типизация требований — это обычный прием, с помощью которого облегчается работа с большими объемами информации за счет определения структуры. Система типов требований для данного проекта — результат применения этого приема. Первоночальное применение обсуждаемого приема связывается с предпроектной работой менеджера, в результате которой складывается предварительное представление о системе типов требований проекта. Б дальнейшем эта система уточняется. Всякий раз, когда разработчики сталкиваются с требованием, следует понять, какие проблемы обусловили его появление и, как следствие, какое место оно занимает в системе типов требований данного проекта и, если это необходимо, как оно влияет на систему в целом. Таким образом, понимание пользовательских проблем как прием оперирования требований не связан с каким бы то ни было конкретным этапом. Прием 3. Преодоление сложности многофункциональности требований Большой объем информации, определяемой требованиями, — не единственная сложность с которой приходится сталкиваться при разработке проекта. Не меньшую сложность представляет то, что различные источники требований характеризуют будущее или развиваемое программное изделие с разных сторон. Это свойство называется многофункциональностью требований. Было бы неразумно ожидать от разработчиков полной компетентности во всех областях деятельности, которые затрагиваются в связи с разработкой и использованием системы. Как следствие, комплексный анализ многофункциональности невозможен без привлечения (в разных качествах) всех доступных инициаторов работ или их представителей. Важно понять, кто кроме заказчика может предъявлять требования, как получить доступ к этим источникам и как извлекать из них информацию. Если заказчик в состоянии аккумулировать требования всех инициаторов работ, т.е. берет на себя эту задачу, то можно говорить о предпосылках использования для проекта методологии экстремального программирования [3]. Но, к сожалению, это условие выполняется не столь часто, как хотелось бы, а потому для выявления перспектив проекта и с целью согласования разноплановых требований к разрабатываемому изделию определяется специальная группа, представляющая интересы инициаторов работ. Это может быть реальная группа лиц, если у компании есть возможность их содержать, эпизодически собирающийся или дистанционно общающийся коллектив или даже просто ролевой кластер, заполняемый сотрудниками проекта. Примерный состав ролей такой группы следующий: • представитель заказчика — отслеживает и представляет интересы • представитель пользователя — отражает взгляд на систему со стороны пользователя; • инвестор — предъявляет требования тех, кто вкладывает средства в разработку; • менеджер по продажам — предъявляет требования со стороны распространения программного изделия; • покупатель — предъявляет требования с точки зрения покупательского спроса. Деятельность группы инициаторов работ организуется независимо от проектной деятельности, но с учетом конструктивных контактов и согласований с разработчиками. Результат деятельности группы — экспертиза требований: расстановка приоритетов и проверка значимости с различных внешних по отношению к проекту точек зрения. Взаимодействие с группой инициаторов работ со стороны исполнителей проекта осуществляется сотрудниками, выполняющими следующие роли: • менеджер проекта; • эксперт предметной области; • специалист по пользовательскому интерфейсу; • архитектор и проектировщики подсистем в качестве специалистов, • тестировщики, ответственные за проверку работоспособности системы с точки зрения ее соответствия требованиям. Для организации хранения информации о работе с требованиями привлекаются разработчик информационной поддержки и библиотекарь проекта. Первый из них определяет виды доступа к информации: запросы к базе данных проекта, сохраняющей все сведения о требованиях, второй осуществляет администрирование этой базы. Если такая группа не предполагается, то ее роли выполняют разработчики, указанные выше в качестве тех, кто взаимодействует с инициаторами работ. Даже если система строится для использования в рамках компании, полезно воспользоваться опытом тех, кто работал с конечными пользователями, кто может быть экспертом в области распространения подобных систем. Если разработка ведется для продажи, в круг инициаторов работ привлекаются маркетологи, которые выявляют запросы рынка, предъявляемые к системам данного класса, рыночную конъюнктуру и т.д. За счет этого уже в начале проекта можно выявить значительное число факторов, определяющих требования. Методы, с помощью которых достигается понимание истинных пользовательских потребностей, включают интервью и мозговые штурмы, опросы и анкетирование, изучение прототипов. В результате комплексного изучения получаемых таким путем сведений должен быть составлен перечень типизированных требований, описанных текстуально и/или графически, порядок которого соответствует приоритетности требований для данной разработки. Прием 4. Оперирование многомерными требованиями Этот прием носит служебный характер, так как не связывается с конкретными этапами. Его назначение — организация помощи при отборе требований для различных целей. Задача состоит в том, чтобы отбирать требования быстро, а главное — точно, чтобы ни при каких обстоятельствах ни одно из нужных требований не было упущено. Типизация требований — одно из средств, облегчающих решение задачи отбора, но его явно недостаточно, поскольку параметры отбора не сводятся к одному измерению, фиксированному типизацией. Другим примером параметра отбора служит приоритетность требований, отбираемых для реализации в рамках итерации. Единственного значения параметра для этого не хватает: разные инициаторы работ могут выставлять разные приоритеты одним и тем же требованиям. Следовательно, и здесь нужно уметь одновременно оперировать разными параметрами отбора. Тип требований характеризуется своими атрибутами, и каждое требование имеет различные значения этих атрибутов. К примеру, с] требованием могут быть связаны его приоритет или причина появления, оно может быть соотнесено с теми, кто должен заниматься его реализацией (рабочие группы, ответственные за сетевые взаимодействия, управление поведением системы, интерфейс и др.). Характеризует требование уровень трудоемкости реализации, наконец, срок или итерация, когда планируется реализация. Анализ требований зависит от подобных характеристик, которые называются измерениями атрибутного набора требования. При выполнении анализа полезно иметь следующие возможности: • Отбор требований, которые обладают заданными значениями не • Сортировка требований по основным измерениям, указывающим • Ручная корректировка набора требований, отобранных в соответствии с заданным критерием. • Объединение, пересечение и дополнение отобранных наборов требований. • Проверка свойств требования (набора требований), формулируемых как предикаты над значениями атрибутов. По существу, здесь выделены те средства отбора, которые являются стандартными при работе с реляционными базами данных. Следует, однако, отметить и специфику оперирования требованиями по сравнению с общими реляционными средствами отбора. Содержание требования — это, как правило, текстовый материал (возможно, с графическими включениями), атрибуты которого определяются при его обработке, а потому при оперировании требованиями необходимо явное предъявление содержания в качестве основного параметра, назначение которого не сводится лишь к идентификационным функциям. Анализ текста требования может сказать больше, чем формальные значения атрибутов. Оперирование требованиями — один из основных методов анализа. Эта работа входит в обязанности архитектора, проектировщика подсистем и, естественно, менеджера проекта. В каждой из указанных ролей круг требований, доступных разработчику, должен быть ограничен тем, что необходимо в данный момент. Соответственно определяются права доступа к требованиям для разных разработчиков проекта. Организация хранения и предъявления требований в проекте есть функция разработчика информационной поддержки и библиотекаря проекта с разделением обязанностей, соответствующим статусу этих ролей в проекте (разработчик информационной поддержки специфицирует необходимые виды запросов, а библиотекарь занимается администрированием). Результатом данного приема является группа требований, выделенная в процессе оперирования для тех или иных целей. Подобные группы являются исходным или результирующим материалом при выполнении всех последующих приемов анализа требований, а потому оперирование многомерными требованиями можно рассматривать в качестве технического средства этих приемов.
Прием 5. Определение системы Определить систему означает трансформировать потребности пользователей и перечень требований в описание разрабатываемой системы. Сначала достигаются общие соглашения о том, как понимаются требования и их приоритетность, оценка затрат на разработку и потребностей в ресурсах, какие рисковые ситуации вероятны и стратегия управления рисками. Оцениваются границы применения будущей системы. Определяются соглашения о разработке: виды рабочих продуктов, правила их построения, проверки и т.д. Фиксируются внешние рабочие продукты и способы их использования в проекте: применение ранее полученных результатов, использование их как прототипов и др. Форма представления определения системы может быть различной: тексты, схемы, гипертекстовая структура и др. Важно, чтобы она была понятной для непосредственного восприятия без привлечения дополнительных материалов. Важный принцип определения системы: перед составлением формализованного модельного описания следует сначала представить его на естественном языке. Если сначала строится формальная модель, то появляется тенденция подмены описания системных решений описанием самой модели, и потому комментарий на естественном языке не достигает цели. Точное и согласованное определение системы рассматривается в качестве результата обсуждаемого приема. Наиболее интенсивно он используется при подготовке проекта. Однако в ходе его развития первоначальное определение, скорее всего, будет модифицироваться, так что к данному приему придется возвращаться для корректировок после каждой итерации. Эти возвраты приурочиваются к этапам оценки предыдущей и анализа последующей итераций и выполняются в период их перекрытия. Главными действующими лицами при определении системы являются менеджер и архитектор проекта. В их обязанности входит выпуск соответствующих документов, для подготовки которых при необходимости привлекаются другие сотрудники проекта.
Прием 6. Управление областью применимости системы Управление областью применимости — это решение следующей задачи: выбрать приоритетное с точки зрения инициаторов работ направление развития проекта в условиях имеющихся на данный момент ресурсов (время, кадры, финансы). Это ключевая задача, определяющая успешность проекта в целом. Она решается непрерывно в течение всего итеративного наращивания, которое разбивает область применимости системы на небольшие, доступные для управления части (стоит сопоставить это положение с обсуждением мотивации методологических стратегий в лекции 5). Среди разработчиков основным действующим лицом, определяющим выработку целесообразных вариантов области применимости системы, является эксперт предметной области. В его компетенции находится решение вопросов, не требующих согласования с руководством компании и с заказчиком. Подготовленные варианты предъявляются менеджеру, который определяет оптимальный вариант развития проекта из числа предложенных с учетом всех обстоятельств, в частности ресурсных потребностей и ограничений, допустимого уровня риска и приоритетности задач для пользователя. Такое разделение функций позволяет охватить все возможные пути развития проекта и на этой основе выбирать направление. Методы определения области применимости сводятся к достижению соглашений посредством обсуждения атрибутов требований с целью выявления реальных возможностей проекта. В качестве основного критерия эффективности расширения области в том или ином направлении выступает приоритетность задач. Очень много неудач выполнения заказов связано именно с тем, что разработчики в первую очередь пытаются решать интересные исследовательские задачи, игнорируя текущие потребности заказчика, пользователей, задачи, которые смягчают риски и т.д. В то же время хорошим стилем ведения проекта является противоположная позиция разработчиков: удовлетворение ожиданий заказчика на всех этапах, причем не в качестве ответов на настойчивые запросы, а с упреждением, предсказанием того, что действительно требуется. Результатом деятельности по управлению областью применимости системы является список требований, которые планируется удовлетворить в ходе выполнения текущей и последующих итераций и для проекта в целом. Этот список должен быть согласован с проектным техническим заданием, как по составу, так и по срокам. Если выясняется расхождение целесообразного направления развития проекта с тем, что зафиксировано в техническом задании, то это повод для организации переговоров с целью корректировки задания. Прием 7. Детализированное определение системы Детализированное определение системы нужно для того, чтобы инициаторы работ могли понять, какое изделие предлагается, и решить, соглашаться с этим предложением или нет. Оно нужно не только по отношению к функциональности, но также для выработки соглашений о порядке реализации требований, о практичности и надежности системы, о ее производительности, о поддержке и удобствах применения. Распространенная ошибка — уверенность в том, что сложное для разработки нуждается в сложном описании. Это приводит к запутанным объяснениям целей проекта и системы, которые, возможно, и производят впечатление, но не помогают потенциальным пользователям. Необходимо приложить значительные усилия, чтобы добиться понятности детализированного определения системы в описывающем ее документе. Быть может, потребуется несколько такого рода документов, предназначенных ля различных пользователей. Другая составляющая детализированного определения системы — то описание того, как система должна тестироваться. План тестирования определение того, что тестируется, дают представление том, как варьируются заявленные возможности системы. Детализированное определение системы должно быть представлено такой форме, которая одинаково понятна как заказчикам, так и разработчикам. Практика показывает, что использование языка заказчика для ^писания требований к системе в виде ее детализированного определения 1аиболее эффективно для взаимопонимания. Такое представление используется разработчиками в качестве исходной информации при составлении спецификаций конструируемой системы. Детализированное определение постоянно развивается по мере продвижения проекта. В начале каждой итерации, во время ее этапа текущего анализа в рамках детализированного определения фиксируются требования, которые планируется реализовать в течение ближайших этапов. Таким образом, детализированное определение рассматривается в качестве постановки задач итерации. В ходе выполнения этапа оценки итерации детализированное определение уточняется — описывается, что удалось предложить в качестве очередного релиза. Таким образом, детализированное определение становится документом для пользователей. Именно в это время возможно пояснение различных вариантов детализированного определения для разных пользователей. На этапе оценки появляется дополнительная информация о том, сак, по мнению инициатора работ, должна быть дополнена система. Она используется как для управления областью применимости (см. предыдущий пункт), так и в качестве исходного материала для модификации (расширения) текущей версии детализированного определения в ходе этапа анализа следующей итерации. Таким образом, в качестве результата обсуждаемого приема рассматривается определение системы в виде описаний ее возможностей, пригодных для предоставления пользователям очередного релиза. Составление детализированного определения системы — задача, которую решают проектировщики системы. Подготавливаемые на этапе анализа и уточняемые в ходе оценки материалы согласовываются с заказчиком. Вариант 1 1. Какие варианты работы с требованиями нужно отразить в □ требование или группа требований обрабатываются до начала □ специально отражать в модели эту ситуацию не нужно □ требование или группа требований обрабатываются до начала □ требование или группа требований поступают, когда работы О требование или группа требований поступают, когда работы итерации завершились и релиз системы передан в эксплуатацию 2. В чем состоит анализ проблем? □ он выявляет проблемы реализации требований к проектируемой программной системе □ он нацелен на определение того, какие средства должны быть □ он выявляет первичные нужды пользователей □ он нацелен на определение ранжированного по степени важности списка потребностей пользователей с перечислением □ он направлен на выявление реальных проблем пользователей, 3. Что такое многомерность требований? □ необходимость рассмотрения атрибутного набора требований □ противоречивость атрибутов требований □ фактическое содержание требования отражает несколько пожеланий к системе □ несводимость параметров отбора требований к одному измерению (т.е. к одному показателю) □ различные характеристики требования, рассматриваемые сов Вариант 2 1. Укажите возможные варианты результата анализа □ требование отклоняется □ требование замораживается до следующего проекта □ требование принимается к реализации на текущей итерации □ требование откладывается до одной из следующих итераций □ требование условно принимается к реализации на текущей 2. Прием «понимание пользовательских потребностей» □ выяснения средств программной системы, которые необходимы □ упорядочения требований по степени актуальности для □ того, чтобы построить систему типов требований для данного □ определения требований, реализуемых в рамках ближайшей □ определения требований, реализуемых в рамках ближайшей и 3. Что включает в себя определение системы? □ соглашения о разработке: виды рабочих продуктов, правила их □ внешние рабочие продукты и способы их использования в □ общие соглашения о том, как понимаются требования и из приоритетность, оценка затрат на разработку и ресурсных потребностей, какие рисковые ситуации вероятны и стратегия □ оценка границ применимости проектируемой системы характеристика требуемого коллектива исполнителей
Вариант 3 1. Какие действия не рассматриваются как этапы обработки □ обработка поступления требования или совместной группы □ принятие решения о переходе к анализу П расщепление линии жизненного цикла, переход к анализу □ принятие решения об анализируемых требованиях □ планирование будущей итерации реализации 2. Что означает многофункциональность требований? □ определение границ применимости разрабатываемой программной системы □ различные требования предполагают разные варианты приме □ существует множество типов пользователей с разной потребностью в разрабатываемой системе □ различные инициаторы работ характеризуют будущее или развиваемое программное изделие с разных сторон □ требования фиксируют множество функций, которые должны 3. Какая задача решается при управлении областью применимости системы? □ ранжирование инициаторов работ с точки зрения предоставления ими требований, наиболее важных для реализации системы □ ранжирование требований к программной системе по степени □ выбрать приоритетное с точки зрения инициаторов работ на □ составление формализованных описаний требований к программной системе, пригодных для передачи разработчикам □ составление точного описания системы, согласованного со
Дата добавления: 2014-01-06; Просмотров: 1449; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |