- 요구사항 : 사용자 요구 사항 추출 단계, 입∙출력 명시
- 분석 : 추출된 요구사항의 정확성/안정성 등을 확인하여 사용자의 요구 확정
- 설계 : 사용자의 요구를 소프트웨어 시스템의 구조(UI, ADT, 알고리즘 등)로 변환
- 정제와 코딩 : 설계 문서를 소스코드로 변환
- 검증 : 테스팅, 오류 제거
- 유연성 없이 프로젝트를 각 단계로 분할
- 문서를 지나치게 강조
- 요구사항 정의가 명확하지 않고 유지보수에 적절하지 않음
- 지속적인 평가 및 조정 강조
- 급변하는 실시간 긴급 요청 처리를 위한 신속한 개발이 중요
입력 : 외부에서 제공되는 데이터가 0개 이상
출력 : 적어도 한 개 이상의 결과 생성
명확성 : 각 명령들은 명확해야 함
유한성 : 알고리즘 수행 후 반드시 종료
유효성 : 반드시 실행 가능해야 함