테마
폭포수·프로토타입·나선형 모형
소프트웨어 개발 모형은 요구를 듣고, 설계하고, 만들고, 시험하는 일을 어떤 순서로 몇 번 반복할지 정해 둔 틀이다. 실기 시험에서는 모형의 이름, 단계, 강점과 약점을 짝지어 묻는다. 이 문서는 계획을 앞세우는 전통 모형 세 가지, 폭포수 모형(waterfall model)·프로토타입 모형(prototype model)·나선형 모형(spiral model)을 비교한다. 변화에 맞춰 짧게 반복하는 애자일(agile) 계열은 다음 문서에서 다룬다.
개발 모형이 필요한 이유
소프트웨어 생명 주기(software life cycle)는 소프트웨어가 기획되어 폐기되기까지의 흐름이다. 보통 요구사항 분석, 설계, 구현, 테스트, 유지보수 단계로 나눈다. 프로젝트마다 요구가 얼마나 분명한지, 실패했을 때 손실이 얼마나 큰지가 다르므로 이 단계를 어떻게 밟을지도 달라진다. 그 밟는 방식이 곧 개발 모형이다.
폭포수 모형
폭포수 모형은 각 단계를 확실히 끝내고 검토·승인을 받은 뒤에만 다음 단계로 넘어가는 방식이다. 물이 폭포에서 아래로만 떨어지듯 앞 단계로 돌아가지 않는다는 전제에서 이름이 나왔다. 가장 오래되고 널리 쓰인 모형이라 고전적 생명 주기 모형(classic life cycle model)이라고도 한다.
다이어그램 로딩…
- 강점: 단계마다 산출물(문서)이 분명해서 진행 상황을 관리하기 쉽다. 요구가 처음부터 확실하고 잘 바뀌지 않는 프로젝트에 맞는다.
- 약점: 요구가 중간에 바뀌면 앞 단계로 돌아가 고치기 어렵다. 테스트가 맨 끝이라 설계 실수를 늦게 발견하고, 사용자는 동작하는 제품을 마지막에야 본다.
프로토타입 모형
프로토타입 모형은 본 개발에 들어가기 전에 시제품(prototype)을 먼저 만들어 사용자에게 보여 주는 방식이다. 사용자는 요구를 말로 설명하기 어려워도 눈앞의 화면을 보면 "이건 아니다"를 바로 말할 수 있다. 그 반응으로 요구를 확정한 뒤 실제 개발을 시작하므로, 요구를 잘못 알고 만드는 위험이 줄어든다.
시제품은 요구를 확인한 뒤 버릴 수도 있고, 다듬어서 실제 제품의 뼈대로 쓸 수도 있다. 다만 사용자가 시제품을 완성품으로 착각해 기대가 커질 수 있고, 시제품을 만드는 비용과 시간이 추가로 든다.
나선형 모형
나선형 모형은 보엠(Barry Boehm)이 제안했다. 위험 분석을 매 회차에 끼워 넣어, 개발을 여러 바퀴로 나눠 반복하며 소프트웨어를 조금씩 키워 가는 방식이다. 한 바퀴에서 밟는 네 활동을 시험에서는 다음 순서로 외운다.
| 순서 | 활동 | 하는 일 |
|---|---|---|
| 1 | 계획 수립 | 이번 바퀴의 목표·대안·제약을 정한다 |
| 2 | 위험 분석 | 위험 요소를 찾고 시제품 등으로 줄일 방법을 평가한다 |
| 3 | 개발 및 검증 | 이번 바퀴의 산출물을 만들고 확인한다 |
| 4 | 고객 평가 | 결과를 고객이 보고 다음 바퀴로 갈지 판단한다 |
이 네 이름은 국내 시험에서 쓰는 표기다.1 한 바퀴를 돌 때마다 결과물이 커지고 위험도 줄어든다. 신기술을 쓰거나 실패 손실이 큰 대규모·고위험 프로젝트에 알맞다. 반면 위험을 분석할 전문 인력이 필요하고 관리가 복잡하며 비용이 커서, 작고 단순한 프로젝트에는 과하다. 국내 시험 자료는 점진적 모형이라고도 부르는데, 영어권에서 점진적 모형(incremental model)이라 하면 기능을 몇 덩어리로 나눠 차례로 전달(인도)하는 다른 모형을 가리킨다.
세 모형 비교
| 모형 | 핵심 | 강점 | 약점 |
|---|---|---|---|
| 폭포수 | 단계를 차례로 한 번씩, 되돌아가지 않음 | 관리하기 쉬움 | 변경에 약함, 늦은 테스트 |
| 프로토타입 | 시제품으로 요구 확인 | 요구 오해가 줄어듦 | 기대 과잉, 추가 비용 |
| 나선형 | 위험 분석을 넣은 반복 | 고위험 프로젝트에 강함 | 관리 복잡, 전문성 필요 |
시험 포인트
- "이전 단계로 돌아갈 수 없다는 전제로 각 단계를 확실히 끝내고 승인받아 진행한다" → 폭포수 모형.
- "계획 수립 → 위험 분석 → 개발 및 검증 → 고객 평가를 반복한다", "보엠이 제안했다" → 나선형 모형.
- "시제품을 먼저 만들어 사용자 요구를 확인한다" → 프로토타입 모형.
참고
보엠의 1988년 논문 그림은 사분면을 목표·대안·제약 결정, 대안 평가와 위험 식별·해소, 다음 수준 제품 개발·검증, 다음 단계 계획으로 나눈다. 원문 그림에는 ‘고객 평가’라는 사분면 이름이 없다. 시험은 위 네 이름을 쓰므로 답안에는 그대로 쓴다. ↩︎
