Главная » UML » Разрабатывайте итеративно

0

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

Основной проблемой описанного подхода является рост риска со временем; так что устранять ошибки предыдущих фаз становится слишком дорого. Первоначальный проект, наверняка, будет иметь изъяны в ключевых требованиях, и, более того, позднее обнаружение проектных недоработок может привести к перерасходу средств или отказу от проекта. Как сказал Том Гилб (Tom Gilb): "Если вы активно не нападете на риски вашего проекта, они активно нападут не вас"1. Водопадный подход имеет тенденцию к "маскировке" действительных рисков до тех пор, пока не будет слишком поздно на них реагировать.

3     См.  работу по лучшим  методам сети  Software Program Manager’s Network no  адресу
http: //www. spmn. com.

Tom Gilb. Principles of Software Engineering Management. Harlaw, UK: Addison-Wesley, 1988, p.73.

Время Рис. 1.1. Водопадный жизненный цикл

Альтернативой водопадному подходу является поэлементный итеративный процесс, показанный на рис. 1.2. При таком подходе, основанном на спиральной модели Барри Боема (Barry Boehm)’, установление рисков, угрожающих проекту, осуществляется на более ранних этапах жизненного цикла, когда еще можно эффективно и своевременно реагировать на них. С помощью данного подхода осуществляется непрерывное обнаружение, исследование и реализация, причем при каждой итерации группа разработчиков управляет артефактами проекта в целях их постепенного сближения.

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

1.          Существенные недоразумения становятся очевидными на ранних этапах жиз
ненного цикла, когда еще можно принять меры по их устранению.

2.          Описанный подход способствует установлению обратной связи с пользовате
лем в целях выяснения истинных требований к системе.

3.          Группа разработчиков сосредотачивается на особо важных вопросах проекта, а
не на тех, которые только отвлекают внимание команды от действительно
опасных моментов.

4.          Непрерывное итеративное тестирование позволяет объективно оценить со
стояние проекта.

5.          Противоречия в требованиях, проектах и реализациях выявляются раньше.

5 Barry W. Boehm. A Spiral Model of Software Development and Enhancement. IEEE Computer, May 1988, pp. 61-72.

 

6.          Нагрузка команды (особенно команды тестирования) возрастает по мере раз
вития проекта.

7.          Команда может обучаться и вследствие этого непрерывно улучшать процесс.

8.          На протяжении всего жизненного цикла проекта его организаторы могут полу
чать реальное представление о текущем состоянии проекта.

По теме:

  • Комментарии