Жизненный цикл программных систем. Понятие жизненного цикла программного обеспечения. Основные этапы решения задач

ЖЦ ПО – период времени, который начинается с момента принятия решения о необходимости создания программного продукта и заканчивается в момент его полного изъятия из эксплуатации.

Процессы ЖЦ ПО:

Основные,

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

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


Основные:

1. Приобретение – действия и задачи заказчика, приобретающего ПО;

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

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

4. Эксплуатация – действия и задачи оператора организации, эксплуатирующей систему;

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

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

1. Документирование – формализованное описание информации, созданной в течение ЖЦ ПО;

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

3. Обеспечение качества– обеспечение гарантий того, что ПО и процессы ее ЖЦ соответствуют заданным требованиям и утвержденным планам;

4. Верификация – определение того, что программные продукты полностью удовлетворяют требованиям или условиям, обусловленным предшествующими действиями;

5. Аттестация – определение полноты соответствия заданных требований и созданной системы их конкретному функциональному назначению;

6. Совместная оценка– оценка состояния работ по проекту: контроль планирования и управления ресурсами, персоналом, аппаратурой, инструментальными средствами;

7. Аудит – определение соответствия требованиям, планам и условиям договора;

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

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

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

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

3. Усовершенствование – оценка, измерение, контроль и усовершенствование процессов ЖЦ;

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

В 2002 г. был опубликован стандарт на процессы жизненного цикла систем (ISO/IEC 15288 System life cycle processes). К разработке стандарта были привлечены специалисты различных областей: системной инженерии, программирования, управления качеством, человеческими ресурсами, безопасностью и пр. Был учтен практический опыт создания систем в правительственных, коммерческих, военных и академических организациях. Стандарт применим для широкого класса систем, но его основное предназначение – поддержка создания компьютеризированных систем.



Согласно стандарту ISO/IEC серии 15288 в структуру ЖЦ следует включать следующие группы процессов:

1. Договорные процессы:

Приобретение (внутренние решения или решения внешнего поставщика);

Поставка (внутренние решения или решения внешнего поставщика);

2. Процессы предприятия:

Управление окружающей средой предприятия;

Инвестиционное управление;

Управление ЖЦ ИС;

Управление ресурсами;

Управление качеством;

3. Проектные процессы:

Планирование проекта;

Оценка проекта;

Контроль проекта;

Управление рисками;

Управление конфигурацией;

Управление информационными потоками;

Принятие решений.

4. Технические процессы:

Определение требований;

Анализ требований;

Разработка архитектуры;

Внедрение;

Интеграция;

Верификация;

Переход;

Аттестация;

Эксплуатация;

Сопровождение;

Утилизация.

5. Специальные процессы:

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


Создание основных процессов ЖЦ ПО по ИС (ISO/IEC 15288)

Процесс (исполнитель процесса) Действия Вход Результат
Приобретение (заказчик) - Инициирование - Подготовка заявочных предложений - Подготовка договора - Контроль деятельности поставщика - Приемка ИС - Решение о начале работ по внедрению ИС - Результаты обследования действий заказчика - Результаты анализа рынка ИС/ тендера - План поставки/ разработки - Комплексный тест ИС - Технико-экономическое обоснование внедрения ИС - Техническое задание на ИС - Договор на поставку/ разработку - Акты приемки этапов работы - Акт приемно-сдаточных испытаний
Поставка (разработчик ИС) - Инициирование - Ответ на заявочные предложения - Подготовка договора - Планирование исполнения - Поставка ИС - Техническое задание на ИС - Решение руководства об участии в разработке - Результаты тендера - Техническое задание на ИС - План управления проектом - Разработанная ИС и документация - Решение об участии в разработке - Коммерческие предложения/ конкурсная заявка - Договор на поставку/ разработку - План управления проектом - Реализация/ корректировка - Акт приемно-сдаточных испытаний
Разработка (разработчик ИС) - Подготовка - Анализ требований к ИС - Проектирование архитектуры ИС - Разработка требований к ПО - Проектирование архитектуры ПО - Детальное проектирование ПО - Кодирование и тестирование ПО - Интеграция ПО и квалифицированное тестирование ПО - Интеграция ИС и квалифицированное тестирование ИС - Техническое задание на ИС - Техническое задание на ИС, модель ЖЦ - Подсистемы ИС - Спецификации требования к компонентам ПО - Архитектура ПО - Материалы детального проектирования ПО - План интеграции ПО, тесты - Архитектура ИС, ПО, документация на ИС, тесты - Используемая модель ЖЦ, стандарты разработки - План работ - Состав подсистем, компоненты оборудования - Спецификации требования к компонентам ПО - Состав компонентов ПО, интерфейсы с БД, план интеграции ПО - Проект БД, спецификации интерфейсов между компонентами ПО, требования к тестам - Тексты модулей ПО, акты автономного тестирования - Оценка соответствия комплекса ПО требованиям ТЗ - Оценка соответствия ПО, БД, технического комплекса и комплекта документации требованиям ТЗ

Стадии создания систем (ISO/IEC 15288)


СРС: Создать техническое задание для проекта «Очередь» на сайте www.mastertz.ru

Модели ЖЦ ПО:

1. каскадная,

2. спиральная,

3. итерационная.

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

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

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

Разработка требований
Формирование

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

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

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

Рис. 21. Спиральная модель ЖЦ ПО

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

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

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

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

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

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

Основные принципы RAD:

1. Инструментарий должен быть нацелен на минимизацию времени разработки;

2. Создание прототипа для уточнения требований заказчика;

3. Цикличность разработки: каждая новая версия продукта основывается на оценке результата работы предыдущей версии заказчиком;

4. Минимизация времени разработки версии, за счёт переноса уже готовых модулей и добавления функциональности в новую версию;

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

6. Управление проектом должно минимизировать длительность цикла разработки.

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

Рис. 22. Итерационная модель ЖЦ ПО

Федеральным агентством по техническому регулированию и метрологии РФ 01.03.2012 г. взамен ГОСТ Р ИСО/МЭК 12207-99 принят стандарт ГОСТ Р ИСО/МЭК 12207-2010 «Информационная технология. Системная и программная инженерия. Процессы жизненного цикла программных средств», идентичный международному стандарту ISO/IEC 12207:2008 «System and software engineering - Software life cycle processes».

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

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

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

  • процессы соглашения - два процесса;
  • процессы организационного обеспечения проекта - пять процессов;
  • процессы проекта - семь процессов;
  • технические процессы - одиннадцать процессов;
  • процессы реализации программных средств - семь процессов;
  • процессы поддержки программных средств - восемь процессов;
  • процессы повторного применения программных средств - три процесса.
  • Основные:
    • Приобретение (действия и задачи заказчика, приобретающего ПО)
    • Поставка (действия и задачи поставщика, который снабжает заказчика программным продуктом или услугой)
    • Разработка (действия и задачи, выполняемые разработчиком: создание ПО, оформление проектной и эксплуатационной документации, подготовка тестовых и учебных материалов и т. д.)
    • Эксплуатация (действия и задачи оператора - организации, эксплуатирующей систему)
    • Сопровождение (действия и задачи, выполняемые сопровождающей организацией, то есть службой сопровождения). Сопровождение - внесений изменений в ПО в целях исправления ошибок, повышения производительности или адаптации к изменившимся условиям работы или требованиям.
  • Вспомогательные
    • Документирование (формализованное описание информации, созданной в течение ЖЦ ПО)
    • Управление конфигурацией (применение административных и технических процедур на всем протяжении ЖЦ ПО для определения состояния компонентов ПО, управления его модификациями).
    • Обеспечение качества (обеспечение гарантий того, что ИС и процессы её ЖЦ соответствуют заданным требованиям и утверждённым планам)
    • Верификация (определение того, что программные продукты, являющиеся результатами некоторого действия, полностью удовлетворяют требованиям или условиям, обусловленным предшествующими действиями)
    • Аттестация (определение полноты соответствия заданных требований и созданной системы их конкретному функциональному назначению)
    • Совместная оценка (оценка состояния работ по проекту: контроль планирования и управления ресурсами, персоналом, аппаратурой, инструментальными средствами)
    • Аудит (определение соответствия требованиям, планам и условиям договора)
    • Разрешение проблем (анализ и решение проблем, независимо от их происхождения или источника, которые обнаружены в ходе разработки, эксплуатации, сопровождения или других процессов)
  • Организационные
    • Управление (действия и задачи, которые могут выполняться любой стороной, управляющей своими процессами)
    • Создание инфраструктуры (выбор и сопровождение технологии, стандартов и инструментальных средств, выбор и установка аппаратных и программных средств, используемых для разработки, эксплуатации или сопровождения ПО)
    • Усовершенствование (оценка, измерение, контроль и усовершенствование процессов ЖЦ)
    • Обучение (первоначальное обучение и последующее постоянное повышение квалификации персонала)

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

  1. Инициирование приобретения
  2. Подготовка заявочных предложений
  3. Подготовка и корректировка договора
  4. Надзор за деятельностью поставщика
  5. Приёмка и завершение работ

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

  1. Формирование требований к системе
  2. Формирование списка программных продуктов
  3. Установление условий и соглашений
  4. Описание технических ограничений (среда функционирования системы и т. д.)

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

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

Стандарт ГОСТ Р ИСО/МЭК 12207-2010 не предлагает конкретную модель жизненного цикла. Его положения являются общими для любых моделей жизненного цикла, методов и технологий создания ИС. Он описывает структуру процессов жизненного цикла, не конкретизируя, как реализовать или выполнить действия и задачи, включенные в эти процессы.

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

  1. Стадии;
  2. Результаты выполнения работ на каждой стадии;
  3. Ключевые события - точки завершения работ и принятия решений.

Развитие ВТ постоянно расширяет классы решаемых задач связанных с обработкой информации различного характера.

Это в основном три вида информации и соответственно три класса задач, для решения которых используются компьютеры:

1) Вычислительные задачи, связанные с обработкой числовой информации. К ним относится, к примеру, задача решения системы линœейных уравнений большой размерности. Раньше была основной, доминирующей областью использования ЭВМ.

2) Задачи по обработке символьной информации, связанные с созданием, редактированием и преобразованием текстовых данных. С решением таких задач связан труд, к примеру, секретаря-машинистки.

3) Задачи по обработке графической информации ᴛ.ᴇ. схем, чертежей, графиков, эскизов и т.д. К таким задачам относится, к примеру, задача разработки конструктором чертежей новых изделий.

4) Задачи по обработке алфавитно-цивровой информации – ИС. Сегодня стало одной из базовых областей применеия ЭВМ и задачи всœе усложняются.

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

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

Технологии удобно характеризовать в двух измерениях – вертикальном (представляющем процессы) и горизонтальном (представляющем стадии).

Рисунок

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

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

Разработка ПО подчиняется определœенному жизненному циклу.

Жизненный цикл ПО - ϶ᴛᴏ непрерывный и упорядоченный набор видов деятельности, осуществляемый и управляемый в рамках каждого проекта по разработке и эксплуатации ПО, начинающийся с момента появления идеи(замысла) создания некоторого программного обеспечения и принятия решения о крайне важно сти его создания и заканчивающийся в момент его полного изъятия из эксплуатации по причинам:

а) морального старения;

б) потери крайне важно сти решения соответствующих задач.

Технологические подходы - ϶ᴛᴏ механизмы реализации жизненного цикла.

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

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

ЖЦ разработки ПО должна быть представлен с различной степенью детализации этапов. Простейшее представление жизненного цикла, включает стадии:

Проектирование

Реализация

Тестирование и отладка

Внедрение, эксплуатация и сопровождение.

Простейшее представление ЖЦ программы (каскадный технологический подход к ведению жизненного цикла):

Процессы

Проектирование

Программирование

Тестирование

Сопровождение

Анализ Проектирование Реализация ТестированиеВнедрениеэксплуатация

и отладка и сопровождение

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

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

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

Этап реализации включает написание программы.

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

ЖЦ ПО регламентируется многими стандартами в т.ч. и международными.

Цель стандартизации ЖЦ сложных ПС:

Обобщение опыта и результатов исследований множества специалистов;

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

Стандарты включают:

Правила описания исходной информации, способов и методов выполнения операций;

Устанавливают правила контроля технологических процессов;

Устанавливают требования к оформлению результатов;

Регламентируют содержание технологических и эксплуатационных документов;

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

Обеспечивают распределœение и планирование заданий;

Обеспечивают контроль за ходом создания ПС.

В России действуют стандарты, регламентирующие ЖЦ:

Стадии разработки ПО– ГОСТ 19.102-77

Стадии создания АС - ГОСТ 34.601 –90;

ТЗ на создание АС - ГОСТ 34.602-89;

Виды испытания АС - ГОСТ 34.603-92;

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

В связи с этим следует отметить международный стандарт ISO/IEC 12207-1999 – ʼʼИнформационные технологии – Процессы жизненного цикла программного обеспеченияʼʼ.

ISO - International Organization of Standardization - Международная организация по стандартизации, IEC - International Electrotechnical Commission - Международная комиссия по электротехнике.

Он определяет структуру ЖЦ ПО и его процессы.

Т.е. создание ПО это не такая простая задача, в связи с этим и существуют стандарты, в которых всœе расписано: что нужно делать, когда и как.

Структура ЖЦ ПО по международному стандарту ISO/IEC 12207-95 базируется на трех группах процессов:

1) основные процессы ЖЦ ПО (приобретение, поставка, выработка, эксплуатация, сопровождение ). Мы основное внимание уделим последним.

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

1. Управление конфигурацией это процесс, поддерживающий основные процессы жизненного цикла ПО, прежде всœего процессы разработки и сопровождения. При разработке проектов сложных ПО, состоящих из многих компонентов, каждый из которых может иметь разновидности или версии, возникает проблема учета их связей и функций, создания унифицированной (ᴛ.ᴇ. единой) структуры и обеспечения развития всœей системы. Управление конфигурацией позволяет организовать, систематически учитывать и контролировать внесение изменений в различные компоненты ПО на всœех стадиях его ЖЦ.

2. Верификация -это процесс определœения того, отвечает ли текущее состояние ПО, достигнутое на данном этапе, требованиям этого этапа.

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

4. Совместный анализ(оценка) систематическое определœение степени соответствия объекта установленным критериям.

5. Аудит – проверка, выполняемая компетентным органом (лицом) с целью обеспечения независимой оценки степени соответствия программных продуктов или процессов установленным требованиям. Проверка позволяет оценить соответствие параметров разработки с исходными требованиями. Проверка частично совпадает с тестированием, ĸᴏᴛᴏᴩᴏᴇ проводится для определœения различий между действительными и ожидавшимися результатами и оценки соответствия характеристик ПО исходным требованиям. В процессе реализации проекта важное место занимают вопросы идентификации, описания и контроля конфигурации отдельных компонентов и всœей системы в целом.

3) организационные процессы (управление проектами, создание инфраструктуры проекта͵ определœение, оценка и улучшение самого ЖЦ, обучение).

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

Мы будем рассматривать ЖЦ ПО с точки зрения разработчика.

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

По стандарту жизненный цикл ПО ИС включает в себя следующие действия:

1) возникновение и исследование идеи(замысла);

2) подготовительный этап - выбор модели жизненного цикла, стандартов, методов и средств разработки, а также составление плана работ.

3) анализ требований к информационной системе - определœение ее

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

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

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

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

7) детальное проектирование программного обеспечения - подробное

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

8) кодирование ПО - выработка и документирование

каждого программного компонента;

9)тестирование ПО – выработка совокупности тестовых процедур и данных для их тестирования, тестирование компонентов, обновление пользовательской документации, обновление плана интеграции ПО;

10) интеграция ПО сборка программных компонентов в соответсвие с

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

11) квалификационное тестирование ПО тестирование ПО в

присутствии заказчика для демонстрации его соответствия

требованиям и готовности к эксплуатации; при этом проверяется также готовность и полнота технической и пользовательской документации ;

12) интеграция системы сборка всœех компонетов информационной системы, включая ПО и оборудование;

13) квалификационное тестирование ИС тестирование системы на

соответсвие требованиям к ней и проверка оформления и полноты документации;

14) установка ПО установка ПО на обородование заказчика и проверка его работоспособюности; ;

15) приемка ПО оценка результатов квалифицированного

тестирования ПО и информционной системы в целом и

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

16)Управление и выработка документации;

17)эксплуатация

18)сопровождение – процесс создания и внедрения новых версий

программного продукта. ;

19)завершение эксплуатации.

Указанные действия можно сгруппировать, условно выделив следующие основные этапы разработки ПО:

· постановка задачи(ТЗ) (по ГОСТ 19.102-77 стадия ʼʼТехническое заданиеʼʼ)

· анализ требований и выработка спецификаций (по ГОСТ 19.102-77 стадия ʼʼЭскизный проектʼʼ)

· проектирование (по ГОСТ 19.102-77 стадия ʼʼТехнический проектʼʼ)

· реализация (кодирование, тестирование и отладка) (по ГОСТ 19.102-77 стадия ʼʼРабочий проектʼʼ).

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

Жизненный цикл и этапы разработки ПО - понятие и виды. Классификация и особенности категории "Жизненный цикл и этапы разработки ПО" 2017, 2018.

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

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

Следует отметить, что в Советском Союзе, а затем в России создание программного обеспечения ( ПО ) первоначально, в 70-е годы прошлого столетия, регламентировалось стандартами ГОСТ ЕСПД (Единой системы программной документации – серии ГОСТ 19.ХХХ), которые были ориентированы на класс относительно простых программ небольшого объема, создаваемых отдельными программистами. В настоящее время эти стандарты устарели концептуально и по форме, их сроки действия закончились и использование нецелесообразно.

Процессы создания автоматизированных систем ( АС ), в состав которых входит и ПО , регламентированы стандартами ГОСТ 34.601-90 "Информационная технология. Комплекс стандартов на автоматизированные системы. Стадии создания", ГОСТ 34.602-89 "Информационная технология. Комплекс стандартов на автоматизированные системы. Техническое задание на создание автоматизированной системы" и ГОСТ 34.603-92 "Информационная технология. Виды испытаний автоматизированных систем". Однако многие положения этих стандартов устарели, а другие отражены недостаточно, чтобы их можно было применять для серьезных проектов создания ПС. Поэтому в отечественных разработках целесообразно использовать современные международные стандарты.

В соответствии со стандартом ISO / IEC 12207 все процессы ЖЦ ПО разделены на три группы (рис.5.1).


Рис. 5.1.

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

5.2. Основные процессы ЖЦ ПС

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

  1. инициирование приобретения;
  2. подготовку заявочных предложений;
  3. подготовку и корректировку договора;
  4. надзор за деятельностью поставщика;
  5. приемку и завершение работ.

Инициирование приобретения включает следующие задачи:

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

Заявочные предложения должны содержать:

  1. требования, предъявляемые к системе;
  2. перечень программных продуктов;
  3. условия приобретения и соглашения;
  4. технические ограничения (например, по среде функционирования системы).

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

Подготовка и корректировка договора включает следующие задачи:

  1. определение заказчиком процедуры выбора поставщика, включающей критерии оценки предложений возможных поставщиков;
  2. выбор конкретного поставщика на основе анализа предложений;
  3. подготовку и заключение договора с поставщиком ;
  4. внесение изменений (при необходимости) в договор в процессе его выполнения.

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

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

  1. инициирование поставки;
  2. подготовку ответа на заявочные предложения;
  3. подготовку договора;
  4. планирование работ по договору;
  5. выполнение и контроль договорных работ и их оценку;
  6. поставку и завершение работ.

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

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

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

Процесс разработки включает следующие действия:

  1. подготовительную работу;
  2. анализ требований, предъявляемых к системе;
  3. проектирование архитектуры системы;
  4. анализ требований, предъявляемых к программному обеспечению;
  5. проектирование архитектуры программного обеспечения;
  6. детальное проектирование программного обеспечения;
  7. кодирование и тестирование программного обеспечения;
  8. интеграцию программного обеспечения;
  9. квалификационное тестирование программного обеспечения;
  10. интеграцию системы;
  11. квалификационное тестирование системы;
  12. установку программного обеспечения;
  13. приемку программного обеспечения.

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

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

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

Анализ требований к программному обеспечению предполагает определение следующих характеристик для каждого компонента ПО :

  1. функциональных возможностей, включая характеристики производительности и среды функционирования компонента;
  2. внешних интерфейсов;
  3. спецификаций надежности и безопасности;
  4. эргономических требований;
  5. требований к используемым данным;
  6. требований к установке и приемке;
  7. требований к пользовательской документации;
  8. требований к эксплуатации и сопровождению.

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

Проектирование архитектуры ПО включает следующие задачи для каждого компонента ПО :

  1. трансформацию требований к ПО в архитектуру, определяющую на высоком уровне структуру ПО и состав его компонентов;
  2. разработку и документирование программных интерфейсов ПО и баз данных (БД);
  3. разработку предварительной версии пользовательской документации;
  4. разработку и документирование предварительных требований к тестам и плана интеграции ПО.

Детальное проектирование ПО включает следующие задачи:

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

Кодирование и тестирование ПО включает следующие задачи:

  1. кодирование и документирование каждого компонента ПО и базы данных, а также подготовку совокупности тестовых процедур и данных для их тестирования;
  2. тестирование каждого компонента ПО и БД на соответствие предъявляемым к ним требованиям с последующим документированием результатов тестирования;
  3. обновление документации (при необходимости);
  4. обновление плана интеграции ПО.

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

Квалификационное тестирование ПО проводится разработчиком в присутствии заказчика (

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

  1. Подготовительная работа, которая включает проведение оператором следующих задач:

    1. планирование действий и работ, выполняемых в процессе эксплуатации, и установка эксплуатационных стандартов;
    2. определение процедур локализации и разрешения проблем, возникающих в процессе эксплуатации.
  2. Эксплуатационное тестирование, осуществляемое для каждой очередной редакции программного продукта, после чего эта редакция передается в эксплуатацию.
  3. Собственно эксплуатация системы, которая выполняется в предназначенной для этого среде в соответствии с пользовательской документацией.
  4. анализ проблем и запросов на модификацию ПО (анализ сообщений о возникшей проблеме или запроса на модификацию, оценка масштаба, стоимости модификации, получаемого эффекта, оценка целесообразности модификации);
  5. модификацию ПО (внесение изменений в компоненты программного продукта и документацию в соответствии с правилами процесса разработки);
  6. проверку и приемку (в части целостности модифицируемой системы);
  7. перенос ПО в другую среду (конвертирование программ и данных, параллельная эксплуатация ПО в старой и новой среде в течение некоторого периода времени);
  8. снятие ПО с эксплуатации по решению заказчика при участии эксплуатирующей организации, службы сопровождения и пользователей. При этом программные продукты и документации подлежат архивированию в соответствии с договором.

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

Этапы жизненного цикла :

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

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

4. Сборка, тестирование, испытание

5. Внедрение (выпуск)

6. Сопровождение

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

2) ПО разрабатывается для рынка. Нужно проводить маркетинговые исследования и найти какого продукта на рынке нет. Это связано с большим риском. Цель – разработка спецификации требований.

Проектирование

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

Реализация

Написание программного кода. Реализация включает и разработку, и тестирование, и документацию.

Сборка, тестирование, испытние

Сборка всего, что сделано разными программистами. Тестирование всего программного комплекса. Отладка – поиск и устранение причин ошибок. Испытание – уточнение технических характеристик. В результате – гарантия работоспособносит программы.

Внедрение (выпуск)

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

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

Если на рынок выпускается принципиально новый ПО, то возможно несколько бета-тестирований. После бета-тестирование – выпуск коммерческой версии.

Сопровождение

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

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

1. Waterfall («водопад», каскадная модель)

2. Прототипирование

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

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

Задача разделяется на подзадачи и определяется очередность их реализации т.о., чтобы каждая следующая подзадачи расширяла возможности ПО. Успех существенно зависит от того сколь удачно разделены задачи на подзадачи и как выбрана очередность. Преимущества: 1) возможность активного участия заказчика в разработке, он имеет возможность уточнить свои требования в ходе разработки; 2) возможность тестирования вновь разрабатываемых частей совместно с ранее разработанными, это уменьшит затраты на комплексную отладку; 3) во время разработки можно начинать внедрение по частям.