소프트웨어를 체계적으로 관리하고 관리하기 위해 개발 과정을 단계별로 나누어 구분 한 것을 소프트웨어 개발단계, 소프트웨어 생명주기 라고 한다.
일반적으로 6단계로 구분하며, 이 단계에 대해서 알아보고자 한다.

1️⃣ 1단계 : 요구사항 분석
- 문제 분석 단계
- 개발할 소프트웨어의 기능과 제약조건, 목표 등을 소프트웨어 사용자와 함께 명확히 정의
- 개발할 소프트웨어의 성격을 정확히 이해하고, 개발 방법과 필요한 갭라 자원 및 예산을 예측
- 요구명세서 작성
2️⃣ 2단계 : 시스템 명세
- 시스템이 무엇을 수행해야 하는가를 정의하는 단계
- 입력자료, 처리내용, 생성되는 출력이 무엇인지를 정의
- 시스템 기능 명세서 작성
3️⃣ 3단계 : 설계
- 시스템 명세 단계에서 정의한 기능을 실제로 수행하기 위한 방법을 논리적으로 결정하는 단계
- 시스템 구조 설계 : 시스템을 구성하는 내부 프로그램이나 모듈 간의 관계와 구조 설계
- 사용자 인터페이스 설계 : 사용자가 시스템을 사용하기 위해 보여지는 부분 설계
- 사용자 인터페이스 설계 : 사용자가 시스템을 사용하기 위해 보여지는 부분 설계
4️⃣ 4단계 : 프로그래밍, 구현
- 설계 단계에서 논리적으로 결정한 문제 해결 방법(알고리즘)을 프로그래밍 언어를 사용하여 실제 프로그램을 작성하는 단계
- ex) 사용할 언어 선택, 프로그래밍 기법과 스타일, 프로그래밍 순서
- 프로그래밍 기법 (구조화 프로그래밍, 모듈러 프로그래밍)
5️⃣ 5단계 : 테스트
- 개발한 시스템이 요구사항을 만족하는지, 실행결과가 예상한 결과와 정확하게 맞는지를 검사하고, 평가하는 일련의 과정
- 숨어있는 오류를 최대한 찾아내어 시스템 완성도를 높이는 단계
6️⃣ 6단계 : 유지보수
- 시스템이 인수되고, 설치된 후 일어나는 모든 활동
- 프로그램 오류 수정, 시스템 디자인 수정, 새로운 요구사항 추가, 시스템 사용환경 변화에 대한 교정 등
Reference Link
https://wanna-b.tistory.com/83