Жизненный цикл программного обеспечения (ЖЦ ПО)
ЖЦ ПО – период времени, который начинается с момента принятия решения о необходимости создания программного продукта и заканчивается в момент его полного изъятия из эксплуатации.
Процессы ЖЦ ПО:
- основные,
- вспомогательные,
- организационные.
Основные:
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)
№ п/п | Стадия | Описание |
Формирование концепции | Анализ потребностей, выбор концепции и проектных решений | |
Разработка | Проектирование системы | |
Реализация | Изготовление системы | |
Эксплуатация | Ввод в эксплуатацию и использование системы | |
Поддержка | Обеспечение функционирования системы | |
Снятие с эксплуатации | Прекращение использования, демонтаж, архивирование системы |
12 мая
СРС: Создать техническое задание для проекта «Очередь» на сайте 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. Итерационная модель ЖЦ ПО
Различные варианты итерационного подхода реализованы в большинстве современных технологий и методов, таких как:
RUP
MSF
XP