Жизненный цикл программного обеспечения
Жизненный цикл программного обеспечения
Материал из Википедии — свободной энциклопедии
Жизненный цикл программного обеспечения (ПО) — период времени, который начинается с момента принятия решения о необходимости создания программного продукта и заканчивается в момент его полного изъятия из эксплуатации[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 предусматривает следующие стадии и этапы создания автоматизированной системы:
Формирование требований к АС
Обследование объекта и обоснование необходимости создания АС
Формирование требований пользователя к АС
Оформление отчета о выполнении работ и заявки на разработку АС
Разработка концепции АС
Изучение объекта
Проведение необходимых научно-исследовательских работ
Разработка вариантов концепции АС и выбор варианта концепции АС, удовлетворяющего требованиям пользователей
Оформление отчета о проделанной работе
Техническое задание
Разработка и утверждение технического задания на создание АС
Эскизный проект
Разработка предварительных проектных решений по системе и ее частям
Разработка документации на АС и ее части
Технический проект
Разработка проектных решений по системе и ее частям
Разработка документации на АС и ее части
Разработка и оформление документации на поставку комплектующих изделий
Разработка заданий на проектирование в смежных частях проекта
Рабочая документация
Разработка рабочей документации на АС и ее части
Разработка и адаптация программ
Ввод в действие
Подготовка объекта автоматизации
Подготовка персонала
Комплектация АС поставляемыми изделиями (программными и техническими средствами, программно-техническими комплексами, информационными изделиями)
Строительно-монтажные работы
Пусконаладочные работы
Проведение предварительных испытаний
Проведение опытной эксплуатации
Проведение приемочных испытаний
Сопровождение АС.
Выполнение работ в соответствии с гарантийными обязательствами
Послегарантийное обслуживание
Эскизный, технический проекты и рабочая документация — это последовательное построение все более точных проектных решений. Допускается исключать стадию «Эскизный проект» и отдельные этапы работ на всех стадиях, объединять стадии «Технический проект» и «Рабочая документация» в «Технорабочий проект», параллельно выполнять различные этапы и работы, включать дополнительные.
Данный стандарт не вполне подходит для проведения разработок в настоящее время: многие процессы отражены недостаточно, а некоторые положения устарели.
[править]
Стандарт ISO/IEC 12207/ и его применение
Стандарт ISO/IEC 12207:1995 «Information Technology — Software Life Cycle Processes» является основным нормативным документом, регламентирующим состав процессов жизненного цикла ПО. Он определяет структуру жизненного цикла, содержащую процессы, действия и задачи, которые должны быть выполнены во время создания ПО.
Каждый процесс разделен на набор действий, каждое действие — на набор задач. Каждый процесс, действие или задача инициируется и выполняется другим процессом по мере необходимости, причем не существует заранее определенных последовательностей выполнения. Связи по входным данным при этом сохраняются.
[править]
Процессы жизненного цикла ПО
Основные:
Приобретение (действия и задачи заказчика, приобретающего ПО)
Поставка (действия и задачи поставщика, который снабжает заказчика программным продуктом или услугой)
Разработка (действия и задачи, выполняемые разработчиком: создание ПО, оформление проектной и эксплуатационной документации, подготовка тестовых и учебных материалов и т. д.)
Эксплуатация (действия и задачи оператора — организации, эксплуатирующей систему)
Сопровождение (действия и задачи, выполняемые сопровождающей организацией, то есть службой сопровождения). Сопровождение — внесений изменений в ПО в целях исправления ошибок, повышения производительности или адаптации к изменившимся условиям работы или требованиям.
Вспомогательные
Документирование (формализованное описание информации, созданной в течение ЖЦ ПО)
Управление конфигурацией (применение административных и технических процедур на всем протяжении ЖЦ ПО для определения состояния компонентов ПО, управления его модификациями).
Обеспечение качества (обеспечение гарантий того, что ИС и процессы ее ЖЦ соответствуют заданным требованиям и утвержденным планам)
Верификация (определение того, что программные продукты, являющиеся результатами некоторого действия, полностью удовлетворяют требованиям или условиям, обусловленным предшествующими действиями)
Аттестация (определение полноты соответствия заданных требований и созданной системы их конкретному функциональному назначению)
Совместная оценка (оценка состояния работ по проекту: контроль планирования и управления ресурсами, персоналом, аппаратурой, инструментальными средствами)
Аудит (определение соответствия требованиям, планам и условиям договора)
Разрешение проблем (анализ и решение проблем, независимо от их происхождения или источника, которые обнаружены в ходе разработки, эксплуатации, сопровождения или других процессов)
Организационные
Управление (действия и задачи, которые могут выполняться любой стороной, управляющей своими процессами)
Создание инфраструктуры (выбор и сопровождение технологии, стандартов и инструментальных средств, выбор и установка аппаратных и программных средств, используемых для разработки, эксплуатации или сопровождения ПО)
Усовершенствование (оценка, измерение, контроль и усовершенствование процессов ЖЦ)
Обучение (первоначальное обучение и последующее постоянное повышение квалификации персонала)
Каждый процесс включает ряд действий. Например, процесс приобретения охватывает следующие действия:
Инициирование приобретения
Подготовка заявочных предложений
Подготовка и корректировка договора
Надзор за деятельностью поставщика
Приемка и завершение работ
Каждое действие включает ряд задач. Например, подготовка заявочных предложений должна предусматривать:
Формирование требований к системе
Формирование списка программных продуктов
Установление условий и соглашений
Описание технических ограничений (среда функционирования системы и т. д.)
[править]
Стадии жизненного цикла ПО, взаимосвязь между процессами и стадиями
Модель жизненного цикла ПО
— структура, определяющая последовательность выполнения и взаимосвязи процессов,
действий и задач на протяжении жизненного цикла.
Модель жизненного цикла зависит от специфики, масштаба и сложности проекта
и специфики условий, в которых система создается и функционирует.
Стандарт ГОСТ Р ИСО/МЭК 12207-99 не предлагает конкретную модель жизненного цикла.
Его положения являются общими для любых моделей жизненного цикла, методов и технологий создания ИС.
Он описывает структуру процессов жизненного цикла,
не конкретизируя, как реализовать или выполнить действия и задачи, включенные в эти процессы.
Модель ЖЦ ПО включает в себя:
Стадии;
Результаты выполнения работ на каждой стадии;
Ключевые события — точки завершения работ и принятия решений.
Стадия — часть процесса создания ПО, ограниченная определенными временными рамками
и заканчивающаяся выпуском конкретного продукта
(моделей, программных компонентов, документации),
определяемого заданными для данной стадии требованиями.
На каждой стадии могут выполняться несколько процессов,
определенных в стандарте ГОСТ Р ИСО/МЭК 12207-99,
и наоборот, один и тот же процесс может выполняться на различных стадиях.
Соотношение между процессами и стадиями также определяется используемой моделью жизненного цикла ПО.
[править]
Модели жизненного цикла ПО
[править]
Каскадная модель
Каскадная модель жизненного цикла («модель водопада», англ. waterfall model)
была предложена в 1970 г. Уинстоном Ройсом.
Она предусматривает последовательное выполнение всех этапов проекта в строго фиксированном порядке.
Переход на следующий этап означает полное завершение работ на предыдущем этапе.
Требования, определенные на стадии формирования требований,
строго документируются в виде технического задания
и фиксируются на все время разработки проекта.
Каждая стадия завершается выпуском полного комплекта документации,
достаточной для того, чтобы разработка могла быть продолжена другой командой разработчиков.
Этапы проекта в соответствии с каскадной моделью:
Формирование требований;
Проектирование;
Реализация;
Тестирование;
Внедрение;
Эксплуатация и сопровождение.
[править]
Спиральная модель
Спиральная модель (англ. spiral model) была разработана в середине 1980-х годов Барри Боэмом. Она основана на классическом цикле Деминга PDCA (plan-do-check-act). При использовании этой модели ПО создается в несколько итераций (витков спирали) методом прототипирования.
Прототип — действующий компонент ПО, реализующий отдельные функции и внешние интерфейсы.
Каждая итерация соответствует созданию фрагмента или версии ПО,
на ней уточняются цели и характеристики проекта,
оценивается качество полученных результатов
и планируются работы следующей итерации.
На каждой итерации оцениваются:
риск превышения сроков и стоимости проекта;
необходимость выполнения ещё одной итерации;
степень полноты и точности понимания требований к системе;
целесообразность прекращения проекта.
Один из примеров реализации спиральной модели
— RAD (англ. Rapid Application Development, метод быстрой разработки приложений).
[править]
Итерационная модель
Естественное развитие каскадной и спиральной моделей привело к их сближению
и появлению современного итерационного подхода,
который представляет рациональное сочетание этих моделей.
Различные варианты итерационного подхода реализованы в большинстве современных технологий и методов (RUP, MSF, XP).
[править]
Литература
Братищенко В.В. Проектирование информационных систем. — Иркутск: Изд-во БГУЭП, 2004. — 84 с.
Вендров А.М. Проектирование программного обеспечения экономических информационных систем. — М.: Финансы и статистика, 2000.
Грекул В.И., Денищенко Г.Н., Коровкина Н.Л. Проектирование информационных систем. — М.: Интернет-университет информационных технологий - ИНТУИТ.ру, 2005.
Мишенин А.И. Теория экономических информационных систем. — М.: Финансы и статистика, 2000. — 240 с.
[править]
Примечания
↑ Стандарт IEEE Std 610.12, Глоссарий