Skip to content

Latest commit

 

History

History
484 lines (407 loc) · 37.1 KB

File metadata and controls

484 lines (407 loc) · 37.1 KB

1. Введение

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

1.1 Назначение

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

1.2 Соглашения, принятые в документах

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

1.3 Границы проекта

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

1.4 Ссылки

Перечислите все документы или другие ресурсы, на которые вы ссылаетесь
в этой спецификации, в том числе гиперссылки на них, если их местополо-
жение меняться не будет. Это могут быть руководства по стилям пользова-
тельского интерфейса, контракты, стандарты, спецификации к системным
требованиям, спецификации интерфейса и спецификации требований к ПО
связанных продуктов. Объем информации должен быть достаточным для
того, чтобы пользователь сумел при необходимости получить доступ к каж-
дому указанному материалу, а именно: название, имя автора, номер версии,
дата, источник, место хранения или URL-адрес.

2 Общее описание

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

2.1 Общий взгляд на продукт

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

2.2 Классы и характеристики пользователя

Определите различные классы пользователей, которые, как предполагается,
будут работать с вашим продуктом, и опишите их соответствующие харак-
теристики (см. главу 6). Некоторые требования могут относиться только
к определенным классам пользователей. Определите привилегированные
классы пользователей. Классы пользователей представляют подмножество
заинтересованных в проекте лиц, их описание приводится в документе кон-
цепции и границ проекта. Описания классов пользователей являются по-
вторно используемым ресурсом. Если есть главный каталог классов пользо-
вателей, можно включить описания классов пользователей, просто указав их
в каталоге, не дублируя информацию.

2.3 Операционная среда

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

2.4 Ограничения дизайна и реализации

Бывает, что нужно использовать вполне определенный язык программирова-
ния, определенную библиотеку, на разработку которой уже потрачено время,
и т. п. Опишите все факторы, которые ограничат возможности, доступные
разработчикам, и логически обоснуйте каждое положение. Требования, ко-
торые включают или написаны в форме идей по решению, а не потребностей
накладывают ограничения на дизайн, часто неоправданные, поэтому за этим
надо следить.

2.5 Предположения и зависимости

Предположение (assumption) — это утверждение, которое предполагается
верным в отсутствие знаний или доказательств иного. Проблемы возможны
в том случае, если предположение неверны, устарели, не находятся в совмест-
ном использовании или изменяются, поэтому определенные предположения
можно отнести к группе рисков проекта. Один читатель спецификации тре-
бований к ПО может считать, что продукт будут соответствовать особому
стандарту пользовательского интерфейса, тогда как другой предположит не-
что совершенно иное. Разработчик может думать, что определенный набор
функций написан специально для этого приложения, бизнес-аналитик — что
он будет взят из предыдущего проекта, а менеджер проекта — что предпола-
гается приобрести коммерческую библиотеку функций. Включаемые здесь
предположения относятся к системной функциональности; предположения
относящиеся к бизнесу представлены в документе концепции и границ про-
екта, как описано в главе 5.
Определите все зависимости проекта или создаваемой системы от внеш-
них факторов или компонентов вне ее контроля. Например, до установки
продукта может требоваться установить Microsoft .NET Framework 4.5 или
более позднюю версию — это зависимость.

3. Функции системы

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

В этом разделе описывается:

* Как проверяются входные данные
* Точная последовательность действий
* Реакция на аномальные ситуации, включая
    
    - утечки
    - ошибки коммуникации
    - обработку ошибок и восстановление

* На что влияют входные параметры
* Связь входных и выходных данных, включая
    
    - Последовательность входных/выходных данных
    - Формулы преобразования входных данных в выходные данные

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

3.X Функция системы X

Опишите название особенности несколькими словами, например «3.1 Про-
верка правописания». Так же назовите подразделы с 3.x.1 по 3.x.3 для каждой
функции системы.

3.X.1 Описание

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

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

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

4. Требования к данным

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

4.1 Логическая модель данных

Модель данных это визуальное представление объ-
ектов и наборов данных, которые будет обрабатывать система, а также от-
ношений между ними. Существует много видов нотации для моделирования
данных, в том числе диаграммы отношений «сущность–связь» и диаграммы
классов UML. Можно включить модель данных для бизнес-операций, вы-
полняемых системой или логическое представление данных, с которыми
будет работать система. Это не то же самое, что модель данных реализации,
которая реализуется в виде дизайна базы данных.

4.2 Словарь данных

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

4.3 Отчеты

Если приложение будет генерировать отчеты, перечислите их здесь и опи-
шите их характеристики. Если отчет должен соответствовать определенному
готовому макету, можно указать это как ограничение, возможно с примером.
В противном случае сосредоточьтесь на логических описаниях, порядке со-
ртировки, уровнях суммирования и т. п., отложив подробный макет до этапа
дизайна.

4.4 Получение, целостность, хранение и утилизация данных

Если это важно, опишите, как получают и обслуживают данные. Например,
при открытии канала номенклатуры данных может требоваться первым де-
лом выполнить начальный дамп всей номенклатуры данных в принимающую
систему, а после этого использовать каналы для передачи только изменений.
Укажите все требования, относящиеся к защите целостности данных систе-
мы. Укажите все процедуры, которые могут потребоваться, например резерв-
ное копирование, создание контрольных точек, зеркальное отображение или
проверка корректности данных. Укажите политики, которые должна приме-
нять система для хранения или утилизации данных, в том числе временных
данных, метаданных, остаточных данных (таких как удаленные записи), дан-
ных в кеше, локальных копий, архивов и промежуточных архивов.

5. Требования к внешним интерфейсам

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

5.1 Пользовательские интерфейсы

Опишите логические характеристики каждого пользовательского интер-
фейса, который необходим системе. Некоторые особенные характеристики
пользовательских интерфейсов могут упоминаться в разделе «6.1 Удобство
использования». Некоторые из них перечислены здесь:

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

5.2 Интерфейсы ПО

Опишите связи продукта и других компонентов ПО (идентифицированные
по имени и версии), в том числе другие приложения, базы данных, операци-
онные системы, средства, библиотеки, веб-сайты и интегрированные серий-
ные компоненты. Укажите назначение, форматы и содержимое сообщений,
данных и контрольных значений, обмен которыми происходит между ком-
понентами ПО. Опишите соответствия между входными и выходными дан-
ными между системами и все преобразования, которые должны происходить
с данными при перемещении между системами. Опишите службы, необхо-
димые внешним компонентам ПО, и природу взаимодействия между ком-
понентами. Определите данные, которыми будут обмениваться и к которым
будут иметь общий доступ компоненты ПО. Определите нефункциональные
требования, влияющие на интерфейс, такие как уровни обслуживания для
времени и частоты отклика или меры и ограничения безопасности. Часть
этой информации может быть определена как требования к данным в разделе
4 или как требования к взаимодействию в разделе «6. Атрибуты качества».

5.3 Интерфейсы оборудования

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

5.4 Коммуникационные интерфейсы

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

6 Атрибуты качества

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

6.1 Удобство использования

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

6.2 Производительность

Укажите конкретные требования к производительности для различных си-
стемных операций. Если у различных функциональных требований или
функций имеются разные требования к производительности, то следует ука-
зывать задачи, связанные с производительностью, там же, в разделе соответ-
ствующих функциональных требований, а не включать их все в этот раздел.

6.3 Безопасность

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

6.4 Техника безопасности

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

6.X Другие

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

7. Требования по интернационализации и локализации

Требования по интернационализации и локализации обеспечивают возмож-
ность использовать продукт в других странах, региональных стандартах и
географических районах, отличающихся от тех, в которых он был создан.
Такие требования могут быть направлены на разрешение различий в валю-
тах, форматировании дат, чисел, адресов и телефонных номеров, языках, в
том числе различных вариантах одного языка (например, американского
и британского вариантов английского), используемых символах и наборах
символов, личных именах и фамилиях, часовых поясах, международных нор-
мативных актах и законах, культурных и политических традициях, размере
используемой бумаги, единицах веса и меры, электрическом напряжении и
конфигурации электрических разъемов и во многом другом. Требования по
интернационализации и локализации вполне могут повторно использовать-
ся во многих проектах.

8. Остальные требования

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

Приложение А. Словарь терминов

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

Приложение Б. Модели анализа

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