소프트웨어 개발 수명 주기

소프트웨어 개발 수명 주기(Software Development Life Cycle, SDLC)란 시스템 엔지니어링, 정보 시스템, 또는 소프트웨어 공학에서 정보 시스템을 계획, 개발, 시험, 채용하는 과정을 뜻하는 용어이다. 소프트웨어 개발 생명 주기는 하드웨어부터 소프트웨어까지 넓은 범위에 적용할 수 있다. 대개 요구사항 분석→설계→개발→테스트→운영 단계로 구성되어 있다.

개요 
소프트웨어 개발 수명 주기는 명확하게 나뉜 여러 단계들로 나뉜다. 조립 라인과 마찬가지로 SDLC의 목적도 고품질의 시스템을 만들어서 고객의 요구를 만족시키는 것이다. 컴퓨터 시스템은 (특히 요즘 주목받는 서비스 지향 아키텍처에서) 여러 소프트웨어 회사들의 여러 시스템들을 연결해야 한다. 이런 복잡성을 관리하기 위해서 수많은 SDLC 모델들과 방법론들이 만들어졌다. 폭포수, 스파이럴, 에자일 소프트웨어 개발, 빠른 프로토타입, 반복 및 확장, 동기화와 안정화 등이 그것이다.
SDLC는 말하자면 애자일의 반복성과 순차성 사이의 줄다리기라고 할 수 있다. 익스트림 프로그래밍이나 스크럼 등의 애자일 소프트웨어 개발은 개발 중 빠르게 변화할 수 있는 가벼움을 유지하는 것에 집중한다. 래셔널 통합 프로세스나 동적 소프트웨어 개발 방법 등의 반복적인 방법론은 프로젝트의 작은 부분을 빠르게 개발한 뒤에 반복해서 계속 확장하거나 향상시키는 것에 초점을 맞추고 있다. 워터풀과 같은 순차적(big-design-up-front, BDUF) 모델은 큰 프로젝트를 세세한 곳까지 계획하고 리스크를 줄이면서 결과를 예측가능하도록 관리하는 것에 초점을 맞춘다. 점진적 개발 등과 같은 다른 모델들은 프로젝트의 크기나 기능 개발에 따른 개발의 형태에 초점을 맞추는 경향이 있다.
프로젝트 관리에서 프로젝트라 함은 프로젝트 수명주기(PLC)와 SDLC로 정의되는데, 둘은 약간 다르다. "프로젝트 수명 주기는 프로젝트의 모든 활동을 다루지만 소프트웨어 수명 주기는 상품의 요구 사항이 가장 중요하다"(Taylor, 2004)
SDLC는 IT 프로젝트 개발에 사용되고 계획부터 완성까지 모든 단계에 관여한다.

단계

같이 보기 
 소프트웨어 배포 생명 주기
 소프트웨어 개발 프로세스

각주

외부 링크 

 The Agile System Development Lifecycle

시스템 공학
컴퓨터 용어
소프트웨어 개발 프로세스
소프트웨어 공학