Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Разработка требований к программному продукту. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
время и бюджет проекта уже потрачены разработчиками на решение «пустых» задач, а тестировщикамина подготовку «пустых» тестов.
Для исключения двусмысленности в понима-
Делаем!
нии требований к проекту команде разработчиков можно использовать один из следующих способов:
проводить совместные обсуждения требований с пользователями. Самостоятельный раздельный анализ текстов пользователями может не выявить двусмысленности
в понимании, поскольку без дополнительных комментариев читающего уточнить смысл прочитанного невозможно. По умолчанию пользователь может принять формулировку как свою по смыслу;
подготовить тесты для проверки требований, разработать и про- тестировать прототип. Анализ полученных результатов позволит вы­явить двусмысленность требований, если она есть.
7. Используемые термины при формулировании требований могут быть
источником их двусмысленности?
Зачастую в формулировках используются неоднозначные слова, предназначенные для подчеркивания двусмысленности в текстах, что снижает качество требований.
Нужно во всех документах, подготовленных
Делаем!
при разработке и использовании продукта проекта, применять термины в соответствии с их определе-
нием в словаре и свести к минимуму использование синонимов термина.
Выбрав термин, необходимо
указать его синонимы в словаре, чтобы заинтересованные лица могли точно связать этот термин с его синони­мами. При использовании местоимений нужно так строить предложе­ние, чтобы однозначно было понятно, какой термин заменяет местоиме­ние.
Неоднозначность текста возникает при употреблении наречий, та­ких как «эффективно», «удобно», «обычно», «универсально», «прием­лемо», «гибко» и
др. Требования, которые могут быть поняты неодно­значно из-за используемых терминов и наречий, будет трудно проверять на более поздних этапах разработки.
В приложении 1 приведены часто встречающиеся в формулировках требований неоднозначные слова и рекомендации по уменьшению дву­смысленности формулировок требований.
11
8. Как исключить неопределенность бизнес-правил
и условий, определяющих действия, описывая пограничные
значения в требованиях?
Рассмотрим на примере, как формулировка бизнес-правила создает неопределенность понимания описанных ситуаций и как можно снять неопределенность.
Покупка канцелярских принад-
Пример формулировки требования с неопреде­ленностью
лежностей на сумму до 100 рублей не требует одобрения. Покупка канцелярских принадлежностей на сумму от 100
до 500 рублей требует одобрения непосредственного начальника. Покупка канцеляр­ских принадлежностей на сумму от 500 рублей требует одобрения ди­ректора организации.
Использованные формулировки не дают
Делаем!
возможности определить, какое бизнес-пра­вило корректно применить, если сумма по­купки равна 100 или 500 рублям.
Предлоги «от и до», «свыше» и наречие «включительно» снимают
неопределенность
при описании пограничных значений в требованиях.
Покупка канцелярских принадлежно-
стей на сумму 100 рублей и менее не тре-
Новая формули­ровка требования в примере
бует одобрения; более 100 и до 500 руб­лей включительно требует одобрения непосредственного начальника. Покупка на сумму свыше 500 рублей требует одобрения директора.
9. Как поступать с требованиями, сформулированными
в негативной форме
в виде описания того, чего программный
продукт не должен делать?
Заинтересованные лица нередко формулируют свои требования в виде описания нежелательного поведения программного продукта. Причем, как показывает опыт, им легче предоставить свои требования в такой форме, чем в позитивной. Бывает, что при формулировании они также используют двойные и тройные отрицания, что усложняет
анализ
таких требований.
12
Что делать?
вать сложные для понимания и реализации
негативные требования в позитивном стиле. Требования должны описывать ограничения на поведение программ­ного продукта.
Рассмотрим пример такого требования.
Пользователь не должен иметь доступ к материалам сайта, если
он не прошел успешно процедуру регистрации или аутентификации.
В любом случае нужно переформулиро-
Требование легче воспринимается, если
его переформулировать без
использования двойного отрицания в позитивном стиле.
Пользователь получает доступ к материалам сайта после успеш-
ного выполнения процедуры регистрации или аутентификации.
10. Как обеспечить полноту набора требований в техническом задании?
В настоящее время нет способа досто-
Важно!
верно выяснить, что разработчики опреде­лили все требования к программному про­дукту в
данном проекте.
Выявление задач, которые пользователи смогут решать с помощью разрабатываемого программного продукта, а не его функций, позволяет не упустить функциональность. Использование моделей анализа спо­собствует обнаружению пропущенных требований.
Можно назвать несколько причин возник-
Причины неполноты требований
новения неполноты требований: частичное формулирование симметричных требований, представление требований со сложной логи­кой в текстовой форме, отказ
от формулиро-
вания отсутствующих исключений.
Пример 1. Симметричное требование
Пользователь должен иметь возможность сохранить частично заполненную форму-ан­кету в любой момент ручного ввода.
Замечания по формулировке требования:
требование, определяющее для пользователя возможность от-
крыть для завершения работы ранее сохраненную частично заполнен­ную форму-анкету, отсутствует в спецификации;
нет информации о проверке корректности введенных в форму-ан-
кету данных перед сохранением. Разработчикам нужно уточнить: воз­можно, что это пропущенное требование.
13
Что делать?
Во многих нередко встречающихся ситуа­циях уже наработаны варианты выбора. Например, при вводе данных (пример 1) часто
реализуется проверка корректности введенных данных; предоставля­ется базовый вариант заполнения или пустая форма по требованию пользователя; предлагаются рекомендации по заполнению; сохраняется частично заполненная форма; отмечаются обязательные для ввода дан­ные. Рекомендуется использовать накопленный опыт
возможных дей-
ствий в таких ситуациях.
При выборе последующих действий в сложных логических выраже­ниях нередко остаются неопределенными действия для некоторых зна­чений или условий.
«Если не выбран план Премиальныйи не
Пример 2. Сложная логика
предоставлено подтверждение страховки, то клиент должен автоматически получать план Базовый”».
Это требование ссылается на два двоич ных выбора, которые дают четыре возможных сочетания, но специфи­кация описывает только одно сочетание. Читатель вынужден думать, что в таких ситуациях система не должна предпринимать никаких дей­ствий. Это может быть верно, но лучше это сформулировать явно, а не подразумевать» [1, с. 254].
Для представления сложной логики мож-
Делаем!
но использовать таблицы и
деревья принятия
решений (см. приложение 8), что дает воз-
можность учесть все возможные варианты выбора.
Требование, определяющее действия при выполнении заданного условия, обязательно должно иметь «пару» – требование, определяю­щее действия в случае невыполнения условия.
Дополнительные примеры требований «до» и «после» приведены в приложении 2.
-
11. Нужно ли включать требования, которые определяют несущественные для
пользователя возможности?
Как правило, такие требования предлагают разработчики, считая, что новые возможности будут интересны и полезны пользователям. Лю­бые дополнительные возможности, предлагаемые разработчиками,
14
должны быть обсуждены и согласованы с заказчиком, потому что для реализации каждого требования тратятся время и деньги. Согласится ли на это заказчик?
В свою очередь, пользователи тоже могут предложить интересные или привычные им возможности, которые, по сути, не определяют вы­полнение ими профессиональных задач. Все предложения подобного рода должны быть
согласованы с заказчиком с учетом бюджета проекта
и сроков его исполнения.
Рассмотренные ситуации появления но-
Делаем!
вых требований, определяющих не обязатель-
ный дополнительный функционал, в случае их реализации расширяют первоначальные границы проекта. Для уменьшения числа дополнительных требований необходимо отслежи­вать их до источника появления. Это дает понимание, почему требова­ние включено в
техническое задание, и дает возможность принять обос-
нованное решение об исключении требования из технического задания.
12. К чему может привести неучет потребностей пропущенных групп пользователей?
Каждый программный продукт имеет группы очевидных пользова­телей. Пользователи одной группы работают чаще всего с некоторой ча­стью функционала продукта и имеют определенный уровень подго­товки
при работе с программным обеспечением. Потребности этих
пользователей изучаются и определяются прежде всего.
Важные для успеха проекта требования могут предложить сотруд­ники поддержки, у которых есть специфические функциональные и не­функциональные требования, и сотрудники, обеспечивающие передачу данных из унаследованных систем, а также сотрудники организаций, которые работают со стандартами различного назначения.
Важно не
пропустить требования всех заинтересованных лиц проекта.
Важно!
13. Какой уровень детализации требований можно считать достаточным в проекте?
Ответ на этот вопрос во многом зависит от опыта команды разработчиков. Уровень дета­лизации описания требований можно считать
15
достаточным, если члены команды могут продолжать работу над проек­том, используя последний вариант требований. В проектах гибкой раз­работки на первой итерации разрабатывают требования высокого уровня общности. Такой подход дает целостное представление о типах разрабатываемых требований, что во многом определяет успех проекта (см. вопрос 25).
Декомпозиция высокоуровневых требований
Делаем!
на требования более
низкого уровня общности
дает возможность определить конкретные дей­ствия для их реализации в проекте. Таким образом, требования должны быть настолько подробными и объяснимыми, чтобы было ясно, что де­лать для их реализации. Если пользователи в незначительной мере по разным причинам привлекаются к проверке качества требований и ре­зультатов тестирования продукта,
то следует включать больше деталей в описание требований на начальном этапе разработки, чтобы компен­сировать ограничение участия пользователей в проекте.
Высокий уровень детализации требований нужен в следующих случаях:
когда продукт разрабатывается для стороннего заказчика;  часть проектной работы будут выполнять специалисты других
компаний;
команда работает удаленно, совещания проводятся в
формате ве-
бинара, связь и обсуждения вопросов происходят в чате;
целью тестирования является определение степени реализации
требований в разработанном продукте;
требуется высокий уровень точности при оценке и управлении
рисками разрабатываемого программного продукта;
нужно отслеживать связи требований. Можно сократить объем деталей в требованиях в следующих случаях: если
продукт будет использоваться внутри организации;
пользователи и другие заинтересованные лица имеют возмож- ность активно работать вместе с членами команды над проектом в тече­ние всего жизненного цикла разработки;
члены команды разработчиков имеют необходимые знания в пред- метной области и ценный опыт успешного выполнения проектов;
новое приложение создается как
замена существующему продукту
или есть продукты с подобным функционалом;
будет использоваться пакетное решение.
16
14. Нужен ли единый уровень детализации в проектной документации?
Поскольку уровень детализации описа-
Делаем!
ния требований определяет возможность
продолжения работы по проекту на после­дующих этапах жизненного цикла, то разумно использовать следующее правило: использование одного уровня детализации не обязательно при описании всех требований в спецификации проекта. Поэтому необхо­димо выполнять следующее:
1)
с более высоким уровнем детализации описывать требования, ко-
торые относятся к областям повышенного риска;
2) с одним достаточным уровнем детализации описывать связанные
требования при описании функциональных требований.
15. Как определить достаточный уровень описания требований в проектной документации?
В определении достаточности уровня
Делаем!
детализации требований может помочь подготовка тестов для проверки правильно-
сти реализации
требований в проекте.
Описать требования таким образом,
Пример
чтобы можно было протестировать про­дукт с целью проверки реализации каж-
дого требования по отдельности.
Если для тестирования правильности реализации одного требова- ния будет достаточно нескольких взаимосвязанных тестов, то с боль­шой долей вероятности достаточный уровень детализации обеспечен.
Если для
тестирования правильности реализации одного требова­ния подготовлен целый набор многочисленных и разнообразных тестов, то, скорее всего, несколько требований объединены в одно требование. Вместо такого требования нужно сформулировать несколько простых требований. Например:
‒ комбинация клавиш Ctrl+S должна интерпретироваться как
«Сохранить файл»;
‒ комбинация клавиш Ctrl+P должна интерпретироваться как
«Печать файла»;
‒ продукт должен реагировать на команды редактирования, вве-
денные голосом.
17
Для проверки правильности реализации двух первых простых тре-
бований потребуется немного тестов.
Третье требование по форме можно отнести к простым требова­ниям, но на самом деле это крупное функциональное требование, ко­торое предполагает использование отдельного продукта по распозна­ванию речи. Подобное требование имеет высокий уровень общности. На начальном этапе формулирования
требований полезно использо­вать такой уровень общности для определения областей, в которых нужно формулировать требования. Проверка правильности реализа­ции третьего требования потребует много тестов. Данное требование необходимо детализировать.
16. Какие способы представления требований в спецификации проекта уместны?
Зачастую предпочтение текстовой формы при формулировании тре-
бований приводит к затруднениям в понимании требований
заинтересо­ванными лицами. Удачно выбранная и использованная форма представ­ления требований значительно снижает риски неоднозначного понима­ния требований и их пропуска.
Кроме текстовой формы рекомендуется ис-
Делаем!
пользовать таблицы, графики, списки, матема-
тические формулы, фотографии, видеоклипы и наглядные модели анализа. Различные формы представления одного и того же материала ускоряют, упрощают и углубляют
его понимание.
17. Какие характеристики определяют качество списка требований в спецификации проекта?
Качественные отдельные требования являются обязательным, но не­достаточным условием разработки качественного списка требований к продукту. Список требований в спецификации проекта считается ка­чественным, если для него характерны полнота, согласованность, моди­фицируемость и отслеживаемость.
Полнота как качество списка требований
Полнота
предполагает
, что все требования и данные
проекта определены и задокументированы.
На практике реализовать такой подход в полной мере не удается из­за ограниченности ресурсов на разработку проекта. Все требования не
18
документируются, так как еще есть предполагаемые и недостающие требования. Правильная реализация предполагаемых требований имеет больше рисков, чем реализация явно сформулированных требований. Недостающих требований пока нет, поэтому их сложно определить на этой стадии разработки проекта.
Согласованность требования можно
Согласованность
обеспечить в ходе проработки его связей с требованиями различных типов (одно-
типных требований,
бизнес-требований, пользовательских и системных
требований).
Несогласованность требований проявится на более поздних этапах разработки продукта, т. е. избежать согласования требований в проекте практически невозможно. Устранить несогласованность требований проще, если известны заинтересованные лица или члены команды раз­работчиков проекта, которые являются авторами требования.
Существенным препятствием для обнаружения несогласованности требований является их рассредоточенность
по разным документам, например, они могут быть в описании границ проекта и в спецификации требований.
Любое требование можно изменить на
Модифици­руемость
любом этапе проектной деятельности. Важно вести историю их изменения, особенно после первого утверждения требований.
Проработка связей между требованиями на этапе их разработки дает возможность быстро, корректно и одновременно внести изменения в группу требований, связанных с изменяемым требованием. Возмож­ность модификации напрямую зависит от принятой системы именова­ния требований уникальными именами и реализации способа формули­рования требований, который обеспечивает уникальность каждого тре­бования по содержанию.
Следует учитывать, что уместные для лучшего понимания повторы требований в разных частях документации приводят к усложнению управления
требованиями. В частности, необходимо обеспечивать из­менение повторяющегося требования в нескольких местах, а значит, нужно фиксировать подобную информацию.
Задача внесения изменений в требования с учетом взаимозависимо­стей между ними решается современными системами управления тре­бованиями за счет использования перекрестных ссылок. В этом случае
19
изменения нужно вносить только в единственном списке требований в спецификации.
В проекте продуктивно определять
Отслеживаемость
связи требования с первоисточником
или с объектами, которые порождает требование (другие требования, программный код, элементы дизайна), а также тесты, позволяющие проверить правильность реализации тре­бования. На практике не обязательно определять все возможные типы связей требований.
Отслеживаемые
требования должны иметь уникальные идентифика­торы. Для отслеживания лучше использовать программные продукты для управления требованиями. Следует отметить, что для успешного обеспечения отслеживаемости важно не объединять несколько требова­ний в одно.
В условиях ограниченных ресурсов проекта невозможно создать идеальную спецификацию, в которой отдельные требования одно­значно понимаются всеми заинтересованными лицами проекта и
список требований в спецификации обладает всеми атрибутами качества. Тем не менее знание перечисленных свойств требований способствует раз­работке более качественных требований, что в конечном итоге приведет к разработке более качественного продукта.
18. Когда можно считать сбор требований законченным?
Сбор требований можно закончить, если их список, по мнению спе-
циалистов, достаточен для
продолжения работы над проектом на следу­ющем этапе жизненного цикла продукта. Можно также говорить об окончании работ по формированию списка требований проекта, если достигнута запланированная оценка качества отдельных требований и всего списка требований в целом.
Следует признать, что однозначных признаков завершения работы
над требованиями нет. В технологии гибкой разработки над
требовани­ями работают при разработке каждой запланированной версии про­дукта, изменяя некоторые требования и внося новые.
Ориентир для завершения работы
Тем не менее при решении вопроса о завершении работы над требованиями можно ориентироваться на состояние ис­точников информации о требованиях:
20
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]