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

Основные свойства и характеристики ПО

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

Мобильность программного обеспечения – способность программного обеспечения работать на различных аппаратных платформах или под управлением различных операционных систем.

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

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

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

- для устранения ошибок;

- для модификации в соответствии с изменяющимися потребностями пользователей.

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

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

Эффективность программного обеспечения – отношение уровня услуг, предоставляемых программным продуктом пользователю при заданных условиях, к объему используемых ресурсов.

Жизненный цикл программного обеспечения - период разработки и эксплуатации программного обеспечения, в котором обычно выделяют этапы:

-1- возникновение и исследование идеи;

-2- анализ требований и проектирование;

-3- программирование;

-4- тестирование и отладка;

-5- ввод программы в действие;

-6- эксплуатация и сопровождение;

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

 

Существуют две основные модели ЖЦ:

1. Каскадная модель (70-85 г.г.);

2. Спиральная модель (86-90 г.г.).

Каскадная модель жизненного цикла ПО.

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

Положительные стороны каскадного подхода:

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

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

Рис. 1.1. Каскадная схема разработки ПО

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

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

В результате реальный процесс создания ПО принимал следующий вид (рис. 1.2):

Рис. 1.2. Реальный процесс разработки ПО по каскадной схеме

Недостатки:

1. Существенное запаздывание с получением результатов.

2. Согласование результатов с пользователями производится только в точках, планируемых после завершения каждого этапа работ, требования к ПО "заморожены" в виде технического задания на все время его создания. Таким образом, пользователи могут внести свои замечания только после того, как работа над системой будет полностью завершена. (Неточное изложение требований или их изменения - пользователи получают систему, не удовлетворяющую их потребностям).

3. Модели (как функциональные, так и информационные) автоматизируемого объекта могут устареть одновременно с их утверждением.

Спиральная модель ЖЦ (рис. 1.3), делает упор на начальные этапы ЖЦ: анализ и проектирование. На этих этапах реализуемость технических решений проверяется путем создания прототипов. Каждый виток спирали соответствует созданию фрагмента или версии ПО, на нем уточняются цели и характеристики проекта, определяется его качество и планируются работы следующего витка спирали. Таким образом, углубляются и последовательно конкретизируются детали проекта, и в результате выбирается обоснованный вариант, который доводится до реализации.

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

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

 

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