Модель жизненного цикла разработки системы – это обобщенное (абстрактное) описание процесса развития. Это описание процесса, исходя из какой-то определенной точки зрения. Описывая модели процессов, как правило, говорят о таких действиях, как планирование модели данных, дизайн пользовательского интерфейса и т.д., однако они могут также включать документацию и описание ролей.

В моделях процесса можно встретить два принципиально разных подхода.

Интенсивное планирование (tugev planeerimine). Этот более старый подход состоит в детализированном планировании видов деятельности и программного обеспечения и точном следовании плана на следующем витке разработки. Прогресс деятельности разработки измеряется с помощью той же схемы.

Ускоренная (agile), т.е. гибкая разработка, при которой планирование происходит по частям (постепенно), и благодаря чему возможно изменить ход процесса, идя навстречу изменяющимся требованиям пользователей. Внедрение ускоренного процесса явилось результатом быстро меняющихся потребностей клиентов. Процесс должен быть гибким и способным реагировать на изменение, расширение и адаптацию к новым требованиям продукта.

Если прежде происходило отнесение моделей разработки системы строго к той или иной категории, то теперь как считает Ян Соммервилль, на этом уровне жесткое деление нецелесообразно, так согласно довольно многим моделям можно запустить как ускоренный (гибкий), так и планируемый метод разработки.

На протяжении всей истории было предложены несколько общих моделей разработки систем и наиболее важные из них следующие:

1) водопадная модель (каскадная, koskmudel, waterfall model)

2) спиральнаямодель (spiraalmudel, spiral model)

3) инкрементнаямодель (inkrementaalmudel, incremental model)

4) прототипирование (prototüüpimine, prototyping).Ниже мы рассмотрим подробнее вышеупомянутые модели разработки систем.