Модель жизненного цикла разработки системы – это обобщенное (абстрактное) описание процесса развития. Это описание процесса, исходя из какой-то определенной точки зрения. Описывая модели процессов, как правило, говорят о таких действиях, как планирование модели данных, дизайн пользовательского интерфейса и т.д., однако они могут также включать документацию и описание ролей.
В моделях процесса можно встретить два принципиально разных подхода.
Интенсивное планирование (tugev planeerimine). Этот более старый подход состоит в детализированном планировании видов деятельности и программного обеспечения и точном следовании плана на следующем витке разработки. Прогресс деятельности разработки измеряется с помощью той же схемы.
Ускоренная (agile), т.е. гибкая разработка, при которой планирование происходит по частям (постепенно), и благодаря чему возможно изменить ход процесса, идя навстречу изменяющимся требованиям пользователей. Внедрение ускоренного процесса явилось результатом быстро меняющихся потребностей клиентов. Процесс должен быть гибким и способным реагировать на изменение, расширение и адаптацию к новым требованиям продукта.
Если прежде происходило отнесение моделей разработки системы строго к той или иной категории, то теперь как считает Ян Соммервилль, на этом уровне жесткое деление нецелесообразно, так согласно довольно многим моделям можно запустить как ускоренный (гибкий), так и планируемый метод разработки.
На протяжении всей истории было предложены несколько общих моделей разработки систем и наиболее важные из них следующие:
1) водопадная модель (каскадная, koskmudel, waterfall model)
2) спиральнаямодель (spiraalmudel, spiral model)
3) инкрементнаямодель (inkrementaalmudel, incremental model)
4) прототипирование (prototüüpimine, prototyping).Ниже мы рассмотрим подробнее вышеупомянутые модели разработки систем.