Internet
Fact-checked

At WiseGEEK, we're committed to delivering accurate, trustworthy information. Our expert-authored content is rigorously fact-checked and sourced from credible authorities. Discover how we uphold the highest standards in providing you with reliable knowledge.

Learn more...

What is Software Versioning?

G. Wiesen
G. Wiesen

Software versioning is a system by which different releases of a particular software program are numbered for both internal use and release designation. This system allows software developers to more easily track changes between versions, and allows customers and users of the software to better recognize updated versions. A numerical system is typically used, often with a decimal utilized to indicate minor version updates. Software versioning indications have entered popular usage and the mainstream lexicon due to the importance of this system in allowing software users to troubleshoot problems and find software updates.

There is no set standard way in which software versioning must be done, and the methods used will typically depend on the company developing a piece of computer software. Ultimately, software versioning serves two major, but very different, purposes: internal communication to developers working on a program, and external communication of new releases to potential customers. When used internally, this system does not have to follow a method that makes sense to those outside of a company, but instead is often chosen to convey information quickly and effectively to other developers.

Software versioning is typically used internally to allow different programmers to indicate when changes have been made to a program.
Software versioning is typically used internally to allow different programmers to indicate when changes have been made to a program.

Software versioning is typically used internally to allow different programmers to indicate when changes, especially significant changes, have been made to a program. This usually appears in a way similar to “Software Name 1.0” or “Software Name 1.10” though different notations can be used. In general, this notation indicates major releases before a decimal point or other separator, with minor release updates coming in second, third, and even fourth positions.

For example, “Version 0.5.1.15” could be used to indicate that the program is not ready for release, as the first position often indicates a release version; that it is in its fifth major pre-release version; the program has undergone one change during this version; and that 15 minor changes have occurred within this cycle. This same information could also potentially be conveyed as “1a.5.1-15” to indicate version one alpha, which means pre-release, and indicating the last information using mixed indicators. As long as a single system is used internally for software versioning, the information can still be conveyed effectively for developers to understand.

External indicators of software versioning, on the other hand, are typically much easier to follow. This information can be completely separate from internal designations since it is intended primarily to indicate to consumers that a new version of the program has been released. While the numerical system is used in many situations — rarely going beyond two digits such as “1.5” or “2.0” — names are also often used to indicate a new version. Microsoft®, for example, initially used numbers for Windows 1.0®, then changed to release years for releases like Windows 98® and then changed to names such as Windows Vista®, before returning to numerical indicators with Windows 7®. Software versioning has entered mainstream use in a number of different contexts, such as updated versions of novels or movies being labeled with “1.5” or “2.0” designations.

Discuss this Article

Post your comments
Login:
Forgot password?
Register:
    • Software versioning is typically used internally to allow different programmers to indicate when changes have been made to a program.
      By: Gandolfo Cannatella
      Software versioning is typically used internally to allow different programmers to indicate when changes have been made to a program.