본문 바로가기
Computer Science/소프트웨어공학

워터폴 모델의 적용과 한계: 임베디드 시스템과 대규모 소프트웨어 프로젝트 관리

by 큌 2023. 8. 7.
반응형

목차

  1. 워터폴 모델
  2. 워터폴 모델의 단계
  3. 워터폴 모델은 특정 상황에서만 적합합니다

워터폴 모델은 소프트웨어 개발의 초기 공개 모델로, 계단식으로 진행되는 여러 단계로 구성됩니다. 이 모델은 요구사항 분석, 설계, 구현, 테스트, 유지보수 등의 단계를 포함하며, 각 단계는 승인된 문서로 이어집니다. 하드웨어 개발에 적합하지만 소프트웨어 개발에서는 단계 간 겹침과 정보 제공이 필요합니다. 특정 상황, 예를 들어 임베디드 시스템, 안전 분석이 필요한 시스템, 대규모 소프트웨어 시스템에 적합하며, 변화가 빠른 프로젝트에는 민첩한 방법이 더 적합할 수 있습니다.

워터폴 모델

워터폴 모델은 소프트웨어 개발 프로세스의 초기 공개 모델로, 대형 군사 시스템 공학에 사용된 엔지니어링 프로세스 모델을 바탕으로 합니다(Royce 1970). 이 모델은 소프트웨어 개발의 다양한 단계를 계단식으로 진행되는 여러 단계로 나누어 제시하며, 이러한 특성 때문에 폭포 모델 또는 소프트웨어 수명 주기라고 알려져 있습니다. 계획 주도 프로세스의 하나로, 소프트웨어 개발을 시작하기 전에 모든 프로세스 활동을 계획하고 일정을 잡는 것이 원칙입니다.

워터폴 모델의 단계

  1. 요구사항 분석 및 정의: 시스템의 서비스, 제약사항 및 목표는 시스템 사용자와의 협의를 통해 수립되며, 이들을 세부적으로 정의하여 시스템 사양을 만듭니다.
  2. 시스템 및 소프트웨어 설계: 시스템 설계는 하드웨어 또는 소프트웨어 시스템 중 하나에 요구사항을 할당하고 전체적인 시스템 아키텍처를 수립합니다. 소프트웨어 설계는 기본적인 소프트웨어 시스템 추상화 및 그 관계를 식별하고 기술합니다.
  3. 구현 및 단위 테스트: 소프트웨어 설계는 프로그램 또는 프로그램 단위의 집합으로 구현되며, 각 단위가 규격을 충족하는지 확인하는 단위 테스트를 포함합니다.
  4. 통합 및 시스템 테스트: 개별 프로그램 단위 또는 프로그램은 완전한 시스템으로 통합 및 테스트되어 소프트웨어 요구사항이 충족되었는지 확인한 후 고객에게 전달됩니다.
  5. 운영 및 유지보수: 이 단계는 시스템을 설치하여 실제 사용하는 단계로, 오류 수정, 구현 개선 및 새로운 요구사항에 따른 서비스 개선을 포함합니다.

이 모델의 각 단계 결과는 승인된 문서("signoff")로, 이전 단계가 완료될 때까지 다음 단계가 시작되어서는 안 됩니다. 이는 하드웨어 개발에는 적합할 수 있지만, 소프트웨어 개발에서는 단계들이 서로 정보를 제공하며 겹치는 경우가 많습니다. 예를 들어, 설계 중에 요구사항과 관련된 문제가 확인되거나, 코딩 중에 설계 문제가 발견될 수 있습니다.

프로세스 단계에서 새로운 정보가 발생하면, 이전 단계에서 생성된 문서는 요구되는 시스템 변화를 반영하여 수정해야 합니다. 이는 고객의 승인을 필요로 하며, 전체 개발 프로세스를 지연시킬 수 있습니다. 변경 사항이 없도록 요구사항을 조기에 동결하는 것이 이상적이지만, 이는 시스템이 사용자의 원하는 작업을 수행하지 않거나 설계 문제가 구현 요령으로 회피되어 시스템이 잘못 구성될 위험이 있습니다.

워터폴 모델은 특정 상황에서만 적합합니다

  1. 임베디드 시스템: 하드웨어의 경직성 때문에 소프트웨어 기능 결정을 미루는 것이 불가능한 경우. 안전 및 보안 분석이 필요한 시스템: 사양 및 설계 문서 완성 후 안전 관련 문제를 수정하기에 비용이 많이 드는 경우.
  2. 대규모 소프트웨어 시스템: 여러 파트너 회사가 개발에 참여하는 경우, 독립적 개발을 위한 완전한 사양이 필요한 경우.

비공식적인 팀 커뮤니케이션이 가능하고 소프트웨어 요구사항이 빠르게 변화하는 상황에서는 반복적인 개발이나 민첩한 방법이 더 적합할 수 있습니다. 워터폴 모델의 중요한 변형으로는 공식 시스템 개발이 있으며, 이는 엄격한 안전, 신뢰성 또는 보안 요구사항을 가진 소프트웨어 시스템 개발에 주로 사용됩니다.

반응형