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

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

Материал из Википедии — свободной энциклопедии

Жизненный цикл программного обеспечения (ПО) — период времени, который начинается с момента принятия решения о необходимости создания программного продукта и заканчивается в момент его полного изъятия из эксплуатации[1]. Этот цикл — процесс построения и развития ПО.

Стандарты жизненного цикла ПО

  • ГОСТ 34.601-90

  • ISO/IEC 12207:1995 (российский аналог — ГОСТ Р ИСО/МЭК 12207-99)

Методологии разработки ПО

  • Rational Unified Process (RUP).

  • Microsoft Solutions Framework (MSF). Включает 4 фазы: анализ, проектирование, разработка, стабилизация, предполагает использование объектно-ориентированного моделирования.

  • Экстремальное программирование (англ. Extreme Programming, XP). В основе методологии командная работа, эффективная коммуникация между заказчиком и исполнителем в течение всего проекта по разработке ИС. Разработка ведется с использованием последовательно дорабатываемых прототипов.

Стандарт ГОСТ 34.601-90

Стандарт ГОСТ 34.601-90 предусматривает следующие стадии и этапы создания автоматизированной системы:

  1. Формирование требований к АС

    1. Обследование объекта и обоснование необходимости создания АС

    2. Формирование требований пользователя к АС

    3. Оформление отчета о выполнении работ и заявки на разработку АС

  1. Разработка концепции АС

    1. Изучение объекта

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

    3. Разработка вариантов концепции АС и выбор варианта концепции АС, удовлетворяющего требованиям пользователей

    4. Оформление отчета о проделанной работе

  1. Техническое задание

    1. Разработка и утверждение технического задания на создание АС

  1. Эскизный проект

    1. Разработка предварительных проектных решений по системе и ее частям

    2. Разработка документации на АС и ее части

  1. Технический проект

    1. Разработка проектных решений по системе и ее частям

    2. Разработка документации на АС и ее части

    3. Разработка и оформление документации на поставку комплектующих изделий

    4. Разработка заданий на проектирование в смежных частях проекта

  1. Рабочая документация

    1. Разработка рабочей документации на АС и ее части

    2. Разработка и адаптация программ

  1. Ввод в действие

    1. Подготовка объекта автоматизации

    2. Подготовка персонала

    3. Комплектация АС поставляемыми изделиями (программными и техническими средствами, программно-техническими комплексами, информационными изделиями)

    4. Строительно-монтажные работы

    5. Пусконаладочные работы

    6. Проведение предварительных испытаний

    7. Проведение опытной эксплуатации

    8. Проведение приемочных испытаний

  1. Сопровождение АС.

    1. Выполнение работ в соответствии с гарантийными обязательствами

    2. Послегарантийное обслуживание

Эскизный, технический проекты и рабочая документация — это последовательное построение все более точных проектных решений. Допускается исключать стадию «Эскизный проект» и отдельные этапы работ на всех стадиях, объединять стадии «Технический проект» и «Рабочая документация» в «Технорабочий проект», параллельно выполнять различные этапы и работы, включать дополнительные.

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

Стандарт ISO/IEC 12207/ и его применение

Стандарт ISO/IEC 12207:1995 «Information Technology — Software Life Cycle Processes» является основным нормативным документом, регламентирующим состав процессов жизненного цикла ПО. Он определяет структуру жизненного цикла, содержащую процессы, действия и задачи, которые должны быть выполнены во время создания ПО.

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

Процессы жизненного цикла ПО

  • Основные:

    • Приобретение (действия и задачи заказчика, приобретающего ПО)

    • Поставка (действия и задачи поставщика, который снабжает заказчика программным продуктом или услугой)

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

    • Эксплуатация (действия и задачи оператора — организации, эксплуатирующей систему)

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

  • Вспомогательные

    • Документирование (формализованное описание информации, созданной в течение ЖЦ ПО)

    • Управление конфигурацией (применение административных и технических процедур на всем протяжении ЖЦ ПО для определения состояния компонентов ПО, управления его модификациями).

    • Обеспечение качества (обеспечение гарантий того, что ИС и процессы ее ЖЦ соответствуют заданным требованиям и утвержденным планам)

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

    • Аттестация (определение полноты соответствия заданных требований и созданной системы их конкретному функциональному назначению)

    • Совместная оценка (оценка состояния работ по проекту: контроль планирования и управления ресурсами, персоналом, аппаратурой, инструментальными средствами)

    • Аудит (определение соответствия требованиям, планам и условиям договора)

    • Разрешение проблем (анализ и решение проблем, независимо от их происхождения или источника, которые обнаружены в ходе разработки, эксплуатации, сопровождения или других процессов)

  • Организационные

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

    • Создание инфраструктуры (выбор и сопровождение технологии, стандартов и инструментальных средств, выбор и установка аппаратных и программных средств, используемых для разработки, эксплуатации или сопровождения ПО)

    • Усовершенствование (оценка, измерение, контроль и усовершенствование процессов ЖЦ)

    • Обучение (первоначальное обучение и последующее постоянное повышение квалификации персонала)

Каждый процесс включает ряд действий. Например, процесс приобретения охватывает следующие действия:

  1. Инициирование приобретения

  2. Подготовка заявочных предложений

  3. Подготовка и корректировка договора

  4. Надзор за деятельностью поставщика

  5. Приемка и завершение работ

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

  1. Формирование требований к системе

  2. Формирование списка программных продуктов

  3. Установление условий и соглашений

  4. Описание технических ограничений (среда функционирования системы и т. д.)

Стадии жизненного цикла ПО, взаимосвязь между процессами и стадиями

Модель жизненного цикла ПО

— структура, определяющая последовательность выполнения и взаимосвязи процессов,

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

Модель жизненного цикла зависит от специфики, масштаба и сложности проекта

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

Стандарт ГОСТ Р ИСО/МЭК 12207-99 не предлагает конкретную модель жизненного цикла.

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

Он описывает структуру процессов жизненного цикла,

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

Модель ЖЦ ПО включает в себя:

  1. Стадии;

  2. Результаты выполнения работ на каждой стадии;

  3. Ключевые события — точки завершения работ и принятия решений.

Стадия — часть процесса создания ПО, ограниченная определенными временными рамками

и заканчивающаяся выпуском конкретного продукта

(моделей, программных компонентов, документации),

определяемого заданными для данной стадии требованиями.

На каждой стадии могут выполняться несколько процессов,

определенных в стандарте ГОСТ Р ИСО/МЭК 12207-99,

и наоборот, один и тот же процесс может выполняться на различных стадиях.

Соотношение между процессами и стадиями также определяется используемой моделью жизненного цикла ПО.

Модели жизненного цикла ПО

Каскадная модель

Каскадная модель жизненного цикла («модель водопада», англ. waterfall model)

была предложена в 1970 г. Уинстоном Ройсом.

Она предусматривает последовательное выполнение всех этапов проекта в строго фиксированном порядке.

Переход на следующий этап означает полное завершение работ на предыдущем этапе.

Требования, определенные на стадии формирования требований,

строго документируются в виде технического задания

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

Каждая стадия завершается выпуском полного комплекта документации,

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

Этапы проекта в соответствии с каскадной моделью:

  1. Формирование требований;

  2. Проектирование;

  3. Реализация;

  4. Тестирование;

  5. Внедрение;

  6. Эксплуатация и сопровождение.

Спиральная модель

Спиральная модель (англ. spiral model) была разработана в середине 1980-х годов Барри Боэмом. Она основана на классическом цикле Деминга PDCA (plan-do-check-act). При использовании этой модели ПО создается в несколько итераций (витков спирали) методом прототипирования.

Прототип — действующий компонент ПО, реализующий отдельные функции и внешние интерфейсы.

Каждая итерация соответствует созданию фрагмента или версии ПО,

на ней уточняются цели и характеристики проекта,

оценивается качество полученных результатов

и планируются работы следующей итерации.

На каждой итерации оцениваются:

  • риск превышения сроков и стоимости проекта;

  • необходимость выполнения ещё одной итерации;

  • степень полноты и точности понимания требований к системе;

  • целесообразность прекращения проекта.

Один из примеров реализации спиральной модели

RAD (англ. Rapid Application Development, метод быстрой разработки приложений).

Итерационная модель

Естественное развитие каскадной и спиральной моделей привело к их сближению

и появлению современного итерационного подхода,

который представляет рациональное сочетание этих моделей.

Различные варианты итерационного подхода реализованы в большинстве современных технологий и методов (RUP, MSF, XP).

Литература

  • Братищенко В.В. Проектирование информационных систем. — Иркутск: Изд-во БГУЭП, 2004. — 84 с.

  • Вендров А.М. Проектирование программного обеспечения экономических информационных систем. — М.: Финансы и статистика, 2000.

  • Грекул В.И., Денищенко Г.Н., Коровкина Н.Л. Проектирование информационных систем. — М.: Интернет-университет информационных технологий - ИНТУИТ.ру, 2005.

  • Мишенин А.И. Теория экономических информационных систем. — М.: Финансы и статистика, 2000. — 240 с.

  • Орлик С., «Модели жизненного цикла»

Примечания

  1. Стандарт IEEE Std 610.12, Глоссарий