본문 바로가기
Computer Science/Software Engineering

[Software Engineering] Chapter 07. 소프트웨어 개발 프로세스 - 전통적 모델(폭포수, 나선형, V)

by song.ift 2023. 2. 23.

전통적 모델

 

폭포수 모델(Waterfall Model)

  • 순차적인 소프트웨어 개발 프로세스로, 각 개발 단계가 마치 폭포수처럼 아래로 향하는 듯 진행되는 모델
  • 완벽하게 설계해서, 완벽하게 개발해야하니 이상적인 모델로 현실성이 가능한지 의문
  • 배 만드는 데는 적합. 소프트웨어에는 ???
  • 개발 단계
    1. 요구사항 분석(Specification, Requirements Eng.) : What을 정의함
    2. 설계(Planning, Design) : How를 정의함
    3. 구현(Implementation, Developement)
    4. 테스트(Test, Validation)
    5. 출시 후 유지보수(Maintenance, Evolution) : 변화하는 고객의 Needs에 대응
  • 한계점
    • 순차적으로 한 단계가 완전히 완료된 후에야 그 다음 단계를 진행할 수 있음
    • 수시로 변화하는 고객의 요구사항에 대응하기 어려움
      • 현실에서 요구사항은 빈번하게 변경되며, 코드의 수정 또한 모든 단계에서 발생할 수 있음
    • 실제로 실행 불가능한 모델이라는 비판이 있음
    • 개발 일정은 항상 늦어짐
      • 개발자는 끝없는 야근
      • 개발 1년 걸려 다했는데 고객이 그동안 상황이 변해서 추가 요구사항을 냄 -> 또 야근

 

나선형 모델(Spiral Model)

  • 전체적인 프로세스가 나선 모양을 그리며, 각 단계(Phase)를 반복하면서 개발이 진행되는 모델
  • 개발 시, 위험을 최소화하기 위해 점진적으로 완벽한 프로그램을 개발해나가는 모델
  • 한 번 반복될 때 마다 리스크(위험 요소)를 분석하고 제거하는 방식
  • 리스트 최소화를 위해 위험 분석 단계 존재
  • 점진적으로 단계를 반복 수행
  • 과정
    1. 목표 설정
    2. 위험 분석
    3. 개발
    4. 리뷰 및 다음 단계 계획
  • 장점
    • 각 단계마다 클라이언트가 프로토타입을 미리 확인할 수 있음
    • 잦은 소통과 피드백이 가능해지고, 요구사항의 변경을 수용하기보다 유연함
  • 한계점
    • 매 단계마다 목표 설정과 위험 분석이 들어가서 시간이 많이 들고 고비용이다
    • 작고 단순한 프로젝트에는 적절하지 않다.

 

V 모델

  • 폭포수 모델의 확장된 형태 중 하나
  • 각 개별 단계마다 그에 상응하는 검증을 진행하는 개발 프로세스
  • 장점
    • 각 개발 단계가 다음 단계로 이동하기 전에 테스트가 되기 때문에, 오류를 줄일 수 있다
    • 각 단계가 상세하게 문서화가 된다.
  • 한계점
    • 폭포수 모델의 단점을 대부분 가져가며,
    • 요구사항 변경에 대응하기 어렵다.

 

 

 

댓글