Методы определения требований в программной инженерии
Каждая программная система представляет собой определенный преобразователь данных, поведение и свойства которого определяются в процессе создания этой системы, ориентированной на решение некоторой проблемы. К программной системе предъявляются требования в виде соглашений между заказчиком и исполнителем.
В общем случае под требованиями к ПС понимают свойства, которыми должна обладать эта система для адекватного выполнения предписанных ей функций. Примерами таких функций могут быть автоматизация присущих персоналу обязанностей, обеспечение руководства организацией информацией, необходимой для принятия решений и др. Т.е., программная система может моделировать достаточно сложную деятельность людей и их организацию, их взаимодействие как между субъектами автоматизируемой области, так с физическим оборудованием компьютерной системы и т.п.[1-5].
Определение понятий и видов требований
Одна из проблем индустрии программного обеспечения — это отсутствие общепринятых определений терминов, которыми пользуются для описания: требований пользователя, требований к ПО, функциональных требований, системных требований, технологических требований, требований к продукту и бизнес-требований. В разных источниках понятия требований определяются, исходя из разных условий и взглядов на то, что по ним создается. Назовем ряд определений в проблематике требований [2,3].
Требования — это «нечто такое, что приводит к выбору дизайна системы".
Требования – это свойства, которыми должен обладать продукт, чтобы представлять какую-то ценность для пользователей.
Требования – это спецификация того, что должно быть реализовано. В них охарактеризовано описание поведения системы, ее свойства и атрибуты. Они могут быть ограничены процессом разработки системы.
Согласно международного глоссария по терминологии [6] требования включают описание:
1) условий или возможностей, необходимых пользователю для решения поставленных проблем или достижения целей;
2) условий или возможностей, которыми должна обладать система или системные компоненты, чтобы выполнить контракт или удовлетворить стандартам, спецификациям или другим формальным документам;
3) документированное представление условий или возможностей проектирования системы.
Виды требований
Требования к продукту охватывают требования как пользователей (внешнее поведение системы), так и разработчиков (некоторые скрытые параметры).Термин пользователи относится ковсем заинтересованным лицам в создании системы.
Требования к ПО состоят из трех уровней — бизнес-требования, требования пользователей и функциональные требования. Каждая система имеет свои нефункциональные требования.
Требования пользователей (user requirements) описывают цели и задачи, которые пользователям позволит решить система. К способам представления этого вида требований относятся варианты использования, сценарии и таблицы «событие — отклик».
Системные требования (system requirements) обозначают высокоуровневые требования к продукту, которые содержат многие подсистемы или вся система. Из требований для всей системы главными являются функциональные требования к ПО.
Функциональные требования включают описание требований в видам и типам реализуемых функций и документируются в спецификации требований к ПО (software requirements specification, SRS), где описано и ожидаемое поведение системы. Спецификация требований к ПО используется при разработке, тестировании, гарантии качества продукта, управлении проектом и его функциями. В дополнение к функциональным требованиям спецификация содержит нефункциональные требования (защита данных, адаптивность, изменчивость и др.), где описаны цели и атрибуты качества.
Атрибуты качества (quality attributes) представляют собой дополнительное описание функций программного продукта, выраженных через описание его характеристик, важных для пользователей или разработчиков. К таким характеристикам относятся легкость и простота использования, легкость перемещения, целостность, эффективность и устойчивость к сбоям. Другие нефункциональные требования описывают внешние взаимодействия между системой и внешним миром, а также ограничения дизайна и реализации. Ограничения (constraints) касаются выбора возможности разработки внешнего вида и структуры продукта.
Бизнес-требования (business requirements) содержат высокоуровневые цели организации или заказчиков бизнес–системы. Как правило, их высказывают те, кто финансируют проект, покупатели системы, менеджер реальных пользователей и отдел маркетинга. Бизнес-правила (business rules) включают корпоративные политики, правительственные постановления, промышленные стандарты и вычислительные алгоритмы. Они не являются требованиями к ПО, потому что они находятся снаружи границ любой системы ПО. Однако они часто налагают ограничения на выполнение конкретных вариантов использования или на функции системы, подчиняющимся соответствующим правилам. Бизнес-правила становятся источником атрибутов качества, которые реализуются в функциональности.