Куперс

Бухучет и анализ

ГОСТ техническое задание

Введение

Недавно ко мне обратились, чтобы я посоветовал стандарты для написания технического задания (ТЗ) на разработку автоматизированных систем (АС) и программного обеспечения (ПО). Вот думаю, сейчас зайду в Яндекс, найду подходящую статейку и отправлю её. Но не тут-то было! Одной статьи, где перечисляются стандарты для ТЗ, включая шаблоны и примеры готовых документов, я не нашел. Придется сделать такую статейку самому…
И так, основные стандарты, методологии и своды знаний, где упоминается ТЗ или SRS (Software (or System) Requirements Specification):
• ГОСТ 34
• ГОСТ 19
• IEEE STD 830-1998
• ISO/IEC/ IEEE 29148-2011
• RUP
• SWEBOK, BABOK и пр.

ГОСТ 34

ГОСТ 34.602-89 Техническое задание на создание автоматизированной системы регламентирует структуру ТЗ на создание именно СИСТЕМЫ, в которую входят ПО, аппаратное обеспечение, люди, которые работают с ПО, и автоматизируемые процессы.
Согласно ГОСТ 34 техническое задание должно включать следующие разделы:
1. Общие сведения
2. Назначение и цели создания (развития) системы
3. Характеристика объектов автоматизации
4. Требования к системе
5. Состав и содержание работ по созданию системы
6. Порядок контроля и приемки системы
7. Требования к составу и содержанию работ по подготовке объекта автоматизации к вводу системы в действие
8. Требования к документированию
9. Источники разработки
При разработке ТЗ для государственных проектов Заказчики, как правило, требуют соблюдение именно этого стандарта.

ГОСТ 19

«ГОСТ 19.ххх Единая система программной документации (ЕСПД)” — это комплекс государственных стандартов, устанавливающих взаимоувязанные правила разработки, оформления и обращения программ (или ПО) и программной документации. Т.е. этот стандарт относится к разработке именно ПО.
Согласно ГОСТ 19.201-78 Техническое задание, требования к содержанию и оформлению техническое задание должно включать следующие разделы:
1. Введение;
2. Основания для разработки;
3. Назначение разработки;
4. Требования к программе или программному изделию;
5. Требования к программной документации;
6. Технико-экономические показатели;
7. Стадии и этапы разработки;
8. Порядок контроля и приемки;
9. Приложения.
Естественно ГОСТ 34 (и 19) уже устарели, и я не люблю их использовать, но при правильном интерпретации стандартов, можно получить хорошее ТЗ, см. Заключение.

IEEE STD 830-1998

Достаточно хорошее определение стандарта 830-1998 — IEEE Recommended Practice for Software Requirements Specifications дано в самом его описании:
Описывается содержание и качественные характеристики правильно составленной спецификации требований к программному обеспечению (SRS) и приводится несколько шаблонов SRS. Данная рекомендуемая методика имеет своей целью установление требований к разрабатываемому программному обеспечению, но также может применяться, чтобы помочь в выборе собственных и коммерческих программных изделий.
Согласно стандарту техническое задание должно включать следующие разделы:
1. Введение

  • 1. Назначение
  • 2. Область действия
  • 3. Определения, акронимы и сокращения
  • 4. Ссылки
  • 5. Краткий обзор

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

  • 1. Взаимодействие продукта (с другими продуктами и компонентами)
  • 2. Функции продукта (краткое описание)
  • 3. Характеристики пользователя
  • 4. Ограничения
  • 5. Допущения и зависимости

3. Детальные требования (могут быть организованы по разному, н-р, так)

  • 1. Требования к внешним интерфейсам
    • 1. Интерфейсы пользователя
    • 2. Интерфейсы аппаратного обеспечения
    • 3. Интерфейсы программного обеспечения
    • 4. Интерфейсы взаимодействия
  • 2. Функциональные требования
  • 3. Требования к производительности
  • 4. Проектные ограничения (и ссылки на стандарты)
  • 5. Нефункциональные требования (надежность, доступность, безопасность и пр.)
  • 6. Другие требования

4. Приложения
5. Алфавитный указатель
На самом деле новичку достаточно трудно понять, что должно содержаться в данных разделах по вышеприведенной структуре (как и в случае с ГОСТом), поэтому нужно читать сам стандарт, который легко найти в Интернете. Как и примеры, правда, на англ. языке.
Мне же больше нравитсяадаптированный шаблон Карла Вигерса, который я использую при разработки ТЗ для коммерческих компаний. И вообще дедушка Вигерс предоставляет множество полезных рекомендаций по работе с требованиями (куда идут деньги при покупке этих рекомендаций, читайте в начале красным). Ну а его книжку вы уже несколько раз, надеюсь, перечитали.

ISO/IEC/ IEEE 29148-2011

Стандарт IEEE 29148-2011 обеспечивает единую трактовку процессов и продуктов, используемых при разработке требований на протяжении всего жизненного цикла систем и программного обеспечения. Он приходит на смену стандартов IEEE 830-1998, IEEE 1233-1998, IEEE 1362-1998.
Данный стандарт содержит два шаблона спецификации требований:
• System requirements specification (SyRS)
• Software requirements specification (SRS)
System Requirements Specification (SyRS) определяет технические требования для выбранной системы и удобства взаимодействия предполагаемой системы и человека. Она определяет высокоуровневые требования к системе с точки зрения предметной области, а также информацию об общей цели системы, ее целевой среде и ограничениях, допущениях и нефункциональных требованиях. Она может включать в себя концептуальные модели, спроектированные для иллюстрации содержания системы, сценариев использования, основных сущностей предметной области, данных, информаций и рабочих процессов. Из определения следует, что это аналог ТЗ, описанного в ГОСТ 34.
SyRS может содержать следующие разделы:
1. Введение

  • 1. Назначение системы
  • 2. Содержание системы (границы системы)
  • 3. Обзор системы
    • 2. Функции системы
    • 3. Характеристики пользователей
  • 4. Термины и определения

2. Ссылки
3. Системные требования

  • 1. Функциональные требования
  • 2. Требования к юзабилити
  • 3. Требования к производительности
  • 4. Интерфейс (взаимодействие) системы
  • 5. Операции системы
  • 6. Состояния системы
  • 7. Физические характеристики
  • 8. Условия окружения
  • 9. Требования к безопасности
  • 10. Управление информацией
  • 11. Политики и правила
  • 12. Требования к обслуживанию системы на протяжении ее жизненного цикла
  • 13. Требования к упаковке, погрузке-разгрузки, доставке и транспортировке

4. Тестирование и проверка (список необходимых приемочных тестов, которые отражают зеркально раздел 3)
5. Приложения

  • 1. Предположения и зависимости
  • 2. Аббревиатуры и сокращений

SRS это спецификация требований для определенного программного изделия, программы или набора программ (продукт), которые выполняют определенные функции в конкретном окружении. Из определения следует, что это аналог ТЗ, описанного в ГОСТ 19, а по структуре очень напоминает SRS из стандарта IEEE 830.
SRS может содержать следующие разделы:
1. Введение

  • 1. Назначение
  • 2. Содержание (границы)
    • 3. Обзор продукта
    • 1. Взаимодействие продукта (с другими продуктами и компонентами)
    • 2. Функции продукта (краткое описание)
    • 3. Характеристики пользователей
    • 4. Ограничения
  • 4. Термины и определения

2. Ссылки
3. Детальные требования

  • 1. Требования к внешним интерфейсам
  • 2. Функции продукта
  • 3. Требования к юзабилити
  • 4. Требования к производительности
  • 5. Требования к логической структуре БД
  • 6. Ограничения проектирования
  • 7. Системные свойства ПО
  • 8. Дополнительные требования

4. Тестирование и проверка (список необходимых приемочных тестов, которые отражают зеркально раздел 3)
5. Приложения

  • 1. Предположения и зависимости
  • 2. Аббревиатуры и сокращений

Данный стандарт достаточно сложно найти в открытом виде в Интернете, но постараться можно, и опять же только на англ.

RUP

Структура SRS в RUP(Rational Unified Process) представляет собой документ, в котором необходимо описать артефакты, полученные в процессе специфицирования требований.
Шаблон SRS в RUP адаптирован из стандарта IEEE STD 830 и содержит два варианта:
• Традиционный шаблон SRS со структурированными функциональными требованиями по функциям Системы, максимально похож на 830 стандарт.
• Упрощенный шаблон SRS со структурированными функциональными требованиями в виде вариантов использования (use cases):
1. Введение.

  • 1. Цель.
  • 2. Краткая сводка возможностей.
  • 3. Определения, акронимы и сокращения.
  • 4. Ссылки.

2. Обзор системы

  • 1. Обзор вариантов использований.
  • 2. Предположения и зависимости.

3. Детальные требований

  • 1. Описание вариантов использования.
  • 2. Дополнительные требования.
  • 3. Другие функциональные требования.
  • 4. Нефункциональные требования.

4. Вспомогательная информация.
Естественно, что в Интернете можно найти шаблон и примеры SRS от RUP.

SWEBOK, BABOK и пр.

SWEBOK, BABOK, а также множество других методологий разработки ПО и сводов знаний при упоминании SRS ссылаются на вышеупомянутые зарубежные стандарты.
Также стоит сказать, что для описания требований к АС и ПО используются и другие виды документов, кот каждый называет по разному: FRD (Functional Requirements Document), RD (Requirements Document), ПЗ (Постановка задачи или Пояснительная записка) и пр. Но это все производные документы от вышеупомянутых стандартов, не имеющих отраслевой стандартизации, хотя, в некоторых случаях, уже и с устоявшейся терминологией.

А как же Agile?

Я скажу одной фразой из Манифеста Agile: «Working software over comprehensive documentation”. Поэтому в Agile документации отводится совсем мало места.
Мое же убеждение, что разработать АС без ТЗ можно (используя техники/рекомендации Agile), но вот в дальнейшем сопровождать — невозможно. Поэтому сразу задумайтесь, как вы будете писать ТЗ и другую документацию, при разработке ПО по Agile.

Как говорится, каждому проекту свое техническое задание. При правильном использовании любого из вышеперечисленных стандартов можно брать эти шаблоны для написания ТЗ, естественно адаптируя их под себя.
Но главное, чтобы ТЗ не превращалось в ХЗ, а, именно, содержание (наполнение) в ТЗ — самое главное! Но это уже совсем другая история… Если есть интерес, то можно пройти он-лайн курс Разработка и управление требованиями к ПО.
Ну а кто дочитал до конца — тому бонус: пример ТЗ, который я писал много лет назад (сейчас уже просто аналитиком давно не работаю, да и другие более удачные примеры запрещает открывать на всеобщее обозрение NDA).
Также рекомендую ознакомиться со следующими материалами:

  • Презентацией Юрия Булуя Классификация требований к программному обеспечению и ее представление в стандартах и методологиях.
  • Анализ требований к автоматизированным информационным системам. Лекция 11: Документирование требований.
  • Правила составления Software requirements specification (читать вместе с комментариями)
  • Примеры ТЗ и другой документации по разработке АС для МЭР
  • ГОСТ-овский стиль управления. Статья Gaperton по правильной работе с ТЗ по ГОСТ
  • Шаблоны документов для бизнес-аналитиков из группы ВК «Business Analysis Magazine»

Рассмотрим что же такое техническое задание, для чего его разрабатывают и в соответствии с какими требованиями.

ТЗ – основополагающий документ, которым руководствуются разработчики и проектировщики, приступая к разработке нового изделия. Оно определяет основные направления разработки: конструкции и принципа работы будущего изделия. ТЗ заявляет, с одной стороны, о потребностях общества в новых изделиях, с другой – о технических и технико-экономических характеристиках изделия.

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

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

— основное назначение, технические и тактико-технические характеристики, уровень стандартизации и унификации;

— технико-экономические показатели;

— патентно-правовые показатели;

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

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

— научно-техническая информация;

— патентная информация;

— характеристика рынка сбыта;

— характеристика производства, на котором изделие будет изготавливаться (технологическая оснащенность, квалификация кадров, технологическая дисциплина, уровень организации труда и др.).

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

Техническое задание разрабатывается, как правило, организацией-разработчиком изделия. Сформулировать задачу максимально полно и грамотно, обосновать необходимость её решения – главная цель ТЗ. Исполнитель выполняет его в контакте с заказчиком. Обязанность заказчика – предъявить разработчику исходные данные для разработки изделия.

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

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

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

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

ГОСТ Р 15.201-2000. Система разработки и постановки продукции на производство (СРПП). Продукция производственно-технического назначения. Порядок разработки и постановки продукции на производство (приведены общие требования и краткие рекомендации по разработке).

ГОСТ 19.201-78. Единая система программной документации. Техническое задание. Требования к содержанию и оформлению (кратко изложено содержание ТЗ);

ГОСТ 34.602-89. Информационная технология. Комплекс стандартов на автоматизированные системы. Техническое задание на создание автоматизированной системы (достаточно подробно изложены состав и содержание ТЗ);

ГОСТ 25123-82. Машины вычислительные и системы обработки данных. Техническое задание. Порядок построения, изложения и оформления (приведен порядок построения ТЗ). Обобщая требования этих стандартов, порядок построения, изложения и оформления ТЗ можно свести к последовательности, представленной в таблице ниже.

Раздел

Перечень рассматриваемых вопросов

Наименование и область применения (использования)

Наименование и условное обозначение продукции.

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

Возможность использования разрабатываемой продукции для поставки на экспорт

Основание для разработки

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

Цель и назначение разработки

Эксплуатационное и функциональное назначение и перспективность продукции

Источники разработки

Перечень научно-исследовательских и экспериментальных работ. Перечень экспериментальных образцов или макетов

Технические (тактико-технические)

требования

Состав продукции и требования к его устройству. Показатели назначения.

Требования к надежности.

Требования к технологичности.

Требования к уровню унификации и стандартизации. Требования безопасности.

Эстетические и эргономические требования.

Требования к патентной чистоте.

Требования к составным частям продукции, сырью, исходным и эксплуатационным материалам. Условия эксплуатации (использования).

Требования к маркировке и упаковке.

Требования к транспортированию и хранению.

Специальные требования.

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

Экономические показатели

Ориентировочная экономическая эффективность и срок окупаемости затрат.

Лимитная цена.

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

Экономические преимущества разрабатываемой продукции по

сравнению с аналогами

Стадии и этапы разработки

Стадии разработки, этапы работ и сроки их выполнения (сроки, указываемые в техническом задании, являются ориентировочными, основные сроки указываются в плане работ или в договоре); предприятие-изготовитель разрабатываемого изделия; перечень документов, представляемых на экспертизу, а также стадии, на которых она проводится, и место проведения

Порядок контроля и приемки

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

Приложение к техническому заданию

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

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

Допускается уточнять содержание разделов, вводить новые разделы или объединять некоторые из них.

В ТЗ рекомендуется предусматривать следующие положения:

— прогноз развития требований на данную продукцию на предполагаемый период ее выпуска;

— рекомендуемые этапы модернизации продукции с учетом прогноза развития требований;

— соответствие требованиям стран предполагаемого экспорта с учетом прогноза развития этих требований;

— характеристики ремонтопригодности;

— возможность замены запасных частей без применения промышленной технологии;

— доступность и безопасность эффективного использования продукции инвалидами и гражданами пожилого возраста (для соответствующей продукции, предусмотренной законодательством Российской Федерации).

Техническое задание оформляют в соответствии с общими требованиями к текстовым конструкторским документам по ГОСТ 2.105-95 (ЕСКД. Общие требования к текстовым документам) на листах формата А4 , как правило, без рамки и основной надписи. Номера листов (страниц) проставляют в верхней части листа над текстом.

Значения показателей, норм и требований указывают, как правило, с предельными отклонениями или максимальным и минимальным значениями. Если эти показатели, нормы, требования однозначно регламентированы НТД, в ТЗ следует приводить ссылку на эти документы или их разделы, а также дополнительные требования, учитывающие особенности создаваемой системы. Если конкретные значения показателей, норм и требований не могут быть установлены в процессе разработки ТЗ, следует сделать запись о порядке установления и согласования этих показателей, норм и требований: «Окончательное требование (значение) уточняется в процессе … и согласовывается протоколом с … на стадии …».

На любом этапе разработки продукции при согласии заказчика и разработчика в ТЗ или документ, его заменяющий, могут быть внесены изменения и дополнения, не нарушающие условия выполнения обязательных требований. Согласование и утверждение дополнений к ТЗ проводят в порядке, установленном для самого ТЗ. Изменения к ТЗ не допускается утверждать после представления изделия на приемо-сдаточные испытания. Регистрация, учет и хранение ТЗ и дополнений к нему проводят в соответствии с требованиями ГОСТ 2.501-88 (ЕСКД. Правила учета и хранения).

В качестве ТЗ может быть использован иной документ, содержащий необходимые и достаточные требования для разработки продукции и взаимопризнаваемый заказчиком и разработчиком. В случае инициативной разработки продукции ТЗ (или заменяющий его документ), базируется на результатах исследования рынка продукции, а также патентных исследований по ГОСТ Р 15.011- 96 (СРПП. Патентные исследования. Содержание и порядок проведения)

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

Составление технического задания (ТЗ) – сложная и ответственная задача: многие данные ещё не известны, но то, как задание будет составлено, способно облегчить или затруднить последующее проектирование. Не зря считается, что грамотное ТЗ – это половина успеха в решении задачи, а время, затраченное на подготовку ТЗ – одно из лучших вложений, которые можно сделать в период проектирования.

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

Техническое задание (ТЗ, техзадание) – основной документ, содержащий требования заказчика к системе, в соответствии с которыми осуществляется создание и разработка конечного продукта.

Мы осуществляем разработку следующих видов технического задания:

ТЗ на АСУ и её составные части
ТЗ на программу
ТЗ на сайт (портал)

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

Для чего нужно техническое задание?

Заказчику
— понять что ему необходимо;
— принять конечный продукт в соответствии с требованиями ТЗ.
Исполнителю
— понять и усвоить поставленную задачу;
— грамотно спланировать ресурсы;
— избежать излишней работы над проектом.
Конечному потребителю
— получить удовольствие от пользования качественным продуктом.

Подходы к составлению ТЗ

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

Нами выделены следующие принципы:

Совместная работа всей проектной команды
Максимально подробное описание конечного продукта
Сдача-приёмка конечного продукта.

Несмотря на столь большую значимость технического задания требования к написанию изложены только в двух документах:

ГОСТ 19.201-78. Единая система программной документации. Техническое задание. Требования к содержанию и оформлению
ГОСТ 34.602-89. Информационная технология. Комплекс стандартов на автоматизированные системы. Техническое задание на создание автоматизированной системы.

Заказать ТЗ

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

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

Образец ТЗ на станок вертикальный консольно-фрезерный с ЧПУ

Структура разделов ТЗ

Любое техническое задание должно содержать разделы, отражающие сведения:

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

Как составить хорошее ТЗ

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

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

Основные ГОСТы на ТЗ

ГОСТ 15.001-88 Система разработки и постановки продукции на производство. Продукция производственно-технического назначения.
(ТЗ для различных изделий)

ГОСТ 19.201-78 Единая система программной документации. Техническое задание. Требования к содержанию и оформлению.
(ТЗ для программы)

ГОСТ 34.602-89 Информационная технология. Комплекс стандартов на автоматизированные системы. Техническое задание на создание автоматизированной системы.
(ТЗ для автоматизированной системы)

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

Михаил Острогорский

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

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

С другой стороны, как любой текст, он принадлежит своему времени и несет на себе его отпечаток. Многие положения этого стандарта сегодня выглядят архаичными, а многие распространенные сегодня технологии и практики в нем не отражены.

Как же быть? Оставить ГОСТ 34.602-89 неизменным, значит, обречь его на окончательное устаревание, переработать полностью — отказаться от его сильных сторон и обесценить накопленную практику использования стандарта. Вероятно, лучшее решение состоит в его тактичной и вдумчивой переработке.

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

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

Что произойдет, если мы ограничимся этими и другими аналогичными улучшениями? Да, представление об автоматизированной системе, заложенное в основу стандарта, будет приведено в соответствие современности. Однако задаваемый им подход к документированию требований останется прежним. Будем назвать его «писательским», поскольку основная задача, которую он ставит перед разработчиками автоматизированных систем, — написание и утверждение выходных документов.

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

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

С другой стороны, «писательский» подход техническому заданию увеличивает сроки реализации проектов, сбивает темп работы в них.

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

Из-за той же цельности текстовые документы плохо совместимы с итерационными и гибкими методологиями разработки: как прикажете составлять и утверждать техническое задание, если требования к системе выявляются по мере ее создания, итерация за итерацией или спринт за спринтом?

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

«Писательскому» подходу к документированию требований противопоставлен «инженерный» подход. Получив развитие в рамках системной и программной инженерии, он включает в себя завидное разнообразие методологий, инструментов (например, IBM DOORS), стандартов (например, ISO/IEC/IEEE 29148:2018).

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

Сильные стороны «инженерного» подхода таковы.

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

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

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

Получится ли совместить в одном стандарте преимущества обоих подходов? Для совмещения «писательского» подхода к документированию требований с «инженерным» необходимо явным образом включить в стандарт понятие требования. В действующем стандарте этого не сделано, а представления о требованиях носят интуитивный характер. В обновленном стандарте следует привести определение требования и перечислить наиболее важные свойства требований. Автор представляет себе основной набор таких «метатребований» следующим образом.

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

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

Ниже приведен пример преобразования атомарных требований в группу требований, объединенных общим предметом.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Наверх