Study_Note

SDLC - sequential development model 본문

CSTS

SDLC - sequential development model

12월7일생 2024. 10. 15. 11:39
728x90

반응형

순차적 개발 모델(sequential development model)

순차적 개발 모델은 소프트웨어 개발 과정에서 각 단계를 순차적으로 진행하는 접근 방식으로, 대표적으로 폭포수 모델V-모델이 있습니다. 이들 모델은 각 단계에서 명확한 산출물이 나오고, 이전 단계가 완료된 후에야 다음 단계로 넘어가는 구조를 가지고 있습니다. 이 글에서는 폭포수 모델과 V-모델을 비교하고, 각 모델의 특징을 설명하겠습니다.

폭포수 모델 (Waterfall Model)

폭포수 모델은 소프트웨어 개발 생명 주기 중 가장 오래된 전통적인 모델입니다. 요구사항 분석에서부터 설계, 코딩, 테스트, 유지보수에 이르는 전체 과정을 순차적으로 진행하는 방식으로, 각 단계가 명확하게 구분되어 있습니다.

주요 단계

  1. 요구사항 분석
    소프트웨어가 제공해야 할 기능과 성능, 그리고 인터페이스 요구사항을 분석하고 명세화하는 단계입니다.
    이 단계의 주요 산출물은 요구사항 명세서(Requirements specification)입니다.
  2. 구조 설계
    시스템의 전반적인 구조를 정의하고, 모듈 간의 관계와 데이터베이스를 설계합니다.
    시스템 아키텍처(System architecture)가 이 단계의 주요 산출물입니다.
  3. 상세 설계
    모듈의 내부 알고리즘, 데이터 표현 방식, 루틴과 데이터 간의 인터페이스를 설계합니다.
    상세 설계 명세서(detailed design specifications)가 이 단계의 산출물입니다.
  4. 코딩
    설계된 내용을 바탕으로 프로그래밍 언어를 사용하여 소프트웨어를 개발하는 단계입니다.
    프로그램(program)이 이 단계의 결과물입니다.
  5. 테스트
    개발이 완료된 후, 시스템을 테스트하여 오류나 결함을 찾고 수정하는 과정입니다.

폭포수 모델의 장단점

폭포수 모델은 사용자의 요구사항이 명확하고, 개발 도중 요구사항 변경이 적은 프로젝트에 적합합니다. 단계별 문서화가 잘 되어 있어 추후 유지보수에 유리합니다. 그러나 테스트 단계가 개발이 모두 완료된 후에 이루어지기 때문에, 결함을 발견했을 때 수정에 많은 비용과 시간이 소요될 수 있습니다. 특히, 시스템의 근본적인 구조 설계에 문제가 있을 경우 개발이 완료된 시점에서는 수정이 매우 어렵습니다.

 

V-모델 (V-Model)

V-모델은 폭포수 모델을 기반으로, 테스트 활동을 개발과 동등하게 취급한 소프트웨어 개발 모델입니다. 각 개발 단계마다 대응되는 테스트 단계가 존재하며, 이들 간의 관계가 명시적으로 나타나 있습니다. V-모델은 폭포수 모델과 달리 개발 단계테스트 단계가 병행하여 진행됩니다.

V-모델의 단계

  1. 요구사항 분석 ↔ 인수 테스트 계획
    사용자의 요구사항을 분석하는 동시에 인수 테스트를 계획합니다.
  2. 구조 설계 ↔ 시스템 테스트 계획
    시스템의 전체적인 아키텍처를 설계하면서, 시스템 테스트를 준비합니다.
  3. 상세 설계 ↔ 통합 테스트 계획
    모듈 간의 상호작용을 고려한 설계를 진행하며, 통합 테스트 계획을 수립합니다.
  4. 코딩 ↔ 단위 테스트 계획
    실제 코드를 작성하고, 각 모듈에 대한 단위 테스트를 준비합니다.

V-모델의 주요 특징

  • 병행되는 테스트 활동
    개발이 진행됨과 동시에 테스트 계획과 설계가 진행됩니다. 요구사항 분석 단계에서는 인수 테스트 계획, 구조 설계 단계에서는 시스템 테스트 계획을 세우며, 각 개발 단계에서 산출된 문서나 정보들은 테스트 설계에 사용됩니다.  
  • 테스트 레벨의 명확화
    V-모델은 각 단계에서 발생할 수 있는 결함을 방지하기 위해, 단계마다 대응되는 테스트를 명확히 정의하고 있습니다.
    • 단위 테스트 : 각 모듈이 올바르게 동작하는지 검증합니다.
    • 통합 테스트 : 모듈 간의 상호작용을 확인합니다.
    • 시스템 테스트 : 전체 시스템이 요구된 명세에 맞게 동작하는지 검증합니다.
    • 인수 테스트 : 사용자의 요구사항에 맞게 시스템이 개발되었는지를 확인합니다.

폭포수 모델과 V-모델의 비교

  • 테스트 시점
    폭포수 모델은 코딩 후에 테스트를 진행하는 반면, V-모델은 개발과 테스트를 동시에 시작합니다.
  • 테스트의 중요성
    폭포수 모델은 테스트를 하나의 독립된 개발 단계로 취급하지만, V-모델은 각 개발 단계와 테스트 단계가 대응하여, 테스트가 개발 과정에서부터 계획되고 수행됩니다.

검증(Verification)과 확인(Validation)

V-모델에서는 검증(Verification)과 확인(Validation)을 구분합니다.

  • 검증(Verification)
    시스템이 요구된 명세를 충족하는지 확인하는 과정입니다. 즉, 시스템이 제대로 만들어지고 있는지를 확인합니다. (Are we building the system right?)
  • 확인(Validation)
    시스템이 실제 사용자 요구를 만족시키는지를 검토하는 과정입니다. 즉, 올바른 시스템을 만들고 있는지를 판단합니다. (Are we building the right system?)

검증은 시스템 명세를 기준으로 이루어지며, 주로 시스템 테스트, 통합 테스트, 단위 테스트에서 이루어집니다.
반면, 확인은 사용자의 요구사항을 기준으로 하며, 인수 테스트가 대표적인 확인 활동입니다.

결론

폭포수 모델과 V-모델은 모두 순차적인 소프트웨어 개발 모델이지만, 테스트 활동의 진행 방식에서 큰 차이를 보입니다. 폭포수 모델은 개발 후 테스트를 수행하는 반면, V-모델은 개발과 테스트를 동시에 수행하며, 각 단계에서 발생할 수 있는 문제를 빠르게 발견하고 수정할 수 있습니다. 또한 V-모델은 검증과 확인을 명확히 구분하여, 시스템이 명세와 사용자 요구 모두를 충족할 수 있도록 돕습니다.

 

 

software life cycle model

Software 생명 주기 모델 다양한 소프트웨어들은 고유한 설계 기법과 개발 과정을 갖고 있지만, 대부분은 공통적인 소프트웨어 개발 수명주기(SDLC, Software Development Life Cycle)를 따르고 있습니다. 이

staedtler1207.tistory.com

 

'CSTS' 카테고리의 다른 글

software life cycle model and testing  (0) 2024.10.02
RBT - test monitoring/control and test closure  (2) 2024.09.25
RBT - run tests and report defects  (1) 2024.09.12
RBT - test design/implementation and test environment  (1) 2024.09.10
RBT - test plan  (2) 2024.09.09