Виды требований к программному изделию

 

Требования к программному изделию можно разделить на группы, представленные на рис. 6.1:

1) Требования к изделию (системе) в целом;

2) Требования к отдельным видам обеспечения;

3) Требования к отдельным подсистемам или модулям;

4) Требования к отдельным функциям;

5) Организационные требования;

6) Внешние требования, характеризующие предметную область (окружающую среду).

Кроме этого требования делят на функциональные и нефункциональные.

Функциональные требования определяют поведение программного изделия: это перечень действий и функций, которые должны быть реализованы.

Нефункциональные требования описывают характеристики программного изделия и его окружения, а не его поведение. Здесь может быть приведен перечень ограничений, накладываемых на выполняемые действия и функции. Например, временные ограничения, ограничения на процесс разработки системы, стандарты и т.д.

В действительности четкой границы между этими типами требований не существует. Например, требования, касающиеся безопасности системы, можно отнести к нефункциональным. Однако при более детальном рассмотрении такое требование можно отнести к функциональным, поскольку оно порождает необходимость включения в систему средства авторизации пользователя. Поэтому, рассматривая далее эти виды требований, мы должны всегда помнить, что данная классификация в значительной степени искусственна.

 

 
 

 

 


Рис. 6.1. Виды требований к программному изделию

 

Функциональные требования

Функциональные требования зависят от типа разрабатываемой системы и от потребностей пользователей. Эти требования описывают поведение системы, действия и функции, которые она выполняет. Должно быть определено, как программа должна реагировать на те или иные входные данные, как она должна себя вести в определенных ситуациях. В некоторых случаях указывается, что программа не должна делать.

В функциональных требованиях также определяют:

- работа каких пользователей должна автоматизироваться;

- какая информация должна храниться;

- по каким формулам и алгоритмам и в какой последовательности она должна обрабатываться;

- какие документы должны формироваться.

Функциональные требования к системе в целом определяются целями ее создания.

Спецификация (полный набор) функциональных требований должна быть комплексной и непротиворечивой. Комплексность подразумевает описание (определение) всех необходимых функций (системных сервисов).

Непротиворечивость означает отсутствие несовместимых и взаимоисключающих требований. На практике для больших и сложных систем крайне трудно разработать комплексную и непротиворечивую спецификацию функциональных требований. Причина кроется частично в сложности самой разрабатываемой системы, а частично — в несогласованных опорных точках зрения на то, что должна делать система. Эта несогласованность может не проявиться на этапе первоначального формулирования требований — для ее выявления необходим более глубокий анализ спецификации. Когда несогласованность системных функций проявится на каком-либо этапе жизненного цикла программного изделия, в системную спецификацию придется внести соответствующие изменения.

Пример 1.

Рассмотрим функциональные требования к библиотечной системе университета, предназначенной для заказа книг и документов из других библиотек.

1. Пользователь должен иметь возможность проводить поиск необходимых ему книг и документов или по всему множеству доступных каталожных баз данных или по определенному их подмножеству.

2. Система должна предоставлять пользователю подходящее средство просмотра библиотечных документов.

3. Каждый заказ должен быть снабжен уникальным идентификатором, который копируется в формуляр пользователя для постоянного хранения.

Эти функциональные пользовательские требования определяют свойства, которыми должна обладать система. Они показывают, что функциональные требования могут быть описаны с разным уровнем детализации (сравните первое и третье требования).

Рассмотрим второе требование к библиотечной системе из приведенного выше списка и обратим внимание на выражение "подходящее средство просмотра документов". Библиотечная система может предоставлять документы в широком спектре форматов. В требовании подразумевается, что система должна предоставить средства для просмотра документов в любом формате. Но поскольку это условие четко не выписано, разработчики в случае дефицита времени могут использовать простое средство для просмотра текстовых документов и настаивать на том, что именно такое решение следует из данного требования.