티스토리 뷰

728x90

소프트웨어 개발 프로세스 모델이란?

소프트웨어 개발 프로세스 모델은 소프트웨어 개발 생명주기를 기반으로 정해진다.

소프트웨어 개발 생명 주기 관련 글을 ➡️ 여기 를 참고하면 된다.

 

소프트웨어 개발 프로세스 모델의 종류 6가지는 아래와 같다.

 

  • 폭포수 모델
  • V 모델
  • 프로토타입 모델
  • 나선형 모델
  • 진화적 모델
  • 애자일(Agile) 모델

 

폭포수 모델 (waterfall model)

폭포수 모델(waterfall model)은 순차적인 소프트웨어 개발 프로세스(소프트웨어를 만들기 위한 프로세스)로, 개발의 흐름이 마치 폭포수처럼 지속적으로 아래로 향하는 것처럼 보이는 데서 이름이 붙여졌다. 이 폭포수 모델의 흐름은 소프트웨어 요구사항 분석 단계에서 시작하여, 소프트웨어 설계소프트웨어 구현소프트웨어 시험소프트웨어 통합 단계 등을 거쳐, 소프트웨어 유지보수 단계에까지 이른다.

 

특징

- 가장 오래되고 널리 사용된 프로세스 모델이다.

- 각 단계가 다음 단계 시작 전에 끝나야 한다.

- 요구사항이 명확하고 변경이 거의 없는 경우에 활용한다. 통상적으로 크고 복잡하며 장기간 지속되는 프로젝트에 사용하는 것이 적합하다.

 

단점

- 초기 단계들이 지나치게 강조되어 불필요한 문서들의 작성이 요구되어 설계와 코딩 및 테스트 지연 가능성이 있다.

- 이미 구현 단계가 진행되고 있다면 요구에 대한 변경을 수용하기 어렵다.

- 프로토타입이 없기 때문에 최종 결과가 나오기 전까지 어떤 결과물이 나올지 알 수 가 없다.

 

 

 

V 모델 (V-model)

소프트웨어 개발 프로세스로 폭포수 모델의 확장된 형태 중 하나로 볼 수 있다. 아래 방향으로 선형적으로 내려가면서 진행되는 폭포수 모델과 달리, 이 프로세스는 오른쪽 그림과 같이 코딩 단계에서 위쪽으로 꺾여서 알파벳 V자 모양으로 진행된다. V 모델은 개발 생명주기의 각 단계와 그에 상응하는 소프트웨어 시험 각 단계의 관계를 보여준다.

V 모델은 소프트웨어 개발의 각 단계마다 상세한 문서화를 통해 작업을 진행하는 잘 짜인 방법을 사용한다. 또한 테스트 설계와 같은 테스트 활동을 코딩 이후가 아닌 프로젝트 시작 시에 함께 시작하여, 전체적으로 많은 양의 프로젝트 비용과 시간을 감소시킨다.

 

장점

- 프로세스가 단순하여 초보자가 쉽게 적용 가능하다.

- 중간 산출물이 명확하여 관리하기 편리하고 좋다.

- 코드 생성 전 충분한 연구와 분석 단계 시간이 주어진다.

 

단점

- 불필요한 다종의 문서를 생산할 가능성이 있다.

- 프로세스 진행 과정에 변경될 수 있는데 이를 수용할 수 없다.

- 테스트 작업이 프로젝트 후반, 즉 시스템이 완성된 후에 시작된다.

 

 

프로토타입 모델 (Prototype model)

프로토타입은 대량 생산에 앞서 미리 제작해 보는 시제품으로, 제작물의 모형이라는 뜻이다. 

정식 절차에 따라 완전한 소프트웨어를 만들기 전에 사용자의 요구를 받아 일단 모형을 만들고 이 모형을 사용자와 의사소통하는 도구로 활용한다.

 

장점

- 반복된 요구사항 정의를 통해 사용자 요구가 충분히 반영된 요구 분석 명세서 작성

- 프로토타입 사용을 통한 완성품의 예측 가능

- 빠른 개발을 요구하는 분야에 적용이 적합하다.

- 자주 소프트웨어를 배포하면 가동 중인 시스템에서 일어나는 예상하지 못했던 문제를 유지보수하여 보완할 수 있다.

 

단점

- 중간 산출물 생성의 어려움이 존재

- 불명확한 개발 범위로 인한 개발 종료 및 목표의 불확실성

- 반복적인 개발을 통한 투입인력 및 비용 산정의 어려움이 있다.

 

나선형 모델 (Spiral Model)

시스템 개발 시 위험을 최소화하기 위해 점진적으로 완벽한 시스템으로 개발해 나가는 모델이다.

실패의 위험을 줄이고 테스트에 용이하게 만들면서 피드백이 가능하다.

 

장점

- 정확한 사용자 요구사항 파악- 위험 부담 감소, 품질 확보

 

단점

- 프로젝트 개발에 많은 시간 소요- 프로젝트 관리 복잡도 높음- 위험관리 능력이 성공여부에 영향

 

진화적 프로세스 모델 (Evolutionary process model)

폭포수 모델의 경우 단계를 거슬러 올라가기에 부적합하고 요구사항의 변화가 수시로 발생하기 때문에 이를 해결하기 위해 나온 모델이 진화적 프로세스 모델이다.

 

장점

- 몇 가지 기능이 부족하더라도 초기에 사용 및 교육 가능하다.

- 사용자의 요구를 빠르게 반영 할 수 있다.

- 새로운 기능을 가진 소프트웨어에 대한 시장을 빨리 형성한다.

- 가동중인 시스템에서 일어나는 예상하지 못했던 문제를 신속하고 꾸준하게 고쳐나갈 수 있다.

 

단점

- 프로젝트 관리가 복잡해지기 때문에 큰 프로젝트 부적합하다.

- 끝이 안 보일 수 있어 실패의 위험이 크다.

- 프로젝트의 진행이 위험분석에 크게 의존하게 된다.

 

애자일 모델(Agile model)

고객의 요구에 민첩하게 대응하고 그때그때 주어진 문제를 풀어나가는 방법론을 말한다.

 

애자일의 기본 가치

- 프로세스와 도구 중심이 아닌, 개개인과 상호 소통 중시한다.

- 문서 중심이 아닌, 실행 가능한 소프트웨어 중시한다.

- 계약과 협상 중심이 아닌, 고객과의 협력을 중시한다.

- 계획 중심이 아닌, 변화에 대한 민첩한 대응 중시한다.

 

애자일의 선언

- 형식적인 문서보다는 커뮤니케이션을 통하여 프로젝트가 목표를 향하여 나아가게 한다.

- 사용자는 문서가 아니라 실행되는 소프트웨어를 통하여 요구를 확인한다.

- 사용자의 요구는 비즈니스 환경에 따라 프로젝트 중간에 바뀔 수 있음을 고려한다.

- 짧은 주기 동안 요구정의에서 구현, 테스트까지 이루어지며 각 반복 주기의 반성 의견을 다음 계획에 포함한다.

 

 

 

 

 

Reference Link

https://onecoin-life.com/24

https://luv-n-interest.tistory.com/349

https://itproda.tistory.com/85

https://ko.wikipedia.org/wiki/%ED%8F%AD%ED%8F%AC%EC%88%98_%EB%AA%A8%EB%8D%B8

 

 

 

728x90