소프트웨어 버전 작성

소프트웨어 버전 작성(software versioning)은 컴퓨터 소프트웨어의 특정 상태에 대한 유일한 버전 이름 혹은 버전 번호를 각각 결정하는 과정이다. 주어진 번호 체계는 주(major) 혹은 부(minor)로 나뉘며, 새롭게 개발된 소프트웨어에 알맞게 ,이들 번호는 증가하여 결정된다. 세세한 관리를 위해  버전 관리 도구가 사용된다.

체계 
다양한 버전 번호 체계(scheme)가 소프트웨어의 관리를 위해 고안되었다.

차례열 기반 식별자 
소프트웨어 버전 작성을 위해 차례열 기반 식별자(Sequence-based identifiers)를 사용한다. 각 소프트웨어는 유일하고도 하나 이상의 숫자 혹은 문자들의 차례열로 이루어진 식별자를 가진다.

변경과 중요성의 관계 

차례열 기반 식별자는 배포판들 간의 변경의 중요성을 알리기 위한 목적으로 사용한다. 이는 식별자들 중, 어느 위치의 문자나 숫자를 변화할 것이냐의 결정은 이전 버전과에서 변경된 정도의 중요성에 따라 결정함으로써 이루어진다. 첫 번째 문자나 숫자가 수정될 수록 가장 중요한 수정이 가해졌다는 의미이며, 다음 순서로 넘어갈 수록 좀 더 그 의미가 줄어들게 된다.

버전 번호가 컴퓨터가 아니라 사람에 의해 기입되는만큼, 자의적인 수정을 막을 수 있는 방법은 없다. 어느 위치의 번호를 조작하느냐에 따라 경우에 따라 작성자의 의도와 달리 잘못된 인식을 심어줄 수도 있다. 일반적으로는 다음과 같은 순서로 이루어진다.

major.minor[.build[.revision]]

혹은

major.minor[.maintenance[.build]]

개발 단계를 지정하기 
세번째 자리수가 숫자를 0으로 지정하여 아직 배포하기엔 불충분한 수준 (알파, 베타 버전)을 나타낼 수 있다. 또는 간혹 문자로 표기될수있다. 이는 테스트용 혹은 개발용으로만 사용할 수 있음을 나타낸다.
아래와 같이 세 번째 위치에 사용할 수 있다.
 0 - 알파 버전 (alpha)
 1 - 베타 버전 (beta)
 2 - 발매 버전 후보 (release candidate)
 3 - 발매 버전 (final release)

예를 들면 아래와 같다.

 1.2.0.1 <- 1.2-a1에서 수정
 1.2.1.2 <- 1.2-b2에서 수정 (약간 버그 수정하여 베타 버전으로 업그레이드)
 1.2.2.3 <- 1.2-rc3 (발매 버전 후보)
 1.2.3.0 <- 1.2-r (상업용 배포판)
 1.2.3.5 <- 1.2-r5 (많은 버그를 수정한 상업용 배포판)

소프트웨어 공학
버전 관리