
- •Лекция 1. Жизненный цикл программного обеспечения
- •Причины появления программной инженерии
- •Жизненный цикл по
- •Понятие жизненного цикла по
- •Модель жц по
- •Отличие системы по от ис
- •Отличие Программной инженерии от Программирования
- •Связь Программной инженерии и моделирования
- •Стадии жизненного цикла
- •Анализ требований
- •Проектирование системы
- •Реализация
- •Интеграция и внедрение
- •Процесс функционирования и сопровождения
- •Модели жизненного цикла
- •Жизненный цикл «водопад с обратной связью»
- •Итеративный пошаговый жизненный цикл
- •Спиральная модель
Процесс функционирования и сопровождения
Процесс функционирования представляет стадию жизненного цикла, когда программный продукт ежедневно используется, а работа предыдущей системы (ручной или автоматизированной) постепенно сокращается. Постепенное сокращение — обычно поэтапный процесс. В ситуациях, где это возможно и выполнимо, организация обычно использует новую и старую системы параллельно в течение некоторого времени. Это обеспечивает отход назад, если новое изделие не удовлетворяет бизнес-требованиям.
Процесс функционирования совпадает с началом сопровождения изделия. В программной инженерии сопровождение имеет несколько отличное значение по сравнению с обычным использованием этого слова. Во-первых, сопровождение — это не только незапланированная фиксация возникающих проблем. Сопровождение планируется и оплачивается на ранних стадиях жизненного цикла. Во-вторых, сопровождение включает развитие изделия. В некоторых итеративных моделях жизненного цикла, могут даже оказаться трудноразличимыми разработка и сопровождение. В литературе сопровождение обычно разделяется на:
корректирующее (действия по обслуживанию) — выявление дефектов и ошибок, обнаруженных при работе;
адаптивное — изменение ПО в ответ на изменения в вычислениях или в бизнес-среде;
совершенствующее — развитие изделия путем добавления новых особенностей или улучшения его качества.
Стоимость сопровождения значительна за время жизни ПО. Она значительна потому, что изделие остается в действии в течение долгого времени. Большие системы предприятий настолько фундаментальны, что они сохраняются действующими с помощью использования любых доступных технологий«поддержки жизни». Такие системы называются унаследованными системами.
Конечно, их следовало бы удалить, но для них нет никакой замены. Действительно, когда решение об удалении системы, в конечном счете, принято, это делается не потому, что унаследованная система больше не полезна для организации, а потому, что нет технических возможностей дальше сохранять ее в работе. Не должно быть сюрпризом, что сопровождение является главной причиной, почему это технически невозможно — через какое-то время сопровождение настолько уничтожает структурную ясность ПО, что оно дальше не может поддерживаться.
Модели жизненного цикла
Жизненный цикл ПО определяет «что», но не «как» выполнять в процессе программной инженерии. Программная инженерия в значительной степени — социальное явление, определяемое внутренней организационной культурой предприятия. Предприятие может выбрать базовую модель жизненного цикла, но специфические особенности жизненного цикла и то, как работа будет сделана, уникальны для каждой организации и могут даже значительно отличаться от проекта к проекту. Программный продукт не изготавливается, он реализуется. Процесс создания и эксплуатации ПО — не эксперимент, который может быть повторен много раз с той же самой степенью успеха.
Рассмотрим, почему специфические особенности жизненного цикла должны быть приспособлены к организационной культуре и почему они отличаются от проекта к проекту:
Опыт программной инженерии, навыки и знания коллектива разработчиков (если их недостаточно, должно быть включено в процесс разработки и время в соответствии с «кривой обучения»).
Деловой опыт и знания (это намного более неприятно, чем предыдущий момент, потому что деловой опыт и знания легко не приобретаются).
Вид предметной области (необходимы различные процессы, чтобы совершенствовать бухгалтерский учет или систему контроля электростанции).
Изменения деловой атмосферы (изменения внешнеполитических, экономических, социальных, технологических и конкурентных факторов).
Внутренние деловые изменения (изменения в управлении, условиях работы, финансовое здоровье предприятия и т. д.).
Размер проекта (большой проект требует различных процессов, начиная с небольших; очень маленький проект может даже вообще не нуждаться в каких-либо процессах, поскольку разработчики могут сотрудничать и обмениваться информацией неофициально).
При условии вышеупомянутого обсуждения подходы к жизненному циклу ПО могут быть грубо разделены на две главные категории:
«водопад с обратной связью»;
итеративный пошаговый.