Функциональные и нефункциональные требования
Требования к программной системе классифицируются как функциональные и нефункциональные.
Функциональные требования. Это перечень функций, которые должна выполнять система, причем должно быть указано, как система реагирует на те или иные входные данные, как она ведет себя в определенных ситуациях и т.д. В некоторых случаях указывается, что система не должна делать. Пример функционального требования к библиотечной системе университета, предназначенной для заказа книг и документов из других библиотек:
1. Пользователь должен иметь возможность проводить поиск необходимых ему книг и документов или по всему множеству доступных каталожных баз данных
2. Система должна предоставлять пользователю подходящее средство просмотра библиотечных документов.
3. Каждый заказ должен быть снабжен уникальным идентификатором (NUM_ID), который копируется в формуляр пользователя для постоянного хранения.
Системные (нефункциональные) требования. Описывают характеристики системы и ее окружения, а не поведение системы. Здесь также может быть приведен перечень ограничений, накладываемых на действия и функции, выполняемые системой. Они включают временные ограничения, ограничения на процесс разработки системы, стандарты и т.д.
Все системные требования можно разбить на три большие группы.
1.Требования к продукту. Описывают эксплуатационные свойства программного продукта. Сюда относятся требования к производительности системы, объему необходимой памяти, надежности (определяет частоту возможных сбоев в системе), переносимости системы на разные компьютерные платформы и удобству эксплуатации.
2.Организационные требования. Отображают политику и организационные процедуры заказчика и разработчика ПО. Они включают стандарты разработки программного продукта, требования к реализации ПО (т.е. к языку программирования и методам проектирования), выходные требования, которые определяют сроки изготовления программного продукта, и сопутствующую документацию.
3.Внешние требования. Учитывают факторы, внешние по отношению к разрабатываемой системе и процессу ее разработки. Они включают требования, определяющие взаимодействие данной системы с другими системами, юридические требования, следование которым гарантирует, что система будет разрабатываться и функционировать в рамках существующего законодательства, а также этические требования. Последние должны гарантировать, что система будет приемлемой для пользователей или заказчика.
Системные требования должным быть выражаться через количественные показатели, которые можно объективно измерить.
Пример системного требования:
Система должна быть простой в эксплуатации для опытного оператора и сводить количество его ошибок к минимуму
Данное требование лучше сформулировать так:
Опытному оператору должны быть доступны все системные функции после двух часов обучения работ данной системой. После такого обучения среднее число ошибок оператора не должно превышать двух за рабочий день.
В таблице 1Таблица 1 приведены показатели, с помощью которых можно специфицировать системные свойства.
Количественные показатели для системных требований
Таблица 1. Количественные показатели для системных требований
Показатель | Единицы измерения |
Скорость | Количество выполненных транзакций в секунду; время реакции на действия пользователя; время обновления экрана |
Размер | Килобайты; количество модулей памяти |
Простота эксплуатации | Время обучения персонала; количество статей в справочной системе |
Надежность | Средняя продолжительность времени между двумя последовательными проявлениями ошибок в системе; вероятность выхода системы из строя; коэффициент готовности системы |
Устойчивость к сбоям | Время восстановления системы после сбоя; процент событий, приводящих к сбоям; вероятность порчи данных при сбоях |
Переносимость | Процент машинно-зависимых операторов; количество машинно-зависимых подсистем |