본문 바로가기

정보처리기사

(정보처리기사 실기 정리) 1. 요구사항확인 - (2)소프트웨어 생명주기의 주요 모델별 상세 정리

반응형

 

 

소프트웨어 생명주기의 주요 모델별 상세 정리


1. 폭포수 모델 (Waterfall Model)

  • 소프트웨어 개발의 가장 전통적인 접근 방식으로, 각 단계가 순차적으로 진행됩니다.
  • 이전 단계가 완료된 후에야 다음 단계로 진행할 수 있는 구조를 가집니다.

특징:

  • 단계별 진행(요구사항 분석 → 설계 → 구현 → 테스트 → 배포 → 유지보수).
  • 각 단계의 결과물이 다음 단계의 입력이 됨.
  • 계획 및 문서화가 철저히 이루어짐.

장점:

  • 단순하고 구조화되어 있어 이해와 관리가 용이.
  • 명확한 단계 구분으로 프로젝트 진행 상황 추적이 쉬움.

단점:

  • 초기 요구사항 변경이 어렵고 유연성이 부족.
  • 후반부에서 결함 발견 시 수정 비용이 높음.
  • 프로토타입이 없어 사용자 요구사항을 완벽히 반영하기 어려움.

 

 

 

 


2. 프로토타이핑 모델 (Prototyping Model)

  • 초기 개발 단계에서 사용자 요구를 이해하기 위해 프로토타입(시제품)을 개발하여 사용자와의 피드백을 반영한 모델.

특징:

  • 초기 프로토타입을 반복적으로 수정하며 점진적으로 개발.
  • 사용자 요구사항 이해 및 반영을 중시.

장점:

  • 사용자 요구사항이 명확하지 않을 때 유용.
  • 사용자가 결과물을 미리 확인하여 요구사항 반영이 정확.
  • 초기 단계에서 오류를 발견하고 수정할 수 있음.

단점:

  • 과도한 반복으로 개발 비용과 시간이 증가할 수 있음.
  • 임시 성격의 프로토타입이 최종 제품으로 오해될 위험.

 

 

 

 

 

 

 

 

 


 

 

 

3. 애자일 모델 (Agile Model)

  • 고객의 요구사항 변화에 유연하게 대응하며 반복적이고 점진적으로 소프트웨어를 개발하는 방식.

특징:

  • 짧은 개발 주기(Iteration)와 지속적인 사용자 피드백 수렴.
  • 팀 간 협업과 의사소통을 강조.
  • 계획보다 적응과 변화를 중시.

장점:

  • 요구사항 변화에 민첩하게 대응.
  • 사용자 만족도가 높음.
  • 자주 배포되어 제품 품질에 대한 신뢰성 확보.

단점:

  • 명확한 계획이 없는 경우 혼란 발생 가능.
  • 문서화가 부족할 수 있음.
  • 대규모 프로젝트에서 관리가 어려울 수 있음.

 

 

 

 

 

 

 

 


4. 나선형 모델 (Spiral Model)

  • 위험 분석을 기반으로 반복적으로 개발을 진행하는 방식으로, 폭포수 모델과 프로토타이핑 모델을 결합한 형태.

특징:

  • 4단계 반복(계획 → 위험 분석 → 개발 → 평가).
  • 각 반복 주기(Iteration)에서 점점 구체화된 소프트웨어를 개발.
  • 위험 관리가 핵심.

장점:

  • 위험을 체계적으로 관리 가능.
  • 요구사항 변화와 복잡한 프로젝트에 적합.
  • 점진적으로 개발되어 사용자 피드백 반영 용이.

단점:

  • 위험 분석에 따른 비용과 시간이 많이 소요.
  • 소규모 프로젝트에는 적합하지 않음.
  • 복잡한 관리와 개발 과정을 요구.

 

 

 

 

 

 

 


5. V-모델 (Verification and Validation Model)

  • 폭포수 모델의 확장형으로, 각 개발 단계와 테스트 단계를 병렬적으로 수행.

특징:

  • 단계별 테스트 계획이 함께 진행되어 개발과 검증을 동시에 진행.
  • 단계별 산출물을 지속적으로 확인.

장점:

  • 테스트 계획이 초기에 설계되어 결함 발견율이 높음.
  • 폭포수 모델 대비 결함 수정 비용 감소.

단점:

  • 초기 요구사항이 명확하지 않은 경우 비효율적.
  • 테스트 문서화에 많은 시간이 소요.

 

 

 

 

 

 


6. RAD 모델 (Rapid Application Development Model)

  • 빠른 개발과 반복적인 사용자 피드백을 통해 소프트웨어를 신속히 개발하는 모델.

특징:

  • 프로토타이핑과 사용자 피드백을 결합.
  • 개발 속도를 최우선으로 고려.

장점:

  • 짧은 시간 안에 결과물을 확인 가능.
  • 사용자 요구를 신속히 반영.

단점:

  • 규모가 크고 복잡한 프로젝트에는 부적합.
  • 충분한 자원이 없으면 어려움.

 

 

 

 

 

 

 


7. 스크럼 (Scrum)

  • 애자일의 한 유형으로, 팀 중심의 짧은 주기로 소프트웨어를 개발.

특징:

  • 스프린트(Sprint)라는 짧은 주기로 개발 진행.
  • 매일 스탠드업 미팅을 통해 진행 상황 공유.
  • 역할(스크럼 마스터, 제품 책임자 등)이 명확히 구분됨.

장점:

  • 유연성과 효율성 제공.
  • 팀 간 협업 촉진.
  • 지속적인 개선 가능.

단점:

  • 팀원 간 의사소통 부족 시 문제 발생.
  • 고도로 숙련된 팀을 요구.

 


이러한 다양한 모델들은 프로젝트의 성격, 요구사항의 명확성, 팀의 역량 등에 따라 적절히 선택하여 적용할 수 있습니다.

반응형