The term "versioning", as it is used with computer software, refers to the assignment of unique identifiers to specific, individual editions or unique releases of software applications or packages. A change in the version identifier indicates that a change has been made to the programming code of the application in question. These changes may or may not affect users of the software: some performance enhancements or changes made to improve the quality and maintainability of the code may go unnoticed by end users.
The NAADSM Development Team employs a three-part, sequence-based identification system for the model specification document and the NAADSM application. NAADSM version numbers are written as "x.y.z", where x, y, and z are numeric values that identify the major version number, minor version number, and release number respectively.
For historical reasons, NAADSM version numbers start at 3.0.0. This scheme reflects continuity with SpreadModel1, the conceptual model on which NAADSM was originally based. Version numbers for the NAADSM specification document start at 1.0.0: the first version of the NAADSM specification document was written for NAADSM 3.0.0.
Major version numbers
Major version numbers (the first of the three parts of a NAADSM version number) are used to indicate substantial changes to the conceptual model. When the conceptual model is altered in such a way that it is rendered incompatible with previous versions, the major version number is incremented.
Minor version numbers
Minor version numbers are incremented when changes are made to the conceptual model that do not affect existing features. These changes are typically new features that are fully backward-compatible with existing NAADSM models.
Release numbers are incremented as patches are made to the NAADSM application. When an error is found, either in the user interface or in the model implementation, a description of the error is published. The error is corrected as quickly as possible, and a new release version is published.
Release numbers are occasionally incremented for new versions of the model specification document as well. These represent clarifications of, rather than changes to, an existing model specification.
There is not necessarily a one-to-one correspondence between model specification versions and application versions. All application versions are written to implement a specific version of the specification, but several application versions may correspond to a single specification version. Please see The NAADSM model specification for the correspondence between NAADSM application versions and specification versions.
1Schoenbaum, M.A., and Disney, W.T. 2003. Modeling alternative mitigation strategies for a hypothetical outbreak of foot-and-mouth disease in the United States. Prev. Vet. Med. 58: 25-52.