Software Versioning is a way to tell the different states of Computer software apart. Computer software has different states in its life-cycle process from Development through deployment into Production and Sustainment. Each state in the process is given a unique Version. Versions are most often a sequence of numbers (i.e. 184.108.40.206) to represent Major.Minor.Maintenance.Emergency actions but can also use names, dates, or other sequencing mechanisms. In best practices the numbers are used with variations like the 4th ddigit being replaced by a letter. The changes are all revisions in that something is being changed and the version number tells one how complex the change is to the item.
Many times, after a program has been made, things called patches can be downloaded from the program's website. The patches will make small changes or fixes to the main program usuall in the form of maintenance or emergency releases. When a patch is used, the program is advanced to the next version advancing the appropriate level of change marking.