gwimong's blog Software Engineer

소프트웨어 공학 기본 #1

소프트웨어 개발 수명 주기(SDLC)

소프트웨어 개발 수명 주기

(Software Development Life Cycle, SDLC)
시스템 엔지니어링, 정보 시스템, 또는 소프트웨어 공학에서 정보 시스템을 계획, 개발, 시험, 채용하는 과정을 뜻하는 용어입니다.
대게 요구사항 분석→설계→개발→테스트→운영 단계로 구성되어 있습니다.

요구 사항 분석

  • 요구 사항을 수집하고 제품의 요구와 조건을 결정
  • 소프트웨어의 기능과 제약 조건 등을 명확히 정의

설계

  • 정의한 기능을 실제 수행할 수 있도록 수행 방법을 논리적으로 결정
  • 시스템 구조 설계/ 프로그램 설계 / 사용자 인터페이스 설계 / 데이터베이스 설계 등

구현

  • 설계 단계에서 논리적으로 결정한 문제 해결 방법을 특정 프로그래밍 언어를 사용하여 구현
  • 인터페이스 / 자료 구조 / 오류 및 예외 처리 등

테스트

  • 시스템이 요구을 모두 만족하는지 검사하고 평가하는 단계
  • 단위 테스트 / 통합 테스트 / 시스템 테스트 / 인수 테스트 등

유지 보수

  • 시스템이 인수된 이 후 일어나는 모든 활동

소프트웨어 생명 주기 모델

폭포수 모델 (Waterfall Model)

  • 가장 오래 된 모델
  • 순차적으로 각 단계를 완료 후, 다음 단계로 넘어가는 모델
  • 단계별 정의와 산출물이 명확하나, 요구 사항 변경이 어려움

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

  • 주요 기능을 프로토타입으로 구현하고, 이에 대한 고객의 피드백을 반영하여 소프트웨어를 개발
  • 요구분석이 쉽고 타당성 검증이 가능하나 프로토타입 개발에 따른 비용 증가

나선형 모델(Spiral Model)

  • 점진적으로 완벽한 시스템을 개발해 나가는 모델
  • 위험성 감소와 변경에 유연한 대처가 가능하나, 단계 반복에 따른 추가 비용과 관리가 어려움

반복적 모델(Iteration Model)

  • 병렬적으로 개발 후 통합하거나, 반복적으로 개발하여 점증 완성시키는 모델
  • 사용자의 요구사항 일부분 혹은 제품 일부분을 반복적으로 개발하여 최종 시스템으로 완성하는 모델
  • 병행 개발로 인한 일정 단축이 가능하나, 관리 비용이 증가

Comments

Content