Анализ требований к автоматизированным информационным системам

Документирование требований

Лекция посвящена завершающему этапу работы с требованиями к программному обеспечению — их документированию и оформлению в виде официального соглашения между Заказчиком и Разработчиком. В материале рассматриваются основные стандарты и подходы к составлению технического задания (ТЗ): российский ГОСТ 34.602-89, западный стандарт IEEE STD 830-1998 (SRS), а также методологии документирования в RUP (Rational Unified Process) и MSF (Microsoft Solutions Framework). Проводится сравнительный анализ структуры документов, подробно разбирается содержание ключевых разделов, таких как требования к системе, функциям и внешним интерфейсам.

Основные мысли

1. ТЗ как юридическая основа: Техническое задание (или SRS) — это не просто технический документ, а соглашение, придающее требованиям юридическую силу и фиксирующее взаимные обязательства Заказчика и Разработчика.
2. Преемственность стандартов: Современные подходы к документированию базируются на устоявшихся стандартах. Российский ГОСТ 34.602-89, несмотря на свой возраст, остается актуальным благодаря абстрагированию от конкретных технологий и является обязательным для госзаказчиков.
3. Структура ТЗ по ГОСТ 34.602-89: Ключевыми разделами документа являются не только технические требования, но и описание бизнес-целей (Назначение и цели), характеристик объекта автоматизации, порядка приемки (контроля и испытаний) и состава работ.
4. Классификация требований: ГОСТ четко разделяет требования на три категории: к системе в целом (архитектура, надежность, безопасность), к функциям (задачам) и к видам обеспечения (информационное, программное, методическое и т.д.).
5. Альтернативные методологии: Западные подходы (RUP, IEEE 830, MSF) предлагают более гибкие и компактные шаблоны, фокусируясь на описании внешнего поведения системы через варианты использования (прецеденты) и детализации нефункциональных требований, включая интерфейсы пользователя, оборудования и ПО.
6. Универсальность требований к интерфейсам: Независимо от выбранного стандарта, важное место в документации занимает описание внешних интерфейсов (пользовательских, аппаратных, программных), так как именно они определяют взаимодействие системы с окружающим миром.
Показывать лекцию целиком
Краткое изложение

Чтобы требования, выявленные и описанные (см. лекцию 6 и лекцию 8) приняли силу соглашения между Заказчиком и Разработчиком, их необходимо оформить в виде документа. В российской практике для этого обычно используется документ "Техническое задание", ТЗ, в западной - "Software Requirements Specification", SRS (спецификация программных требований). По сути это - один и тот же документ, поэтому далее по тексту будем употреблять термин "ТЗ", рассматривая различные шаблоны его построения - как на основе российских ГОСТ, так и западных методологий и стандартов.

SRS Согласно стандарту IEEE STD 830-1998 (http://standards.ieee.org/findstds/standard/830-1998.html), SRS - это спецификация для определенного программного изделия, программы или набора программ, которые выполняют определенные функции в специфической среде. SRS может составляться одним или более представителями поставщика, одним или более представителями заказчика, или обоими. В тексте указанного выше стандарта содержатся подробные сведения о том, как составлять SRS, а также шаблон SRS. Альтернативным источником знаний об SRS может послужить методология RUP. В русскоязычной практике данному термину приблизительно соответствует термин "Техническое задание" (ТЗ). В РФ ТЗ на создание автоматизированной системы регламентируются ГОСТ 34.602-89 [38].

Документирование требований в соответствии с ГОСТ РФ

Документирование требований регламентировано российскими ГОСТ 19.201-78 "Техническое задание, требования к содержанию и оформлению" и ГОСТ 34.602-89 "Техническое задание на создание автоматизированной системы" (ТЗ на АС) [11.4-11.5].

Второй документ, по сути, является более проработанной версией первого, адаптированной к созданию автоматизированных информационных систем, поэтому далее рассмотрена структура ТЗ в соответствии с ГОСТ 34.602-89.

Несмотря на то, что для сферы IT 17 лет - это целая эпоха, данный документ практически не устарел: его авторам удалось разработать сбалансированные рекомендации, абстрагируясь от конкретных технических и технологических решений. Кроме того, он по-прежнему играет роль государственного стандарта РФ и при заключении контрактов с государственными предприятиями Разработчика могут обязать оформить ТЗ в соответствии с духом и буквой этого документа.

Структура ТЗ в соответствии с ГОСТ 34.602-89

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

Общие сведения - в этом разделе, помимо юридических реквизитов сторон и прочей деловой информации ГОСТ рекомендует указать источники и порядок финансирования работ.

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

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

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

Раздел "Состав и содержание работ по созданию системы", говоря современным языком, описывает процесс создания системы, включая выбор методологии, определяющий содержание стадий, этапов и фаз и его конкретизацию для проекта (количество этапов и итераций, их основное содержание).

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

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

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

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

Описание требований к системе в соответствии с ГОСТ 34.602-89

ГОСТ разделяет все требования к системе на три класса:

  • требования к системе в целом;
  • требования к функциям (задачам), выполняемым системой;
  • требования к видам обеспечения.
  • Среди требований к системе в целом (системные требования) указываются требования к:

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

    Требования ГОСТ к функциям (задачам), в переводе на современный язык, подразделяются на:

  • перечень функциональных требований в привязке к подсистемам и очередям автоматизации;
  • временной регламент реализации функциональных требований;
  • требования к качеству реализации каждого из функциональных требований (в том числе - форме представления выходной информации, характеристики необходимой точности и времени выполнения, требования одновременности выполнения группы функций, достоверности выдачи результатов);
  • перечень и критерии отказов для каждого функционального требования, по которому были заданы требования по надежности.
  • Требования к видам обеспечения. Среди видов обеспечения ГОСТ указывает математическое, информационное, лингвистическое, программное, техническое, метрологическое, организационное, методическое.

    Документирование требований в RUP

    Шаблон SRS, предложенный в RUP http://www-306.ibm.com/software/rational/ , по сути представляет собой контейнер, в который необходимо "упаковать" артефакты, полученные в процессе специфицирования требований (см. материалы лекции 8). Кроме того, SRS частично перекликается с документом "Видение" (см. материалы лекции 7). Шаблон удобен своей компактностью и лаконизмом.

  • Введение.

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

    1.2. Краткая сводка возможностей.

    1.3. Определения, акронимы и сокращения.

    1.4. Ссылки.

    1.5. Краткое содержание.

  • Обзор системы

    2.1. Обзор прецедентов. Содержит список имен и кратких описаний вариантов использования и акторов с иллюстрациями в виде диаграмм прецедентов.

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

    Предположением (assumption) называется положение, которое считается истинным при отсутствии доказательства или определяющей информации. [1].

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

  • Описание требований

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

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

  • Вспомогательная информация. Сюда включается информация, облегчающая понимание документа. Это может быть оглавление и приложения, например, описывающие прототипы пользовательского интерфейса.
  • Документирование требований на основе IEEE Standard 830-1998

    Рассмотрим шаблон документа описания требований, составленный К.Вигерсом [11.1] на основе стандарта [11.2]. Данный стандарт содержит развернутое описание требований, которое может быть оптимизировано для нужд конкретной организации.

  • Введение

    1.1 Назначение документа.

    1.2. Поддерживаемые соглашения.

    1.3. Предполагаемая аудитория и рекомендации по последовательности работы с документом для каждого класса читателей.

    1.4. Границы проекта. Здесь содержится ссылка на документ "Концепция", если таковой имеется, либо краткое резюме продукта.

    1.5. Ссылки.

  • Общее описание.

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

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

    2.3. Классы и характеристики пользователей. Документируется процесс поиска акторов, в котором выявляются все пользователи системы и осуществляется обобщение (выделение классов) пользователей. Найденные классы описываются (например - уровень квалификации, доступный функционал и т.д.).

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

    2.5. Ограничения проектирования и реализации. Рассмотрим классификацию ограничений [11.1]:

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

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

  • Функции системы

    Для каждой i-й функции составляется следующее описание.

    З.i Наименование i-й функции системы.

    З.i.1 Описание и приоритеты. Приводится краткое описание функции и указывается ее приоритет (степень важности/очередности реализации).

    З.i.2 Последовательности "воздействие - реакция". Необходимо перечислить последовательность воздействий, оказываемых на систему (действия пользователей, сигналы внешних устройств и др.), и отклики системы, определяющие реакцию конкретной функции.

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

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

    Ниже рассмотрены конкретные рекомендации по написанию разделов этого параграфа, согласно [11.1]:

    4.1 Интерфейсы пользователя

    Основные характеристики UI:

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

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

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

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

    4.4 Интерфейсы передачи информации

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

    5. Другие нефункциональные требования

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

    5.1 Требования к производительности

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

  • Приложение А. Словарь терминов (глоссарий).
  • Приложение Б. Модели анализа. В этот раздел помещаются все модели, построенные в процессе анализа требований (см. материалы лекции 9).
  • Приложение В. Список вопросов.

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

  • Документирование требований в MSF

    В начале фазы проектирования проектная группа работает с проектными требованиями. Они подразделяются на:

  • бизнес-требования,
  • требования к эксплуатации,
  • системные требования,
  • требования пользователя.
  • Одним из основных результатов фазы проектирования является функциональная спецификация, которая служит:

  • инструкцией команде разработчиков о том, что они должны будут создать;
  • основой для оценки объема работ;
  • четкое соглашение с Заказчиком о том, что должно быть сделано;
  • основой для синхронизации работы всей проектной команды.
  • С шаблонами соответствующих документов можно ознакомиться на сайте Microsoft, [11.3].


    Введение:
    Описанные требования обретают силу соглашения только будучи оформленными в документ. В России это "Техническое задание" (ТЗ), на Западе — "Software Requirements Specification" (SRS). Несмотря на разницу в названиях, суть документа едина.

    Основная часть:
    1. Российский подход (ГОСТ 34.602-89):
    o Документ регламентирует создание автоматизированных систем (АС).
    o Структура ТЗ включает: общие сведения (стороны, финансирование), назначение и цели (критерии эффективности), характеристику объекта автоматизации (структура предприятия), требования к системе (ключевой раздел), состав работ, порядок контроля и приемки, требования к подготовке объекта, документированию и источники разработки.
    o Требования к системе делятся на три класса: к системе в целом (надежность, безопасность, эргономика), к функциям (перечень, качество, временной регламент) и к видам обеспечения (математическое, информационное, техническое, организационное и пр.).

    2. Западные подходы:
    o RUP: Предлагает лаконичный шаблон SRS, который является "контейнером" для артефактов (вариантов использования). Содержит введение, обзор системы (с диаграммами прецедентов, предположениями и зависимостями) и детальное описание требований (специальные и связанные с вариантами использования).
    o IEEE Standard 830-1998 (в изложении К. Вигерса): Наиболее детализированный шаблон. Включает введение, общее описание продукта (среда, классы пользователей, ограничения), подробное описание каждой функции (с приоритетами и последовательностью действий), а также развернутый раздел требований к внешним интерфейсам (пользовательским, аппаратным, программным, коммуникационным) и прочим нефункциональным требованиям (производительность).
    o MSF: На фазе проектирования создается функциональная спецификация, объединяющая бизнес-требования, требования пользователей и системы, которая служит инструкцией для разработчиков и основой для оценки работ.

    Выводы

    1. Составление технического задания — это критически важный этап, формализующий договоренности и снижающий риски проекта.
    2. Выбор стандарта для ТЗ зависит от контекста проекта: для госзаказчиков обязателен ГОСТ 34.602-89, для коммерческих или международных проектов более уместны гибкие шаблоны RUP, IEEE 830 или MSF.
    3. Качественное ТЗ должно содержать не только функциональные требования, но и исчерпывающее описание нефункциональных аспектов (производительность, безопасность, интерфейсы), а также условия приемки работ.
    4. Современные методологии (RUP, MSF) стремятся к интеграции документов требований с визуальными моделями (диаграммы вариантов использования) и прототипами интерфейсов для лучшего понимания будущей системы.

    Вопросы для самопроверки

    1. Какова основная цель превращения выявленных требований в документ "Техническое задание" (или SRS)?
    2. Чем структура ТЗ по ГОСТ 34.602-89 принципиально отличается от шаблона, предлагаемого стандартом IEEE 830?
    3. Какие три класса требований к системе выделяет ГОСТ 34.602-89? Приведите по одному примеру для каждого класса.
    4. Что рекомендуется указывать в разделе "Требования к внешнему интерфейсу" согласно стандарту IEEE 830 (по К. Вигерсу)? Назовите как минимум три типа интерфейсов.
    5. Почему российский ГОСТ 34.602-89, принятый в 1989 году, до сих пор считается актуальным и используется в IT-проектах?
    Вернуться к учебному плану