Тема 2. Жизненный цикл программы. Критерии качества программы.
Для лучшего управления процессом разработки больших программных проектов выделяют шесть этапов, представляющих собой «цикл разработки» или «жизненный цикл» программного обеспечения:
1) постановка задачи, анализ и уточнение требований, предъявляемых к системе;
2) определение спецификаций и разработка системной архитектуры;
3) разработка проекта, детальное проектирование модулей;
4) программирование (кодирование);
5) тестирование и отладка;
6) эксплуатация и сопровождение.
Основные этапы разработки и проектирования регламентируются ГОСТ 19.102-77 в соответствии с табл.2.
Таблица 2.
Стадии и этапы разработки программного обеспечения
Стадии разработки | Этапы работ | Содержание работ |
1. Техническое задание | Обоснование необходимости разработки программы | Постановка задачи. Сбор исходных материалов. Выбор и обоснование критериев эффективности и качества разрабатываемой программы. Обоснование необходимости проведения научно-исследовательских работ |
Научно-исследовательские работы | Определение структуры входных и выходных данных. Предварительный выбор методов решения задач. Обоснование целесообразности применения ранее разработанных программ. Определение требований к техническим средствам. Обоснование принципиальной возможности решения поставленной задачи | |
Разработка и утверждение технического задания | Определение требований к программе. Разработка технико-экономического обоснования разработки программы. Определение стадий, этапов и сроков разработки программы и документации на нее. Выбор языков программирования. Определение необходимости проведения научно-исследовательских работ на последующих стадиях. Согласование и утверждение технического задания | |
2. Эскизный проект | Разработка эскизного проекта | Предварительная разработка структуры входных и выходных данных. Уточнение методов решения задачи. Разработка общего описания алгоритма решения задачи. Разработка технико-экономического обоснования |
Утверждение эскизного проекта | Разработка пояснительной записки. Согласование и утверждение эскизного проекта | |
3. Технический проект | Разработка технического проекта | Уточнение структуры входных и выходных данных. Разработка алгоритма решения задачи. Определение формы представления входных и выходных данных. Определение семантики и синтаксиса языка Разработка структуры программы. Окончательное определение конфигурации технических средств |
Утверждение технического проекта | Разработка плана мероприятий по разработке и внедрению программ. Разработка пояснительной записки. Согласование и утверждение технического проекта | |
4. Рабочий проект | Разработка программы | Программирование и отладка программы |
Разработка программной документации | Разработка программных документов в соответствии с ГОСТ 19.101-77 | |
Испытания программы | Разработка, согласование и утверждение программы и методики испытаний | |
Испытания программы | Проведение предварительных государственных, межведомственных, приемосдаточных и других видов испытаний. Корректировка программы и программной документации по результатам испытаний | |
5. Внедрение | Подготовка и передача программы | Подготовка и передача программы и программной документации для сопровождения и (или) изготовления. Оформление и утверждение акта о передаче программы на сопровождение и (или) изготовление. Передача программ в фонд алгоритмов и программ |
Стадии эскизного и технического проектов могут быть исключены по согласованию с заказчиком. Кроме этого, допускается вводить другие этапы работ, если это технически обосновано.
Техническое задание и спецификация программы
Техническое задание (ТЗ) является одним из важнейших документов в программной документации. Состав ТЗ регламентируется ГОСТ-м 19.201-78 и содержит следующие пункты:
· введение;
· основание для разработки;
· назначение разработки;
· требования к программе или программному изделию;
· требования к программной документации;
· технико-экономические показатели;
· стадии и этапы разработки;
· порядок контроля и приема.
В техническом задании допускается включать приложения, добавлять новые разделы, уточняющие задачу.
В разделе “Введение” указывают наименование, краткую характеристику области применения программы или программного изделия или объекта, в котором используют программу или программное изделие.
В разделе “Основания для разработки” должны быть указаны: документ (документы), на основании которых ведется разработка; организация, утвердившая этот документ, и дата его утверждения; наименование и(или) условное обозначение темы разработки.
В разделе “Назначение разработки” должно быть указано функциональное и эксплуатационное назначение программы или программного изделия.
Раздел “Требования к программе или программному изделию” должен содержать следующие подразделы:
· требования к функциональным характеристикам, где указываются основные требования к составу выполняемых функций, организации входных и выходных данных, временным характеристикам и т.п.;
· требования к надежности, где указываются требования к обеспечению надежного функционирования (обеспечения устойчивого функционирования, контроль входной и выходной информации, время восстановления после отказа и т.п.);
· условия эксплуатации, где указываются условия (температура окружающего воздуха, относительная влажность и т.п. для выбранных типов носителей данных), при которых должны обеспечиваться заданные характеристики, а также вид обслуживания, необходимое количество и квалификация персонала;
· требования к составу и параметрам технических средств, где приводится необходимый состав технических средств с указанием их основных технических характеристик;
· требования к информационной и программной совместимости, где должны быть указаны требования к информационным структурам на входе и выходе и методам решения, исходным кодам, языкам программирования и программным средствам, используемым программой. При необходимости должна обеспечиваться защита информации и программ;
· требования к маркировке и упаковке;
· требования к транспортированию и хранению, где указываются условия транспортирования, места хранения, условия хранения, условия складирования, сроки хранения в различных условиях.
В разделе “Требования к программной документации” должен быть указан предварительный состав программной документации и, при необходимости, специальные требования к ней.
В разделе “Технико-экономические показатели” должны быть указаны: ориентировочная экономическая эффективность, предполагаемая годовая потребность, экономические преимущества разработки по сравнению с лучшими отечественными и зарубежными образцами и аналогами.
В разделе “Стадии и этапы разработки” устанавливают необходимые стадии разработки, этапы и содержание работ (перечень программных документов, которые должны быть разработаны), а также ориентировочные сроки выполнения отдельных этапов.
В разделе “Порядок контроля и приемки” указываются основные мероприятия по контролю за выполнением работ и по приемке полученных результатов.
Развернутый план проекта программной системы содержит следующие пункты:
1. Введение. Достаточно подробная общая характеристика системы, чтобы будущий пользователь мог принять решение о том, отвечает ли система его требованиям.
1.1. Функции системы. Поясняется назначение прикладной системы, приводится перечень основных процедур и обрабатываемых данных.
1.2. Сфера применения. Характеризуется круг пользователей, на которых ориентирована разрабатываемая система.
1.3. Сбор и корректировка данных. Описываются источники исходных данных, поступающих в систему, а также источники данных, используемых для корректировки. В этот пункт следует включить планы и графики корректирования данных. В дальнейшем информация используется как руководство при детальной проработке программ корректировки данных.
1.4. Отчеты. Описываются формы, определяются периодичность и общее содержание отчетов, выдаваемых системой. Эта информация служит основой для последующей детальной проработки программ генерации отчетов.
2. Вычислительная среда. Определяется минимальный состав оборудования, необходимого для нормального функционирования системы.
2.1. Технические средства. Описывается конфигурация технических средств, указывается требуемый объем оперативной памяти, определяются ограничения на сегментацию памяти, требования к внешним устройствам и т. д.
2.2. Программные средства. Указываются типы операционных систем, используемые библиотеки стандартных программ, системы управления базами данных и т. д.
2.3. Режимы работы. Определяется возможность функционирования системы в условиях пакетного режима, интерактивного режима, режима реального времени или их комбинаций.
3. Связь с внешней средой. Описывается взаимодействие пользователей с системой.
3.1. Вход системы. Определяются форматы данных всех типов, вводимых пользователями, а также внутренняя структура сданных. Эта информация служит руководством при разработке бланков входных форм и подготовке данных.
3.2. Выход системы. Описываются форматы отчетов, сообщений и других выходных форм. Эта информация используется при составлении планов и подготовке данных.
3.3. Управляющие параметры. Перечисляются параметры, задаваемые при настройке системы на конкретную конфигурацию технических и программных средств.
3.4. Рабочие инструкции. Дается общий обзор содержания инструкций, касающихся обращения с лентами, хранения бумаги и т. д. Данная информация используется при составлении инструкций для обслуживающего персонала.
4. Качество системы.
4.1. Соблюдение стандартов и общепринятых обозначений. Указывается, в какой мере система соответствует стандартному варианту языка программирования и отвечает стандартам версии, эксплуатируемой в данном вычислительном центре. Кроме того, определяется степень использования общеупотребительных сокращений и математических обозначений. Это позволяет оценить трудоемкость сопровождения системы.
4.2. Универсальность системы. Обсуждается уровень независимости системы от конкретных внешних условий, с учетом которых она разрабатывается. Это характеризует сложность перевода системы на другие вычислительные установки.
4.3. Надежность функционирования. Рассматриваются такие вопросы, как ожидаемое время наработки на отказ, способы корректировки ошибок, проверка достоверности информации, точность результатов, статистические характеристики всех модулей, осуществляющих вероятностные расчеты, например генераторов псевдослучайных чисел.
4.4. Защита информации. Описываются средства, обеспечивающие сохранность данных и авторизацию доступа, используемые способы кодирования.
5. Документация по системе.
5.1. Пособия и руководства. Приводится перечень документации, прилагаемой к системе, – пособий, форм отчетности, рабочих описаний, системной и программной документации.
5.2. Спецификации программ. Дается общее функциональное описание отдельных программ, входящих в состав системы. Эта информация служит руководством при разработке программ.
5.2. Организация данных. Приводится общее описание взаимодействия отдельных информационных потоков в системе. Эти сведения используются при разработке принципов организации данных.
Документы, содержащие общее описание проекта, служат, с одной стороны, своеобразным эталоном, на основании которого осуществляется проверка законченной системы, с другой – используются как руководства на этапах разработки, реализации и испытаний.