Лекция № 2.

Тема: «Обследование, работа с требованиями»

Вопросы:

1.Типы требований

2.Уровни требований

Особенности интерпретации требований

Требования — это «нечто такое, что определяет выбор дизайна» (Lawrence, 1997).

Требования это спецификация того, что должно быть реализовано. В них описано поведение системы, свойства системы или ее атрибуты. Они могут служить ограничениями в процессе разработки системы.

Требования охватывают как видение пользователя, так и внешнее поведение системы, а также представление разработчика о некоторых внутренних характеристиках.

Определение термина «требование» в словаре

Требования к ПО включают измерение времени. Они могут относиться к настоящему времени — в этом случае они описывают текущие функции системы. Или могут относиться к ближайшему (высокоприоритетные), среднему (средреприоритетные) или гипотетическому (низкоприоритетные) будущему. Они могут даже относиться к прошлому времени, когда описывают запросы, которые были ранее определены, а затем отброшены.

 

1.      Типы требований

Требования к ПО состоят из трех уровней — бизнес-требования, пользовательские и функциональные требования.

1.1.   Бизнес-требования (business requirements) описывают, почему организации нужна такая система, то есть цели, которые организация намерена достичь с ее помощью. Основное их содержание — бизнес-цели организации или клиента, заказывающих систему.

Бизнес-требования высказывают те, кто финансируют проект, покупатели системы, управляющий реальными пользователями, отдел маркетинга или ответственный за концепцию продукта.

Записывать бизнес-требования в форме документа о концепции и границах (vision and scope document).

1.2.   Пользовательские требования (user requirements) описывают цели или задачи, которые пользователи должны иметь возможность выполнять с помощью продукта, который в свою очередь должен приносить пользу кому-то.

Область пользовательских требований также включает описания атрибутов или характеристик продукта, которые важны для удовлетворения пользователей.

К отличным способам представления этого вида требований относятся варианты использования (Kulak и Guiney, 2004), пользовательские истории (Cohn,2004) и таблицы «событие — отклик».

Пользовательские требования описывают, что пользователь должен иметь возможность делать с системой.

1.3.   Функциональные требования (functional requirements) определяют, каким должно быть поведение продукта в тех или иных условиях.

Они определяют, что разработчики должны создать, чтобы пользователи смогли выполнить свои задачи (пользовательские требования) в рамках бизнес-требований.

Функциональные требования описываются в форме традиционных утверждений со словами «должен» или «должна».

Бизнес-аналитик документирует функциональные требования в спецификации требований к ПО (software requirements specification, SRS), где описывается так полно, как необходимо, ожидаемое поведение системы.

Спецификация требований к ПО используется при разработке, тестировании, гарантии качества продукта, управлении проектом и в связанных с проектом функциях.

Этот артефакт называют по-разному: документ бизнес-требований, функциональная спецификация, документ требований и т. п.

1.4.   Термин системные требования (system requirements) описывает требования к продукту, который содержит многие компоненты или подсистемы (ISO/IEC/IEEE 2011).

В этом смысле «система» это не просто любая информационная система. Говоря о системе, мы подразумеваем программное обеспечение или подсистемы ПО и оборудования. Люди и процессы тоже часть системы, поэтому определенные системные функции могут распространяться и на людей.

На основе требований к системе или продукту в целом бизнес-аналитик формулирует конкретную функциональность, которую должны поддерживать тот или иной компонент или подсистема, а также интерфейсы взаимодействия между ними.

1.5.   Бизнес-правила

Бизнес-правила (business rules) включают корпоративные политики, правительственные постановления, отраслевые стандарты и вычислительные алгоритмы. Однако они часто налагают ограничения, определяя, какими функциями должна обладать система, подчиняющаяся соответствующим правилам. Вы можете отследить происхождение конкретных функциональных требований вплоть до соответствующих им бизнес-правил.

1.6.   Атрибуты качества (quality attributes) еще называют параметрам качества, требованиями по уровню обслуживания и т.п. Они представляют собой описание различных измерений характеристик продукта, которые важны для пользователей или для разработчиков и тех, кто будет обслуживать систему, таких как производительность, доступность и переносимость.

1.7.   Другие нефункциональные требования описывают внешние интерфейсы между системой и внешним миром. Речь идет о подключениях к другим программным системам, аппаратным устройствам и пользователям, а также коммуникационные интерфейсы. Ограничения (constraints) проектирования и реализации накладывают границы на возможности выбора разработчика при проектировании продукта.

Требования, отличные от функциональных, могут описывать не что система делает, а как хорошо она это делает.

Другие нефункциональные требования описывают среду, в которой работает система, например платформу, переносимость, совместимость и ограничения. Многие продукты также должны подчиняться определенным правилам, требованиям регулирующих органов или требовать сертификации. Такими могут быть требования по локализации для продуктов, в которых должны учитываться региональные стандарты, языки, законы, валюты, терминология, орфография и другие характеристики пользователей. Хотя такие требования определяются с использованием нефункциональной терминологии, бизнес-аналитик на их основе может определить много функций, чтобы система обладала всеми необходимыми свойствами и вела себя соответствующим образом в разных ситуациях.

1.8.   Характеристика (feature) — это набор логически связанных функциональных требований, которые представляют ценность для пользователя и удовлетворяют бизнес-цели.

Характеристики могут охватывать множество пользовательских требований, и для каждого варианта необходимо, чтобы множество функциональных требований было реализовано для выполнения пользователем его задач.

Рис. 1-2 иллюстрирует дерево функций (feature tree) — модель анализа, которая показывает, как функцию можно разложить на иерархию более мелких функций, которые связаны с конкретными пользовательскими требованиями и ведут к определению наборов функциональных требований (Beatty и Chen, 2012)

 

2.      Уровни требований

В разных организациях используют разные имена для ролей, участвующих в этой деятельности; подумайте, кто выполняет эту работу в вашей организации.

На основе выявленной бизнес-потребности, требования рынка или интересной концепции нового продукта менеджеры и сотрудники отдела маркетинга определяют бизнес-требовния для ПО, которые помогут компании работать эффективнее (для информационных систем) или успешно конкурировать на рынке (для коммерческих продуктов). В корпоративной среде после этого аналитики обычно работают с представителями пользователей для определения пользовательских требований.

В компаниях, разрабатывающих коммерческие продукты, часто назначают менеджера продукта, который определяет, какие функции должны включаться в новый продукт. Каждое пользовательское требование должно быть сопоставлено бизнес-требованию. На основе пользовательских требований аналитик или менеджер продукта определяет функции, которые дадут возможность пользователям выполнять их задачи. Разработчикам необходимы функциональные и нефункциональные требования, чтобы создавать решения с желаемой функциональностью, не выходя за рамки налагаемых ограничений. Тестировщики определяют, как проверять правильность реализации требований.

Важно понимать ценность письменной фиксации жизненно важных требований в доступной для совместного использования форме.

На рис. 1-1 были показаны три главных документа требований: документ концепции и границ, документ пользовательских требований и спецификация программных требований. Не всегда обязательно создавать эти три отдельных документа в каждом проекте. Часто имеет смысл объединять часть информации, особенно в небольших проектах.

В реальности возможно наличие циклов и итераций пользовательских, функциональных и бизнес-требований. Каждый раз, когда кто-то предлагает ввести новую функцию, пользовательское требование или улучшение функциональности, аналитик должен задаться вопросом: «Укладывается ли это в рамки проекта?»

Если ответ положительный, требование должно присутствовать в спецификации.

В противном случае требования в спецификации быть не должно, по крайней мере, в текущем выпуске или итерации.

Третий возможный ответ звучит так: «Нет, но это поддерживает бизнес-цели, поэтому должно быть в спецификации». В этом случае, ответственный за область действия проекта — куратор, менеджер или ответственный за проект, должен решить, нужно ли расширять рамки текущего проекта или итерации, чтобы включить новое требование.

Это бизнес-решение, которое оказывает влияние на график и бюджет проекта и может требовать пожертвовать другими возможностями. Эффективный процесс управления изменениями, включающий анализ последствий, гарантирует, что «правильные люди» принимают информированные бизнес-решения о том, какие изменения следует принять, а также что учитываются сопутствующие затраты времени или ресурсов или компромиссы в выборе функциональности.