SWEBOK V4.0a에 따르면 소프트웨어 개발 생명주기(software development life cycle, SDLC)는 소프트웨어를 처음 개발하는 과정이다. 소프트웨어 제품 생명주기의 운용, 유지보수, 폐기 활동은 SDLC보다 훨씬 긴 기간에 걸치고, SDLC의 활동보다 더 많은 노력과 자원을 쓴다.[1]

ISO/IEC/IEEE 24765:2017은 소프트웨어 개발 주기(software development cycle)를, 소프트웨어 제품을 개발하기로 정한 때 시작해 소프트웨어를 인도할 때 끝나는 기간으로 정의한다. 이 기간에는 보통 요구, 설계, 구현, 테스트 단계와 때로 설치·점검 단계가 들고, 개발 접근 방식에 따라 단계가 겹치거나 반복된다. 이 용어가 개발자가 더는 개선하지 않을 때까지의 기간이나 소프트웨어 생명주기 전체를 뜻하기도 한다고 덧붙인다.[2]

이 표준은 소프트웨어 생명주기를 사용자나 고객의 필요에서 시작해 제품을 더는 쓰지 않거나 쓸 수 없게 될 때 끝나는 주기로 정의한다.[2] SWEBOK V4.0a에 따르면 소프트웨어 공학에서 개발은 생명주기의 한 단계로, 이해관계자의 필요에 맞춰 소프트웨어 시스템을 만들거나 바꾸는 단계다.[1]

단계와 마일스톤

ISO/IEC/IEEE 12207:2026은 생명주기의 단계(stage)가 주요 진척·달성 마일스톤과 관련되고, 단계끼리 흔히 겹친다고 둔다.[3] 생명주기 모델과 프로세스의 관계는 소프트웨어 프로세스에서 다룬다.

ISO/IEC/IEEE 24765:2017은 마일스톤을 진척을 재는 데 쓰는 예정된 사건으로 정의하고, 큰 마일스톤의 예로 인수자 승인, 명세의 기준선 설정, 시스템 통합 완료, 제품 인도를 든다.[2] SWEBOK V4.0a에 따르면 진척은 주요 프로젝트 마일스톤을 이루었을 때나, 제품 증분을 내는 반복 개발 주기를 마쳤을 때 평가한다.[1]

예측형, 점진, 진화형 생명주기

예측형 생명주기는 범위, 일정, 비용을 생명주기 초기에 정하고, 구현할 요구가 크게 바뀌지 않는 닫힌 집합이라고 가정한다. 매우 예측적인 SDLC는 개발 프로세스를 선형 순서로 수행하고, 앞 단계는 필요할 때만 고친다. 폭포수 모델을 적용한 프로젝트는 몇 달이나 몇 년 일한 뒤 프로젝트 끝에 소프트웨어를 한 번 인도했다.[1]

점진 생명주기는 일련의 반복으로 기능을 차례로 더해 가고, 마지막 반복을 마쳐야 인도물이 완성으로 볼 만한 기능을 갖춘다. 다른 개발 단계를 시작하기 전에 요구를 정해 닫는 예측형으로 운영할 수도 있다.[1] ISO/IEC/IEEE 24765:2017은 점진 개발(incremental development)을, 요구 정의, 설계, 구현, 테스트를 차례로가 아니라 겹치고 반복하며 수행해 소프트웨어 제품 전체를 점진적으로 완성하는 개발 기법으로 정의한다.[2]

SWEBOK V4.0a에 따르면 진화형 생명주기에서는 제품이나 서비스가 수명 동안 바뀐다. 요구와 고객의 필요가 바뀌어서일 수도 있고, 요구를 완결된 한 묶음이 아니라 여러 반복에 걸쳐 제품에 넣어서일 수도 있다.[1]

Prototyping

ISO/IEC/IEEE 24765:2017은 prototyping을, 하드웨어나 소프트웨어의 일부나 전체를 예비판으로 먼저 만들어 사용자 피드백을 받거나, 실현 가능성을 가리거나, 타이밍 같은 문제를 조사하는 개발 기법으로 정의한다. 이 표준에 따르면 prototype은 복잡한 사용자 인터페이스를 개선하고 명세하거나, 실현 가능성을 연구하거나, 요구를 찾아내는 데 쓸 사용자 피드백을 얻으려고 쓴다. 개발 초기에 prototype을 만들어 피드백과 분석을 일찍 얻는 데 중점을 둔 prototyping은 rapid prototyping으로 정의한다.[2]

SWEBOK V4.0a에 따르면 prototyping은 대개 미완성이거나 기능을 최소한만 갖춘 판을 만들어 새 기능을 시험하거나 요구와 사용자 인터페이스에 대한 피드백을 받는 활동이고, 가장 덜 이해된 부분부터 이해하려고 이 방법을 고른다. prototype은 버릴 코드나 종이 산출물, 동작하는 설계를 발전시킨 것, 실행 가능한 명세로 만들 수 있고, 대개 큰 재작업이나 리팩터링 없이는 최종 제품이 되지 않는다. prototype은 대개 완성 제품에 기대하는 아키텍처, 성능 같은 품질 특성을 모두 갖추어 만들지 않는다.[1]

모델

  • 폭포수 모델: 개념, 요구, 설계, 구현, 테스트, 설치·점검 단계를 이 순서로 수행하고, 단계끼리 겹칠 수는 있지만 반복은 거의 없는 모델.[2]
  • 나선형 모델: 주기를 거듭하며 소프트웨어를 만들고, 주기마다 대안의 위험을 평가한 뒤 남은 위험의 상대적 크기로 다음 단계를 정하는 위험 주도 모델.[4]
  • V 모델: ISTQB 용어집은 주요 개발 단계를 인수 테스트부터 컴포넌트 테스트까지의 테스트 레벨과 하나씩 짝짓는 순차 생명주기 모델로 분류한다.[5]
[1]
H. Washizaki, Ed., “Guide to the Software Engineering Body of Knowledge (SWEBOK Guide), Version 4.0a,” IEEE Computer Society, 2026. Accessed: Oct. 02, 2026. [Online]. Available: https://ieeecs-media.computer.org/media/education/swebok/swebok-v4.pdf
[2]
ISO/IEC/IEEE, “ISO/IEC/IEEE 24765:2017 Systems and software engineering — Vocabulary (OBP preview).” 2017. Accessed: Oct. 02, 2026. [Online]. Available: https://www.iso.org/obp/ui/#iso:std:iso-iec-ieee:24765:ed-2:v1:en
[3]
ISO/IEC/IEEE, “ISO/IEC/IEEE 12207:2026 Systems and software engineering — Software life cycle processes (OBP preview).” 2026. Accessed: Oct. 02, 2026. [Online]. Available: https://www.iso.org/obp/ui/#iso:std:iso-iec-ieee:12207:ed-2:v1:en
[4]
B. W. Boehm, “A Spiral Model of Software Development and Enhancement,” ACM SIGSOFT Software Engineering Notes, vol. 11, no. 4, pp. 14–24, 1986, doi: 10.1145/12944.12948.
[5]
ISTQB, “ISTQB Glossary — V-model.” 2026. Accessed: Oct. 02, 2026. [Online]. Available: https://glossary.istqb.org/en_US/term/v-model