반응형
소프트웨어 개발 모델(프로세스)에는 폭포수, 애자일, 나선, 프로토타입 등 다양한 방법론이 있습니다.
그 중에서도 특성이 가장 두드려지며 많이 사용되는 폭포수모델과 애자일 모델에 대해 알아보겠습니다.
폭포수(Waterfall)
폭포수 모델은 소프트웨어의 개발 과정을 요구분석, 설계, 구현, 통합, 운영 및 유지보수의 단계로 구분하여 순차적으로 진행하는 프로세스 모델입니다.
1. 특징
- 가장 오래되고 널리 사용되는 프로세스 모델입니다.
- 소프트웨어 개발을 단계별로 순차적으로 진행하는 절차적 프로그래밍 기법입니다.
- 각 단계별로 검증이 완료된 후에 다음 단계로 이동합니다.
- 결함 발견시 전 단계로 돌아가는 피드백 단계가 존재합니다.
- 기술적 위험이 낮고 유사한 프로젝트 경험이 있는 경우 적합합니다.
2. 구성단계
3. 장점
- 고전적인 방법론으로써 다양한 사례가 풍부하고 검증된 방식에 따라 업무 진행이 가능합니다.
- 전체 과정이 S/W 생명주기와 일치하여, 이해하기 쉽습니다.
- 각 진행 단계 별 산출물(문서)이 확실하여, 진행중 및 진행 이후에도 관리가 용이합니다.
4. 단점
- 각 단계가 종결 되어야 다음 단계 진행이 가능합니다.
- 이미 구현 단계가 진행되고 있다면 요구에 대한 변경을 수용하기 어렵습니다.
- 테스트 단계에서 발견된 중요 결함은 치명적인 문제가 될 수 있습니다.
에자일(Agile)
에자일은 날렵한, 민첩하다는 뜻으로 고객의 요구에 민첩하게 대응하고 그때그때 주어진 문제를 풀어나가는 방법론을 말합니다. 짧은 개발 주기를 반복하여 진행되며 각 개발 주기마다 만들어지는 결과물에 대해 고객의 평가와 요구를 적극적으로 수용하며 진행합니다.
1. 특징
- 프로세스와 도구 중심이 아닌, 개개인과 상호 작용을 중시합니다.
- 문서 중심이 아닌, 작동하는 소프트웨어를 중시합니다.
- 계약 협상 중심이 아닌, 고객과의 협력을 중시합니다.
- 계획에 맞추기보다는 변화에 대응하는것을 중시합니다.
2. 구성단계
3. 장점
- 개발 주기를 통해 프로젝트의 방향과 목표를 가늠하도록 도와줍니다.
- 반복적인 결과물이 나오게되는데, 이를 통해 수정된 요구사항과 문제점을 빠르게 파악 할 수 있습니다.
- 파악된 문제점을 초기에 해결 할 수 있습니다.
4. 단점
- 지나친 개발자 중심의 방법론 일 수 있습니다.(기획자, 디자이너가 개발자에게 끌려하는 형태)
- 빈번한 수정으로 개발시 인력들이 느끼는 피로도가 높아집니다.
- 불완전하고 예측불가능한 요소(비용, 시간 등)를 지닌 채 진행 될 수 있습니다.
반응형