что есть
формализация требований
к программному обеспечению
и как ее добиться
с помощью
технического задания
и других способов ?
Назначение формализации требований
Требования появляются после этапа их выделения в виде некоторой абстракции.
Они оседают в виде понимания разработчиками нужд заказчика и будущих пользователей создаваемой системы.
Это понимание может принимать очень
разные представления. Каждое представление требований выполняет определенную задачу.
Следовательно, требования должны быть по-разному формализованы.
Что есть формализация требований?
Представление их в рамках математического формализма
Обеспечивает за счет выбранной формы представления или
контролирует
, затратив на это приемлемые усилия,
следующие требования:
-
адекватность;
-
однозначность;
-
непротиворечивость;
-
полнота.
Неформальная постановка требований
Данный метод хорош в случаях:
-
в небольших проектах;
-
при вовлеченности заказчика
в разработку;
-
когда есть взаимопонимание между
заказчиком и командой;
-
когда лишние формальности не требуются;
-
документами в такой ситуации, например, оказываются электронные письма.
Важно вовремя понять, когда такой способ перестает работать и необходимы формальные подходы.
Формализация требований с помощью use-case диаграмм UML
Функциональные требования являются основными, для них строятся диаграммы вариантов использования.
Требуемое поведение системы специфицируется одним или несколькими вариантами использования, которые определятся в соответствии с потребностями акторов.
ФОРМАЛИЗАЦИЯ ТРЕБОВАНИЙ С ПОМОЩЬЮ USE-CASE ДИАГРАММ UML
Минусы:
-
не позволяет проанализировать существующую модель бизнес-процессов, выявить ее недостатки;
-
недостаточная степень регламентации описания функции;
-
невозможно проследить механизмы и управление процессом и
их логику взаимодействия.
Плюсы:
-
простота, наглядность и
читабельность неспециалистами.
Формальная модель требований
В данном случае строится модель, описывающая некоторые аспекты (чаще функциональные) системы.
Существует процесс построения формального описания требований к программной системе FOREST (FOrmal REquirements Specification and Testing), в который включено использование формальной модели требований в качестве основы для построения тестов.
ФОРМАЛЬНАЯ МОДЕЛЬ ТРЕБОВАНИЙ
FOREST предоставляет возможность автоматизации выполнения ряда сложных и трудоемких задач разработки, таких как:
- автоматизированная проверка полноты и непротиворечивости набора требований;
- автоматизированное построение набора тестов, проверяющих работу системы в большом количестве разнообразных ситуаций;
- генерация первых вариантов исходного кода системы из формальных спецификаций;
-
генерация прототипов, симуляция работы системы для более быстрого получения отзывов пользователей о ней.
ФОРМАЛИЗАЦИЯ требований в виде документов
По SWEBOK для описания комплексных проектов в части требований используется три основных документа:
Определение системы (system definition)
Спецификация системных требований (system requirements)
Спецификация программных требований (software requirements)
-
Техническое задание
-
Технической проект
Формализация требований с помощью технического задания (ТЗ) и технического проекта (ТП)
-
что же такое ТЗ и ТП?
-
что в них должно быть?
-
что означает “хорошее ТЗ”?
что есть Техническое задание?
Техническое задание — исходный документ на проектирование технического объекта, устанавливающий:
-
основное назначение разрабатываемого объекта;
-
его технические
характеристики;
-
показатели качества;
-
требования;
-
стадии создания документации и её состав;
-
а также специальные требования.
В ТЗ описывается, ЧТО нужно заказчику, в отличие от последующей проектной документации, в которой говорится, КАК этого достичь.
что есть технический проект?
Технический проект – это документ (или их совокупность), который предназначен для технической реализации требований, сформулированных в Техническом задании, содержит окончательные проектные решения по изделию (автоматизированной системе).
Разрабатывается архитектором системы или группой программистов во главе с ним.
КЕМ пишется тЗ?
Бизнес-аналитиком
Не программистом
Не программистом
Бизнес-аналитиком
Сотрудник должен иметь ряд навыков и знаний, таких как опыт программирования и построения баз данных, хорошее знание систем, с которыми придется иметь дело.
Однако чем больше проект, тем и больше людей работает над Техническим заданием.
А нужно ли техническое задание?
В Scrum, Agile и прочих технологиях говорится: «минимум бумаг, ближе к Заказчику, больше конкретики и быстрее к результату». Но формализацию требований никто не отменял и там это явно сказано.
Цели ТЗ:
-
перевести требования на язык предметной области;
-
сформулировать задачу максимально полно и грамотно;
-
обосновать необходимость её решения.
Хорошее техническое задание — важнейшая составляющая успеха в проекте, оно является основой порядка, грамотное ТЗ — это 50 % успеха в решении задачи, однако это не панацея.
Стандарты написания и оформления ТЗ и ТП
Для ТЗ:
-
ГОСТ 19.201-78.
ЕСКД. ТЗ. Требования к содержанию и оформлению;
-
ГОСТ 34.602-89.
Техническое задание на создание автоматиз. системы;
-
ГОСТ 2.114-95.
ЕСКД. Технические условия.
Для ТП:
-
ГОСТ 34 серии;
-
ГОСТ 2.120-73. Требования к выполнению технического проекта;
-
ГОСТ 2.102-68. Номенклатура конструкторских документов технического проекта.
ГОСТы не являются универсальной хорошей практикой.
Используя ГОСТы нужно искать
"золотую середину"
. Также требований ГОСТа явно
недостаточно
, чтобы разработать
эффективное
Техническое задание.
Понятие «Хорошего ТЗ»
Для менеджера ТЗ хорошее тогда, когда по нему удается сделать проект с первого захода. Когда время, ресурсы и результат оправдали ожидания.
Чтобы при сдаче избежать разработчику — неприятных вопросов, а заказчику — неожиданных трат, нужно заранее определить требования. Заказчику нужно понимать что он будет принимать у разработчиков.
В отличном ТЗ определен порядок тестирования и приемки результата, причем не скопирован из ГОСТа, а действительно продуман и принят сторонами.
дл
я кого пишется ТЗ?
У ТЗ два основных читателя:
и один редкий — тот, кто будет разбираться в проблемах между первыми двумя.
Типичные реакции типичного клиента на ТЗ в 50-70 страниц:
-
попытка раздать его всем коллегам «почитать»;
-
подписывание без чтения.
Ведение листа изменений. Там могут появиться и отклонения от требований, и их придется согласовывать.
требования В ТЗ?
При написании ТЗ необходимо
:
-
убедиться, действительно ли заявленные потребности ценны для заказчика;
-
правдивы ли исходные данные;
-
какие неблагоприятные или вредные последствия могут возникнуть в процессе реализации этой потребности;
-
выяснить суть потребности, отыскать источник её возникновения;
-
выяснить, что мешает использованию прежнего изделия для удовлетворения новых потребностей.
какие требования писать в тз?
Здесь нам поможет ГОСТ. Например:
-
требования в функциональности;
-
требования к безопасности и правам доступа;
-
требования к квалификации персонала;
-
и другие.
Требования к функциональности – это 90% сложности работ по разработке ТЗ.
Свойства требований:
-
требование должно быть понятным;
-
требование должно быть конкретным;
-
требование должно быть тестируемым.
Если результат выполнения требования невозможно протестировать, значит, оно либо не понятное, либо не конкретное.
Структура ТЗ и обязательные пункты
ГОСТ рекомендует следующие разделы:
-
общие сведения;
-
назначение и цели создания (развития)
системы;
-
характеристика объектов автоматизации;
-
требования к системе;
-
состав и содержание работ по созданию системы;
-
порядок контроля и приемки системы;
-
требования к составу и содержанию работ по подготовке объекта автоматизации к вводу системы в действие;
-
требования к документированию;
-
источники разработки.
Картинки или текст?
Все что можно нарисовать — нужно рисовать.
Макеты, схемы страниц, направления движения денег, структуру данных.
Однако разработчику нужно кроме картинок написать довольно много текста:
- что откуда выводится;
- какими признаками обусловлено;
- по каким формулам считается;
- где настраивается;
-
как надо и как НЕ надо это реализовывать.
Макеты или текст?
Макеты предоставляют:
-
наглядность;
-
однозначность расположения элементов;
-
лаконичность.
Макеты НЕ предоставляют:
-
информации о функционировании элементов;
-
формализации.
Текстовые описания предоставляют:
-
полную информацию о функционировании;
-
полное описание свойств блоков, элементов и т.д.;
-
формальность описания.
Текстовые описания НЕ предоставляют:
Живые макеты в Axure и Balsamiq
Преимущества:
-
возможность программирования поведения кнопок, текстовых полей, панелей и прочих виджетов, вследствие чего получившиеся макеты или прототипы приближены к окончательному результату и доступны для тестирования.
Недостатки:
- ТЗ почти вырождается, содержит лишь общую информацию и структурные вещи.
-
При ее применении программист должен смотреть в три места: ТЗ, Axure и верстку. При большом объеме между ними не избежать противоречий, и проблем может оказаться больше чем выигрыш.
Выводы
Главное — не верьте в них слепо, адаптируйтесь под проект, команду, заказчика.
Сам проект автоматизации не решает проблем бизнеса – помните об этом.