[SW Architect] Software Development Life Cycle(SDLC)

mandu·2025년 6월 10일

[SW Architect]

목록 보기
3/10

소프트웨어 생명주기 (Software Development Life Cycle : SDLC)

소프트웨어 생명주기란 시스템의 요구분석부터 유지보수까지의 전 과정을 체계화한 절차로,
각 단계에서 수행되는 작업을 명확히 정의하여 개발 프로세스를 구조화한 것이다.


1. SDLC 단계

요구사항 분석 → 설계 → 구현 → 테스트 → 유지보수


1.1 요구사항 분석

  • 다양한 이해관계자의 요구를 수집 및 분석하여 개발 대상 시스템의 기능과 제약조건을 명확히 정의
  • 기능 요구사항과 비기능 요구사항으로 구분

기능 요구사항

  • 시스템이 수행해야 할 서비스/기능에 대한 명세
  • 예: 장바구니 기능, 포인트 결제 기능 등

비기능 요구사항

  • 성능, 보안, 사용성 등 시스템의 특성 및 제약사항
  • 예: 24시간 가동, 3초 이내 응답, 정기적인 패치 필요 등

1.2 설계

  • 분석된 요구사항을 바탕으로 시스템이 동작할 수 있도록 구조와 수행 방식 설계
  • 시스템 구조 설계 / 프로그램 설계 / UI 설계로 구성

1.3 구현

  • 설계 결과를 바탕으로 프로그래밍 언어를 이용해 실제 소프트웨어 개발
  • 인터페이스 구현, 자료구조 정의, 오류 처리 등 포함

1.4 테스트

  • 시스템이 요구사항을 만족하는지 검증하는 단계
  • 테스트는 다음과 같이 구분됨:

단위 테스트

  • 모듈 또는 함수 단위로 테스트
  • 기법: 인터페이스, 오류 처리, 자료구조, 실행 경로 테스트

통합 테스트

  • 모듈 간 상호작용 검증
  • 기법: 빅뱅, 샌드위치, 상향식, 하향식 테스트

시스템 테스트

  • 시스템 전체 기능 검증
  • 기법: 기능/비기능 요구사항 기반 테스트

인수 테스트

  • 고객 계약 요건 만족 여부 확인
  • 기법: 계약 인수, 사용자 인수, 운영 인수, 알파/베타 테스트

1.5 유지보수

  • 시스템 인수 후 발생하는 모든 수정 및 개선 활동
  • 유형: 예방, 교정, 완전, 적응 유지보수

2. 소프트웨어 생명주기 모델 종류

최적의 생명주기 모델은 프로젝트 규모, 리스크, 팀 경험 등에 따라 달라질 수 있음.


2.1 폭포수 모델 (Waterfall Model)

  • 전통적, 단계별 순차 진행
  • 각 단계 종료 후 다음 단계로 이동
  • 장점: 명확한 절차 / 단점: 변경 대응 어려움

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

  • 프로토타입(모형)을 반복 구현하며 사용자 피드백 반영
  • 요구사항 파악에 유리하지만 폐기 비용 증가

2.3 나선형 모델 (Spiral Model)

  • 위험 분석 중심의 반복적 개발 모델
  • 유연한 변경 대응 / 관리 복잡도 높음
  • 절차: 계획 → 위험 분석 → 개발 → 평가 → 반복

2.4 반복적 모델 (Iteration Model)

  • 점진적 완성 또는 병렬적 개발을 통해 통합
  • 일정 단축 가능 / 관리 비용 증가

profile
만두는 목말라

0개의 댓글