Требования – это свойства, которыми должно обладать ПО для адекватного задания функций, а также условия и ограничения на ПО, данные, среду выполнения и технику.
Требования отражают потребности людей (заказчиков, пользователей, разработчиков), заинтересованных в создании ПО. Заказчик и разработчик совместно проводят сбор требований, их анализ, пересмотр, определение необходимых ограничений и документирование. Различают требования к продукту и к процессу, а также функциональные и нефункциональные требования, системные требования. Программные требования определяют требования к процессу, ОС, режиму выполнения ПО, выбору платформы и т.п.
Функциональные требования задают назначение системы, а нефункциональные – условия выполнения ПО. Системные требования описывают требования к программной системе, состоящей из взаимосвязанных программных и аппаратных подсистем и разных приложений. Требования могут оцениваться количественно (например, количество запросов в сек., средний показатель ошибок не должен превышать 1.5% от объема вводимой информации и т.п.). Значительная часть требований относится к атрибутам качества: безотказность, надежность и др.
Область знаний «Требования к ПО (Software Requirements)» состоит из следующих разделов:
– инженерия требований (Requirement Engineering),
– выявление требований (Requirement Elicitation),
– анализ требований (Requirement Analysis),
– спецификация требований (Requirement Specification).
– проверка требований (Requirement validation),
– управление требованиями (Requirement Menegement).
Инженерия требований к ПО – это дисциплина анализа и документирования требований к ПО, которая заключается в преобразовании предложенных заказчиком требований к системе в описание требований к ПО, их спецификация и верификация. Она базируется на модели процесса определения требований, процессах актеров – действующих лиц, обеспечивающих управление и формирование требований, а также на процессах повышения качества.