Введение
В самом общем случае можно считать, что жизненный цикл программной системы состоит из трех фаз:
определения;
реализации;
обслуживания.
Определение системы
Процесс создания ПО начинается с практических изысканий, ведущих к системному анализу, задача которого состоит в определении общих требований к системе и программам. Такой анализ должен, прежде всего, установить реальные потребности и цели и по возможности выявить имеющиеся методы, позволяющие достичь поставленной цели. При необходимости анализ может основываться на математических или иных формальных схемах. Считается, что при любом подходе указанный анализ должен иметь определенную структуру и проводиться в соответствии с некоторой теорией. Анализ и внесение уточнений, осуществляемые совместно с аналитиками и потенциальными пользователями, должны привести к выработке окончательной спецификации требований.
Процесс составления такой спецификации имеет целью получение правильного технического задания, полного в смысле отражения требований и согласованного с определением реализации. За составлением спецификаций следует фаза проектирования, смысл которой состоит в идентификации и структуризации данных, их преобразовании и организации их передачи. Кроме того, на этой фазе необходимо добиться в определенном смысле оптимального распределения функции системы, выбрать алгоритм и процедуры, а также обозначить системные компоненты и связь между ними.
Реализация
Завершив проектирование можно начинать реализацию системы. Однако на практике фаза проектирования и реализации перекрываются. Таким образом, по мере осуществления иерархического процесса разбиения анализ некоторых элементов системы может быть признан достаточно полным для перехода к реализации, в то время как другие элементы требуют дальнейшего уточнения.
|
В ходе процесса реализации необходимо устанавливать правильность программы. Современные процедуры большей частью основаны на тестировании, хотя в последние годы расширилось использование методов сквозного структурного контроля и аттестации программ.
В любом случае, тестирование посредством исполнения программы обычно осуществляется снизу вверх, в начале на блочном (модульном или процедурном уровне), затем функционально, компонент за компонентом. По мере проверки отдельных компонентов они объединяются в систему в процессе ее компоновки, после чего начинаются системные испытания. В конечном итоге, после того как независимо будет удостоверено качество функционирования системы и оценены ее параметры, она считается готовой к выпуску.
Обслуживание
Процесс обслуживания начинается сразу после выпуска системы. Ошибки подлежат выявлению и исправлению. Если нормальной работе пользователя препятствует ошибка, то ошибочную программу можно временно исключить из системы или же внести временные или постоянные исправления в некоторые или во все используемые системы. Постоянное исправление или изменение можно затем внести в новый выпуск системы. Для того чтобы учесть все изменения и их комбинации, создаются многочисленные версии системных элементов. Главной задачей становится управление системной конфигурацией. Решающая роль в управлении программирования принадлежит вспомогательным службам, которые автоматически собирают и регулируют все изменения в системе.
|
Вывод к п.1.2.
Метасистема, в рамках которой развивается программа, содержит существенно большее количество контуров обратной связи, чем указано выше. Многие виды деятельности перекрываются, сложным образом переплетаются и систематически повторяются. Поэтому достаточно обоснована модель ЖЦПО представленная Боэмом.
Фазы и работы ЖЦПО по Боэму
Каскадная модель
Каскадная модель была введена в 70 – 80 гг. Она удобна для однородных ПП, когда каждое приложение представляло собой единое целое.
Основные характеристики модели:
- Жизненный цикл разбивается на этапы (фазы);
- Переход с этапа на этап – только после полного завершения текущего этапа;
- Этап завершается выпуском полного комплекта документации, достаточной для того, чтобы работа могла быть выполнена другой командой разработчиков.
Главные характерные черты каскадной модели следующие:
завершение каждой фазы верификацией и подтверждением, цель которых – устранить возможно большее число проблем, связанных с разработкой изделия;
циклические повторения реализованных фаз с возможно более ранней фазы.
Рис.2. Каскадная модель ЖЦПО.
В каскадной модели успешное окончание одной из фаз ЖЦПО означает достижение соответствующей цели инженерного программирования (см. п. 2.4.). К этим подцелям необходимо добавить еще две:
Детальная проектируемость – получение полных верифицированных спецификаций и структур управления и данных, интерфейсных связей, характеристик, основных алгоритмов и определение условий работы каждого программного компонента.
Кодируемость – получение полного, верифицированного набора компонентов программы.
Основные достоинства:
Формирование полного набора проектной документации в конце работы над этапом. Документация отвечает критериям полноты и завершенности;
Возможность планирования сроков и затрат. Для целого ряда ПП эта модель реализуема – это для систем, для которых на этапе анализа можно точно и полно сформировать все требования. Например, сложные вычислительные программы.
Основные недостатки:
- Большие сроки от анализа до завершения;
- Требования к ПО «заморожены» в виде ТЗ до конца разработки.