- •1.Виды, взаимосвязь и свойства требований
- •1.1.Виды требований
- •1.1.1.Функциональные требования
- •1.1.2.Нефункциональные требования
- •1.1.2.1.Нефункциональные требования к продукту
- •1.1.2.2.Нефункциональные требования к процессу
- •1.4.Сценарии
- •1.4.1.Сценарии событий
- •2.Разработка системных требований
- •2.1.Детализация требований пользователей
- •2.1.1.Модели потоков данных
- •2.1.2.Модели конечных автоматов
- •2.2.Прототипы
- •2.2.1.Роль прототипов при разработке требований
- •2.2.2.Виды прототипов
- •2.3.Разработка прототипов
- •2.3.1.Экспериментальное прототипирование
- •2.3.2.Эволюционное прототипирование
- •2.4.Системные требования
- •2.4.1.Структурированный естественный язык
- •2.4.2.Языки описания программ
- •2.4.3.Графические нотации
- •2.5.Документирование системных требований
- •3.Анализ спецификации требований
- •3.1.Оценка качества спецификации требований
- •3.1.1.Характеристики качества спецификации
- •4.Управление требованиями
- •4.1.Причины изменений требований
- •4.2.Управление изменениями
2.4.Системные требования
Как уже было сказано системные требования – это более детальное описание требований пользователей, которое служит разработчикам в качестве базы для проектирования. Системные требования состоят из подробно сформулированного полного списка конкретных свойств и функциональности, которую должна иметь программная система. Каждое из этих требований должно идентифицироваться и отслеживаться по ходу разработки. Предполагается, что основная аудитория для системных требований – это разработчики, но пользователи также должны иметь возможность их понять или прокомментировать большинство из них, поэтому уровень детализации системных требований должен быть полным, но не чрезмерным.
Учитывая важность спецификации и различные группы ее читателей, основные требования к спецификации – это ясность и понятность.
Требования в спецификации могут быть записаны при помощи:
структурированного естественного языка,
языков описания программ,
различных графических нотаций,
математических спецификаций или специальных языков описания требований.
2.4.1.Структурированный естественный язык
Чтобы уменьшить неоднозначность естественного языка для спецификации требований используют его сокращенную форму, что позволяет сохранить выразительность и понятность языка и структурировать описание требований.
Для структурированности языка используют стандартизованные шаблоны (схемы) и четко определенную (в спецификации) терминологию. Стандартные формы описания функциональных требований, например, должны содержать:
описание объекта или функции;
описание входных и выходных данных их источников и приемников;
предусловия и постусловия функции;
побочные эффекты и т.д.
Стандартные схемы (шаблоны) спецификаций будут рассмотрены в следующем разделе.
2.4.2.Языки описания программ
Дальнейшее уточнение описаний возможно путем ограничения и формализации действий, структур данных и управления, используемых в структурированном естественном языке.
Примером такого подхода является язык описания программ PDL (program description language). Этот язык строится по образцу языков программирования, управляющие операторы которых определяют:
внешний синтаксис, т.е. описание структуры управления;
внутренний синтаксис – описание структур данных и процедур их обработки – не определен и выбирается проектировщиком.
С одной стороны такой подход позволяет использовать в описании предложения, написанные на естественном языке, для повышения читаемости требования. С другой – использовать конструкции известных языков программирования и проверять синтаксис и семантику требований существующими программными средствами. Очевидно, что такой подход позволяет получить очень подробные и детальные требования, которые будут доступны для понимания ограниченному числу пользователей спецификации.
Пример 4.4.
Если использовать в описании процесса на PDL предложения, написанные на естественном языке, то описание будет достаточно простым для понимания. На рис. 4.7 приведено описание процесса «Принять программу в архив», рассмотренного в разделе 3.
Рис. 4.7