Жизненный цикл программного обеспечения

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

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

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

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

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

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

Функциональные спецификации определяют функции, которые должно выполнять ПО, т.е. в них определяется, что надо делать системе, а не то, как это делать.

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

Значение спецификаций:

1. Спецификации являются заданием на разработку ПО и их выполнение - закон для разработчика.

2. Спецификации используются для проверки готовности ПО.

3. Спецификации являются неотъемлемой частью программной документации, облегчают сопровождение и модификацию ПО,

Второй стадией является проектирование ПО. На этом этапе:

1. Формируется структура ПО и разрабатываются алгоритмы, задаваемые спецификациями.

2. Устанавливается состав модулей с разделением их на иерархические уровни на основе изучения схем алгоритмов.

3. Выбирается структура информационных массивов.

4. Фиксируются межмодульные интерфейсы.

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

Третья стадия - программирование. На данном этапе произвоится программирование модулей. проектные решение, полученные на предыдущей стадии, реализуются в виде программ. Разрабатываются отдельные блоки и подключаются к создаваемой системе. Одна из задач - обоснованный выбор языков программирования. На этой же стадии решаются все вопросы, связанные с особенностями типа ЭВМ.

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

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

Перед началом разработки ПО следует провести маркетинг.

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

Таблица 1

Стадии разработки, этапы и содержание работ по созданию ПО

Стадии разработки Этапы работ Содержание работ
1.Техническое задание. Обоснование необходимости разработки программы. Постановка задачи, сбор исходных материалов, выбор и обоснование критериев эффективности разрабатываемой программы. Обоснование необходимости проведения научно-исследовательских работ.
  Научно-исследовательские работы. Определение структуры входных и выходных данных. Предварительный выбор методов решения задач. Обоснование целесообразности применения ранее разработанных программ. Определение требований к техническим средствам. Обоснование принципиальной возможности решения поставленной задачи.
  Разработка и утверждение технического задания. Определение требований к программе. Разработка технико-экономического обоснования разработки программы. Определение стадий, этапов и сроков разработки программы и документации на неё. Выбор языков программирования. Определение необходимости проведения научно-исследовательских работ на последующих стадиях. Согласование и утверждение технического задания.
2. Эскизный прект. Разработка эскизного проекта. Предварительная разработка структуры входных и выходных данных. Уточнение методов решения задачи. Разработка общего описания алгоритма решения задачи. Разработка технико-экономического обоснования.
  Утверждение эскизного проекта. Разработка пояснительной записки. Согласование и утверждение эскизного проекта.
3.Технический проект. Разработка технического проекта. Уточнение структуры входных и выходных данных. Разработка алгоритма решения задачи. Определение формы представления входных и выходных данных. Определение семантики и синтаксиса языка. Разработка структуры программы. Окончательное определение конфигурации технических средств.
  Утверждение технического проекта. Разработка плана мероприятий по разработке и внедрению программ. Разработка пояснительной записки. Согласование и утверждение технического проекта.
4.Рабочий проект. Разработка программы. Программирование и отладка программы.
  Разработка программной документации. Разработка программных документов в соответствии с требованиями ГОСТ 19.101-77
  Испытание программы. Разработка согласование и утверждение порядка и методики испытаний. Проведение предварительных, государственных, межведомственных, приёмо-сдаточных и других видов испытаний. Корректировка программы и программной документации по результатам испытаний.
5.Внерение. Подготовка и передача программы. Подготовка и передача программы и программной документации для сопровождения и/или изготовления. Оформление и утверждение акта о передаче программы на сопровождение и/или изготовление. Передача программы в фонд алгоритмов и программ.

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

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

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

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

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

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

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

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

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

Программист-аналитик анализирует и проектирует комплекс взаимосвязанных программ.

Постановщик задач — разработчик формальных постановок задач, требующих реализации на ЭВМ.

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

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

Основным потребителем программ является конечный пользователь, который, как правило, не является специалистом в области программирования.

Для работы с ЭВМ существует группа специально обученных технических работников — операторов ЭВМ. Они не программируют, а используют готовые программы для обеспечения работы на ЭВМ конечных пользователей: набор текстов, печать документов, копирование информации, запись на внешние носители и др.

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

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

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

• подачу заявки на сертификацию программного обеспечения;

• принятие решения по заявке на сертификацию, в том числе назначение экспертов на проведение основных работ по сертификации из числа экспертов органа по сертификации;

• оформление договора на проведение работ по сертификации;

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

• принятие решения о выдаче сертификата соответствия и разрешения использования знака соответствия либо об отказе в выдаче сертификата соответствия;

• выдача сертификата соответствия и разрешения использования знака соответствия;

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  




Подборка статей по вашей теме: