Типы процессов в софтостроении
На самом деле в софтостроении есть только два типа разработки:
- Восходящий (снизу-вверх) - ощупывание слона толпой слепцов.
- Нисходящий (сверху-вниз) - создание модели сферического коня в вакууме.
Все остальные методики являют собой смесь вышеназванных в разной консистенции.
Например, спиральная методика типа RUP - последовательное построение сферических коней в вакууме, с каждым витком приближающихся к ожидающим в стойле скакунам, беспрерывно поднимающим хвост на ходу.
Гибкая "наживулька"-agile - последовательное ощупывание только одной части тела слона согласно ежедневно переутверждаемому плану. И т.д.
Другая классификация связана с понятиями компиляции и интерпретации.
- Восходящий (снизу-вверх) - интерпретация.
- Нисходящий (сверху-вниз) - компиляция.
В классической водопадной модели все требования к системе "компилируются" за 1 проход. В спиральной - за несколько проходов. В наживулечно-гибкой - интерпретируются построчно, возврат к уже интерпретированной строке вызывает новый виток её ре-интерпретации с учетом контекста ("мы не так поняли").