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

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

.pdf
Скачиваний:
0
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
11. Афанасьев Ф. Управление проектами в стиле ДРАЙВ / Ф. Афанасьев. – Издательские решения, 2017. – 102 с. – URL: http://izhmmc.ru/wp-content/ uploads/2020/02/управление-проектами-в-стиле-драйв.pdf (дата обращения:
10.03.2023).
12. Redmine как универсальный инструмент для управления проектами. – URL: https://www.redmineup.com/pages/ru/blog/redmine-project-management-system (дата обращения: 10.03.2023).
13. Печенкин Г. Чего я хочу от разработки инструментов разработки требо­ваний. Затычки, костыли и грабли СУТ / Г. Печенкин. – 2014. – URL: https://habr.com/ru/company/sqalab/blog/217737 (дата обращения: 10.03.2023).
14. Инструменты управления требованиями: что это такое, бесплатные ин­струменты и приложения. – 2022. – URL: https://businessyield.com/ru/ management/requirement-management-tools (дата обращения: 10.03.2023).
15. Как писать техническое задание?! – 2022. – URL: https://tdocs.su/1349 (дата обращения: 10.03.2023).
51
ПРИЛОЖЕНИЯ
Приложение 1
СПОСОБЫ УТОЧНЕНИЯ НЕОДНОЗНАЧНЫХ СЛОВ
В ТРЕБОВАНИЯХ
Ниже приведен список часто используемых при формулировании требований неоднозначных слов и способы их уточнения. Более полный список размещен в работе [1, с. 250].
п/п
1 Приемлемый, адек-
2 И/или Указать точно, что имеется в виду – «и» или
3 Практически выпол-
4 По меньшей мере,
5 Наилучший, самый
6 Между, от Х до Y Указать, входят ли конечные точки в диапазон 7 Зависит от Определить природу зависимости. Например,
Неоднозначные
слова
ватный
нимо
как минимум, не бо­лее чем, не должно превышать
большой, большин­ство
Способы уточнения
Определить, что понимается под приемлемо­стью и как система может это оценить
«или», чтобы не заставлять читателя гадать Указать дату, к которой задача должна быть
выполнена Указать минимальное и максимальное значения
Указать, какой уровень требуется, а также ми­нимальный приемлемый уровень
обеспечивает ли другая система ввод данных в проектируемую систему, надо ли установить другое ПО до запуска проектируемой системы и зависит ли проектируемая система от другой при выполнении определенных расчетов
52
Продолжение таблицы
п/п
Неоднозначные
слова
8 Эффективный
9 Быстрый, скорый
10
Гибкий, универсаль­ный
11
Улучшенный, луч­ший, более быст­рый, более каче­ственный
12
Включает; включает в себя, но не ограни­чен этим; такой как, в частности
13
В большинстве слу­чаев, обычно, как правило, практиче­ски всегда
14 Не обязательно
15
Обычно, в идеаль­ном варианте
16
Возможно, жела­тельно, должно
17
Разумный, при необ­ходимости, когда уместно, по возмож­ности
Способы уточнения
Определить, насколько эффективно проектиру­емая система будет использовать ресурсы, насколько быстро она выполняет определенные операции и как быстро пользователи смогут с ее помощью выполнять определенные задачи
Указать минимальное приемлемое время, за которое проектируемая система выполнит определенное действие
Описать способы адаптации проектируемой системы при изменении условий работы, плат­формы или бизнес-правил
Определить количественно, насколько лучше или быстрее должны стать показатели в опре­деленной функциональной области или аспект качества
Перечислить все возможные значения или функции, а не только примеры. Указать, где можно посмотреть исчерпывающий список. Иначе разные читатели могут по-разному пони­мать, что должен содержать полный список и где он должен заканчиваться
Уточнить, когда указанные условия или сцена­рии неприемлемы и что должно происходить в таком случае. Описать, как пользователь или проектируемая система должны различать раз­ные случаи
Указать, кто или что делает выбор: пользова­тель, разработчик, проектируемая система
Описать внештатные или неидеальные условия и как проектируемая система должна вести себя в таких ситуациях
Уточнить, возможно или невозможно
Четко объяснить, как разработчик или пользо­ватель должен оценивать разумность и умест­ность
53
Окончание таблицы
п/п
18 Цельный, прозрач-
19 Несколько, некото-
20 Не следует Лучше формулировать требования в позитив-
21 Дружественный,
Неоднозначные
слова
ный, корректный
рые, много, не­много, множествен­ный
простой, легкий
Способы уточнения
Четко объяснить, как разработчик или пользо­ватель должен оценивать цельность и прозрач­ность. Выразить ожидания пользователя, при­меняя характеристики продукта, которые можно наблюдать
Указать сколько или задать минимальную и максимальную границу диапазона
ной форме, описывая, что именно проектируе­мая система будет делать
Описать системные характеристики, которые будут отвечать потребностям пользователей и их ожиданиям, касающимся легкости и про­стоты использования проектируемой системы
54
Приложение 2
ПРИМЕРЫ ТРЕБОВАНИЙ ДО И ПОСЛЕ КОРРЕКТИРОВКИ
Ниже приведены примеры первоначальных формулировок требова­ний и эти же требования после корректировки. Примеры взяты из ра­боты [1]. В указателях на примеры дополнительно отмечается первона­чальная (до) и усовершенствованная (после) версия требования.
Любой из приведенных примеров при желании можно усовершен­ствовать. Нужно уметь остановить процесс улучшения формулировок требований, когда станет ясно
, что в существующем виде набор требо­ваний в спецификации проекта позволяет перейти к следующей стадии разработки при приемлемом уровне риска.
Пример 1 – «До»
Диспетчер фоновых задач должен предоставлять сообщения о со­стоянии через регулярные интервалы, каждый из которых составляет не менее 60 секунд.
Такая формулировка вызывает много вопросов.
Что
понимается под сообщениями о состоянии?
При каких условиях и как именно они поставляются пользова- телю?
Как долго они должны отображаться на экране?
Достаточно ли отображения на протяжении половины секунды?
Этот список вопросов далеко не полон. Есть и другие проблемы: например, продолжительность временного интервала не сформулиро­вана точно, а
слово «каждый» только вносит дополнительную неяс-
ность.
Надежным способом оценки качества требования является получе­ние информации от пользователя о его понимании смысла данного тре­бования. Если пользователя не удовлетворяет это требование, то его нужно переформулировать.
Можно продолжить список вопросов к требованию.
В этом примере интервал должен быть «не менее 60
секунд»; та­ким образом, если сообщение будет появляться раз в год, это нор­мально?
Если промежуток не должен превышать 60 секунд, то не будет ли
интервал, составляющий одну миллисекунду, слишком коротким?
55
Следует отметить, что вопросы не выходят за рамки первоначаль­ного требования, но очевидно, что потребности пользователя задоку­ментированы нечетко.
Приведем вариант исправленного требования после получения до­полнительной информации от пользователя.
Пример 1 – «После»
Диспетчер фоновых задач (ДФЗ) должен отображать сообщения о состоянии в определенной области пользовательского интерфейса.
ДФЗ должен обновлять сообщения
каждые 60 5 секунд после за-
пуска фоновой задачи.
Сообщения должны оставаться видимыми все время, пока рабо­тает фоновая задача.
Если взаимодействие с фоновой задачей возможно, то ДФЗ должен отображать процент выполнения фоновой задачи.
По завершении фоновой задачи ДФЗ должен отобразить сообще­ние «Выполнено».
Если фоновая задача «зависла»
, то ДФЗ должен отобразить соот-
ветствующее сообщение.
При переписывании несовершенного требования его формулировка становится длиннее из-за необходимости включения отсутствовавшей информации. Разделение требования на несколько дочерних разумно, потому что для каждого понадобится отдельный тест, кроме того, так их проще отслеживать.
Скорее всего, будут также дополнительные сообщения о состоянии, отображаемые ДФЗ
. Если они задокументированы в другом месте, например в спецификации интерфейса, то нужно добавить эту инфор­мацию по ссылке, не дублируя ее.
Перечисление сообщений в таблице условий позволит предоставить информацию более лаконично, чем при написании множественных функциональных требований.
В измененном требовании не указан способ отображения сообще­ния о состоянии (!) – указано просто «
в определенной области пользо-
вательского интерфейса». Такая формулировка делает размещение
сообщений задачей дизайна, что допустимо в большинстве ситуаций. Если сейчас определить место отображения сообщений, то разработ­чики воспримут ее как ограничение. Излишние подробности дизайна
56
ограничивают разработчиков, кроме того, в этом случае вряд ли можно рассчитывать на оптимальный продукт.
Однако представьте, что мы добавляем эту функциональность в су­ществующее приложение, у которого уже есть строка состояния, где пользователи привыкли видеть важные сообщения. Для единообразия имеет смысл предусмотреть условие, что сообщения о состоянии ДФЗ должны отображаться
в строке состояния, т. е. можно специально нало-
жить ограничение дизайна, имея на то серьезную причину.
Пример 2 – «До»
Если возможно, номера счетов следовало бы проверять по списку корпоративных счетов.
Такая формулировка вызывает вопросы. Что означает «если воз­можно»? Значит ли это «технически осуществимо» (вопрос для разра­ботчика) или «когда
доступен основной список счетов»?
Если нет уверенности, что можно реализовать функцию, то нужно отметить, что проблема еще не решена. После проверки возможности реализации функции станет понятно, что нужно либо удалить пометку, либо требование.
В требовании также не описаны действия, которые необходимо реа­лизовать в продукте, если проверка пройдет успешно или окончится
не­удачей. В приложении 1 приведен список неточных слов и даны реко­мендации, как откорректировать требование, чтобы проработать неточ­ность в его формулировке.
Пример 2 – «После»
В момент ввода номера счета продукт должен отобразить сооб­щение об ошибке, если этого номера счета нет в основном корпоратив­ном списке счетов.
Для полноты
списка требований нужно проверить наличие связан­ного требования с условием исключения: основной список счетов недо­ступен во время проверки.
Пример 3 – «До»
Тестер должен позволять пользователю легко подключать допол­нительные компоненты, в том числе импульсный генератор, вольт­метр, измеритель емкости и нестандартные тестовые платы.
57
В примере сформулировано требование к продукту со встроенным программным обеспечением, которое используется для тестирования различных типов измерительных приборов.
Слово «легко» относится к неясным терминам. Нужно заменить это слово так, чтобы реализацию требования в продукте можно было про­верить. Уточнение «в том числе» не приводит к пониманию, полный ли это список
внешних устройств, которые должны подключаться к испы­тательному устройству. Такие альтернативные требования содержат не­которые преднамеренные ограничения дизайна.
Пример 3 – «После»
1. Тестер должен содержать USB-порт, чтобы пользователь смог
подключить любой измерительный прибор, у которого есть USB- разъем.
2. USB-порт должен быть установлен на передней панели для того,
чтобы квалифицированный оператор
мог подключить измерительный
прибор за 10 секунд или менее.
Бизнес-аналитик не должен по собственной инициативе переписы­вать требования так, чтобы они налагали ограничения дизайна. Вместо этого нужно стремиться обнаруживать несовершенные требования и об­суждать их с соответствующими заинтересованными лицами для уточ­нения требований.
Пример 4
Система должна проверять наличие
несоответствий данных сче-
тов между журналом активных счетов и архивом диспетчера счетов. Логика, применяемая для создания этих сравнений, должна основы­ваться на логике существующего средства проверки соответствия. Иначе говоря, код не нужно создавать с нуля. В качестве основы раз­работчики должны использовать код существующего средства про­верки соответствия. Однако нужно
добавить дополнительную логику определения базы данных, являющейся полномочным источником. Но­вая функциональность будет включать запись данных в таблицы, ука­зывающие, как и где разрешать несоответствия. Кроме того, код дол­жен проверять наличие исключительных сценариев по базе данных средств безопасности. При обнаружении несоответствий в команду безопасности должны отправляться автоматизированные уведомле­ния о
сообщениях электронной почты.
58
Зачастую требования представляют собой такой неструктурирован­ный текст. Ниже приведены некоторые советы и вопросы, которые по­могут устранить недостатки данного текста.
Есть ряд требований, который нужно разбить на отдельные требо- вания.
Если логика сравнения «основывается» на логике существующего средства проверки соответствия, то какая конкретно часть может по­вторно
использоваться и как ее нужно изменить?
Какие функции различаются в новой системе и в существующем средстве?
Какую «дополнительную логику» нужно добавить?
Как конкретно система может определить, какая база данных яв-
ляется «полномочным источником»?
Новая функциональность «включает» запись данных в таблицы. Нужно определить, «включена» ли другая функциональность, о
которой
не сказано явно?
Нужно уточнить, что означает «как и где», когда речь идет о раз- решении несоответствий.
В некоторых местах нужно использовать слово «должен».
Какое соотношение между «исключительным сценарием» и «несо-
ответствием»? Если это синонимы, то следует выбрать один термин и придерживаться именно его. В словаре
терминов можно уточнить, что
это – одно и то же или разное и какая между ними связь.
Какую информацию система должна отправлять в команду без- опасности при обнаружении несоответствия?
Как уже было отмечено ранее, невозможно создать идеальные тре­бования. Однако практически всегда их можно сформулировать лучше.
59
Приложение 3
ОПИСАНИЕ СИСТЕМЫ ЗАКАЗОВ ХИМИКАТОВ
Ниже представлено краткое описание системы заказов химикатов, для которой в приложениях 4–8 приведены примеры моделей анализа. В описании выделены некоторые слова, которые определяют важные элементы для анализа процессов системы. Значимые уникальные суще­ствительные выделены полужирным начертанием, глаголы (дей­ствия) – курсивом, а условия – полужирным курсивом.
«Химик или сотрудник склада химикатов может разместить
за-
каз на один или несколько химикатов, если пользователь уполномо-
чен делать такие заказы. Заказ может быть выполнен или посредством доставки контейнера с химикатом, который числится в инвентарной
описи товаров на складе химикатов, или посредством размещения за­каза на химикат у стороннего поставщика. Если химикат относится
к опасным, то он может
быть доставлен, только если пользователь про-
шел соответствующее обучение. Сотрудник, размещающий заказ,
подготавливая заказ, должен иметь возможность искать в интерактив­ном режиме нужный химикат в каталогах поставщиков. Системе необходимо отслеживать состояние каждого заказа с момента его подготовки и до момента его выполнения или отмены. Ей также необ­ходимо отслеживать историю
каждого контейнера с химикатом с мо-
мента его получения компанией до его полного расходования или ути-
лизации» [1, с. 264].
60
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]