The software life cycle might be very long. Changes in the program might be different - from correcting the error to full rewriting. Therefore we should reflect those changes in the software version. The following convention is recommended:
Major.Minor.Patch
Below you can see pictures for better understanding. More details are available on
wiki-page.