Читайте также:
|
|
Стадии характеризуются определенными состоянием ПО, видом предусмотренных работ и их результатом.
При создании заказного ПО выделяют пять основных стадий ЖЦ:
· анализ и формализация требований заказчика;
· проектирование;
· реализация;
· тестирование;
· внедрение и эксплуатация.
В литературе описано множество типов жизненных циклов. Среди всего этого разнообразия можно выделить два основных.
Последовательный тип
Данный тип ЖЦ предполагает, что каждая следующая стадия может быть начата только после завершения работ на предыдущей стадии.
Он применим когда:
· требования к продукту четко определены и не меняются со временем;
· имеется достаточно большой опыт реализации подобного рода систем;
· время реализации проекта составляет от нескольких месяцев до года.
Реализация проекта по данному типу ЖЦ легко планируется и контролируется. Однако для этого необходимо заранее иметь все требования к продукту.
Данный тип ЖЦ не приспособлен к изменениям требований к продукту. Разрабатываемый продукт не может использоваться, пока проект не будет близок к завершению. В реальности в последнее время этот тип жизненного цикла практически никогда не применяется.
Эволюционный тип
Функциональные возможности системы в данном случае наращиваются постепенно. В процессе разработки основные стадии ЖЦ (проектирование, реализация, тестирование) проходятся несколько раз применительно к очередной добавляемой порции возможностей системы.
Положительные стороны данного типа - не требуется заранее наличия всех требований к системе и позволяет заказчику активно участвовать в ее разработке.
Недостатки эволюционного типа:
· сложность в управлении и контроле выполнения проекта;
· сложность оценки затрат на разработку;
· риск бесконечного улучшения системы.
Данный тип применим, когда требования к системе плохо определены или будут изменяться, отсутствует достаточный опыт в разработке подобных систем, используются новые технологии и (или) инструментальные средства, в ходе разработки системы необходимо иметь промежуточные версии продукта.
На рис. представлена спиральная модель ЖЦ программного обеспечения имеющая СЛЕДУЮЩИЕ ЭТАПЫ:
- определения требований,
- анализа,
- проектирования,
- реализации и тестирования,
- интеграции.
Каждый виток спирали соответствует созданию фрагмента или версии ПО, на нем уточняются цели и характеристики проекта, определяется его качество и планируются работы следующего витка спирали. Таким образом углубляются и последовательно конкретизируются детали проекта и в результате выбирается обоснованный вариант, который доводится до реализации.
Разработка итерациями отражает объективно существующий спиральный цикл создания системы. Неполное завершение работ на каждом этапе позволяет переходить на следующий этап, не дожидаясь полного завершения работы на текущем. При итеративном способе разработки недостающую работу можно будет выполнить на следующей итерации.
Главная же задача - как можно быстрее показать пользователям системы работоспособный продукт, тем самым активизируя процесс уточнения и дополнения требований.
Основная проблема спирального цикла - определение момента перехода на следующий этап. Для ее решения необходимо ввести временные ограничения на каждый из этапов жизненного цикла. Переход осуществляется в соответствии с планом, даже если не вся запланированная работа закончена. План составляется на основе статистических данных, полученных в предыдущих проектах, и личного опыта разработчиков.
Выбор типа жизненного цикла
Выбор конкретного типа жизненного цикла зависит от ряда субъективных и объективных причин, сопутствующих проекту:
· наличия четких и подробных требований к ПО;
· ресурсов, имеющихся в наличии для проведения работ по проекту;
· наличия и доступности заказчика в процессе разработки;
· новизны используемых при разработке технологий и (или) инструментальных средств.
Прикладные программы с высокой степенью автоматизации управления.
Дата добавления: 2015-07-25; просмотров: 132 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Интегрированные пакеты программ | | | Термины и определения. |