Стадии и этапы разработки систем на примере программ
Программы создаются, эксплуатируются и развиваются во времени. К счастью, проблема их утилизации отсутствует.
Программы с малой длительностью жизненного цикла создаются для разового решения научных и иных задач. Их жизненный цикл - от нескольких дней до нескольких месяцев. Ранее такие программы не имели удобного интерфейса, так как затраты на разработку удобного интерфейса еще недавно в несколько раз превосходили затраты на разработку вычислительной части. Жизненный цикл программных изделий показан на рис. 1.1.
Рис. 1.1. Жизненный цикл программных изделий
При создании программ выделяются следующие этапы:
1) анализ требований, предъявляемых к системе (системный анализ). (Обычно проводится на основе первичного исследования потоков информации при традиционном проведении работ с фиксацией видов этих работ и их последовательности);
2) определение целей, достигаемых разрабатываемыми программами;
3) выявление аналогов, обеспечивающих достижение подобных целей, их достоинств и недостатков;
4) постановка задачи на разработку новых программ, определение внешних спецификаций (то есть описаний входной и выходной информации, а иногда и их форм) и способов (алгоритмов, методов) обработки информации;
5) оценка достижения целей разработки. (Далее, при необходимости, этапы 1-5 могут быть итеративно повторены до достижения удовлетворительного облика изделия с описанием выполняемых им функций и некоторой ясностью реализации его функционирования);
6) рассмотрение возможных вариантов структурного построения программного изделия: или в виде нескольких программ, или нескольких частей одной программы; результатом этой работы являются варианты архитектуры программной системы и (или) требования к структуре отдельных программных компонент; организация файлов для межпрограммного обмена данными;
7) разработка окончательного варианта архитектуры системы и разработка окончательной структуры программных компонент;
8) составление и проверка спецификаций модулей;
9) составление описаний логики модулей;
10) составление окончательного плана реализации программ;
11) кодирование и тестирование отдельных модулей и совокупности готовых модулей до получения готовой программы;
12) комплексное тестирование;
13) разработка эксплуатационной документации на программу;
14) проведение приемо-сдаточных и других испытаний;
15) корректировка программ по результатам испытаний;
16) окончательная сдача программного изделия заказчику;
17) тиражирование программного изделия;
18) сопровождение программы.
Итак, получение способа решения задачи является объектом проектирования.
ГОСТ 19.102-77 регламентирует стадии и этапы программных разработок в течение всего жизненного цикла. Данный стандарт сформировался на основе анализа удачных и неудачных программных разработок и содержит основные рекомендации по проведению новых разработок. Стандарт уже пережил несколько технологий программирования. При этом, практически не изменяясь, он не являлся тормозом прогресса. ГОСТ 19.102-77 содержит описание аналитико-синтетического эвроритма (алгоритма действий проектировщика с использованием методов анализа и синтеза) по временным этапам проекта.
В ходе проекта предусматриваются отдельные моменты времени, которые характеризуются законченным оформлением результатов всех работ, выполненных разработчиками до данного момента. По достижении каждого очередного такого момента заказчик имеет возможность рассмотреть состояние проекта и принять решение по дальнейшему продолжению проектных работ, например, принять решение о продолжении работ по одному из согласованных вариантов. Момент передачи информации заказчику для принятия того или иного решения соответствует отдельной стадии разработки.
Описания этапов регламентируют порядок выполнения отдельных видов работ для достижения стадии. Как правило, укрупненные этапы делятся на подэтапы, которые также называются этапами. Мелкое деление этапов соответствует видам работ.
Программный документ "Техническое задание" (ТЗ), помимо основных требований к программному изделию, содержит проект порядка взаимодействия заказчика и исполнителя по окончанию конкретных этапов, то есть перечень необходимых стадий и этапов и требований к их выполнению. ТЗ может сразу не устанавливать всех требований, которые могут быть уточнены и согласованы с заказчиком на последующих стадиях. Однако сама возможность изменения требований должна закладываться в ТЗ.
"Эскизный проект" (ЭП), как правило, необходим для разработки нескольких альтернативных вариантов реализации будущего изделия и уточнения требований на основе их анализа. Степень проработки при этом должна быть достаточной лишь для возможности сравнения вариантов.
"Технический проект" (ТП) выполняется для получения однозначного описания конечного (оптимального) варианта построения программного изделия и порядка его реализации.
"Рабочий проект" (РП) необходим для реализации изделия в соответствии с ранее намеченным планом.
Стадия "Внедрение" необходима для размножения программной документации в нужном количестве, обучения пользователей, помощи в освоении программы.
Научно-исследовательская работа (НИР) может быть самостоятельным этапом или подэтапом. НИР в основном проводится для выявления научных достижений, которые могут быть использованы в разработке, проверки реализуемости изделия и уточнения отдельных его характеристик.