Galogen Спасибо за ответ.
Вы меня с кем то путаете. У меня нет опыта в разработке ПО (я работал инженером-системотехником, программированием у нас другой отдел занимался) эта тема очень интересует, однако большое количество методологий вносят путаницу.
p.s.Я работал в ВПК. У нас чуть ли не каждая версия ПО как НИР шла. Соответственно новое полноценное ТЗ на каждую новую версию, хотя 90% может повторятся с предыдущей.
Я о Вас ничего не знаю кроме того, что Вы пишите о себе сами.
Что ж примем как аксиому. У Вас нет никакого опыта разработки ПО. Я предлагаю Вам его приобрести. Начните создавать ПО для кого-нибудь, желательно в команде из нескольких человек.
Все методологии возникают как результат обобщения опыта. Каскадная модель - вполне естественная в материальном производстве (строительстве и т.п.), где конечный результат в достаточной степени детерминирован.
С другой стороны возьмем инновационный проект, с большой неопределенностью в конечном продукте. Так вот разработка ПО - это инновационный проект. Очень схоже с математикой. Есть уравнение и есть его решение аналитическое. Все просто. Есть уравнение транцедентные, которые не имеют аналитического решения и могут быть решены только численно, итерационно. Однако и обычные уравнения часто дешевле решить численно. Любое численное решение предполагает задание некоторого нулевого приближения, а потом по определенным правилам производится локализация решения и постепенное приближение к нему с заданной точностью. С ПО то же самое. Если экономически обосновано сначала построить полную математическую модель системы, а потом ее построить, не взирая на затраты , но обеспечивая заданное качество - имеем одну модель разработки (по ГОСТ, каскадная: примеры систем критические системы управления процессами крекинга нефти, управления ядерными реакциями, полетом космического корабля, автопилот лайнера, и т.п.). Однако чаще всего это не так, даже для критических систем. Потому как практически невозможно сформировать полное и непротиворечивое ТЗ, потому как передача информации от заказчика к разработчику нетривиальный сложный процесс, потому как заказчик ВСЕГДА не знает чего он хочет точно, потому что большая НЕОПРЕДЕЛЕННОСТЬ, потому что это в природе ПО и т.п.
RUP - это фреймверк, это попытка дать инструмент команде разработчика, с помощью которого она могла бы выстраивать управляемый процесс производства ПО. 4-6 недельные итерации типично заканчиваются релизами, довольно законченными версиями продукта. Внутри этих 4-6 и более недельных итераций идет цикл разработки типичный для каскада