Требования - это свойства, которыми должно обладать ПО для
адекватного определения функций, условий и ограничений выполнения
ПО, а также объемов данных, технического обеспечения и среды
функционирования.
Требования отражают потребности людей (заказчиков, пользователей,
разработчиков), заинтересованных в создании ПО. Заказчик и
разработчик совместно проводят сбор требований, их анализ,
пересмотр, определение необходимых ограничений и документирование.
Различают требования к продукту и к процессу, а также
функциональные, нефункциональные и системные требования. Требования
к продукту и к процессу определяют условия функционирования и
режимы работы ПО в операционной среде, ограничения на структуру и
память компьютеров, на принципы взаимодействия программ и
компьютеров и т.п. Функциональные требования определяют назначение
и функции системы, а нефункциональные - условия выполнения ПО и
доступа к данным. Системные требования описывают требования к
программной системе, состоящей из взаимосвязанных программных и
аппаратных подсистем и разных приложений. Требования могут быть
количественные (например, количество запросов в сек., средний
показатель ошибок и т.п.). Значительная часть требований относится
к атрибутам качества: безотказность, надежность и др., а также к
защите и безопасности как ПО, так и данных.
Область знаний "Требования к ПО (Software Requirements)" состоит из
следующих разделов:
· инженерия требований (Requirement Engineering),
· выявление требований (Requirement Elicitation),
· анализ требований (Requirement Analysis),
· спецификация требований (Requirement Specification).
· валидация требований (Requirement validation),
· управление требованиями (Requirement Management).
Инженерия требований к ПО - это дисциплина анализа и
документирования требований к ПО, которая заключается в
преобразовании предложенных заказчиком требований к системе в
описании требований к ПО и их валидация. Она базируется на модели
процесса определения требований и действующих лицах, обеспечивающих
управление и формирование требований, а также на методах достижения
показателей качества.
Модель процесса определения требований - это схема процессов ЖЦ,
которые выполняются от начала проекта и до тех пор, пока не будут
определены и согласованы требования. При этом процессом может быть
маркетинг и проверка осуществимости требований в данном
проекте.
Управление требованиями к ПО заключается в контроле за выполнением
требований и планировании использования ресурсов (человеческих,
программных, технических, временных, стоимостных) в процессе
разработки промежуточных рабочих продуктовна этапах ЖЦ.
Качество и процесс улучшения требований - это процесс формулировки
характеристик и атрибутов качества (надежность, реактивность и
др.), которыми должно обладать ПО, методы их достижения на этапах
ЖЦ и оценивания полученных результатов.
Выявление требований - это процесс извлечения информации из разных
источников (договоров, материалов аналитиков по декомпозиции задач
и функций системы и др.), проведения технических мероприятий
(собеседований, собраний и др.) для формирования отдельных
требований к продукту и к процессу разработки. Исполнитель должен
согласовать требования с заказчиком.
Анализ требований - процесс изучения потребностей и целей
пользователей, классификация и преобразование их к требованиям к
системе, аппаратуре и ПО, установление и разрешение конфликтов
между требованиями, определение приоритетов, границ системы и
принципов взаимодействия со средой функционирования. Требования
могут быть функциональные и нефункциональные, которые определяют
соответственно внешние и внутренние характеристики системы.
Функциональные требования характеризуют функции системы или ее ПО,
способы поведения ПО в процессе выполнения функций и методы
передачи и преобразования входных данных в результаты.
Нефункциональные требования определяют условия и среду выполнения
функций (например, защита и доступ к БД, секретность,
взаимодействие компонентов и др.). Разработка требований и их
локализация завершается на этапе проектирования архитектуры и
отражается в специальном документе, по которому проводится
согласование требований для достижения взаимопонимания между
заказчиком и разработчиком.
Спецификация требований к ПО - процесс формализованного описания
функциональных и нефункциональных требований, требований к
характеристикам качества в соответствии со стандартом качества
ISO/IEC 9126-94, которые будут отрабатываться на этапах ЖЦ ПО. В
спецификации требований отражается структура ПО, требования к
функциям, качеству и документации, а также задается в общих чертах
архитектура системы и ПО, алгоритмы, логика управления и структура
данных. Специфицируются также системные требования,
нефункциональные требования и требования к взаимодействию с другими
компонентами и платформами (БД, СУБД, маршаллинг данных, сеть и
др.).
Валидация требований - это проверка изложенных в спецификации
требований, выполняющаяся для того, чтобы путем отслеживания
источников требований убедиться, что они определяют именно данную
систему. Заказчик и разработчик ПО проводят экспертизу
сформированного варианта требований с тем чтобы разработчик мог
далее проводить проектирование ПО. Один из методов валидации -
прототипирование, т.е. быстрая отработка отдельных требований на
конкретном инструменте и исследование масштабов изменения
требований, измерение объема функциональности и стоимости, а также
создание моделей оценки зрелости требований.
Верификация требований - это процесс проверки правильности
спецификаций требований на их соответствие, непротиворечивость,
полноту и выполнимость, а также на соответствие стандартам. В
результате проверки требований делается согласованный выходной
документ, устанавливающий полноту и корректность требований к ПО, а
также возможность продолжить проектирование ПО.
Управление требованиями - это руководство процессами формирования
требований на всех этапах ЖЦ и включает управление изменениями и
атрибутами требований, а также проведение мониторинга -
восстановления источника требований. Управление изменениями
возникает после того, когда ПО начинает работать в заданной среде и
обнаруживаются ошибки в трактовке требований либо в невыполнении
некоторого отдельного требования и т.п. Неотъемлемой составляющей
процесса управления является трассирование требований для
отслеживания правильности задания и реализации требований к системе
и ПО на этапах ЖЦ, а также обратный процесс отслеживания в
полученном продукте реализованных требований. Для исправления
некоторых требований или добавления нового требования составляется
план изменения требований, который согласуется с заказчиком.
Внесенные изменения влекут за собой и изменения в созданный продукт
или в отдельные его компоненты.