고품질 소프트웨어를 효율적으로 설계, 개발, 유지보수하기 위한 체계적인 접근 방법으로 이를 통해 소프트웨어 프로젝트의 비용과 시간을 절감하고 품질을 높이는 것이 목표이다
주요 요소로는 다음과 같다.
기존 시스템이나 소프트웨어의 구조, 기능, 동작 원리를 분석하여 문서화하거나 복제하는 과정으로 주로 다음의 목적을 위해 사용된다.
프로젝트 관리 및 개발 과정에서 사용할 체계적인 절차와 원칙을 정의한 것으로 주요 방법론은 폭포수, 나선형 등이 있다.
선형 순차적 모델이라고도 하며 Boehm이 제시한 고전적 생명주기 모델로 소프트웨어 개발 과정의 각 단계가 순차적으로 진행되는 모형이다.
반복적인 작업을 수행하는 점증적 생명주기 모형으로 위험을 관리하고 최소화하는 것이 목적으로 나선을 따라 돌어가며 각 개발 순서를 반복하여 수행하는 점진적 방식으로 누락된 요구사항을 추가할 수 있다.