Revision classes for explicit versioning
The source code of software is typically managed by version control systems that keep track of the different versions of files over time. As versioning is associated with a file and not a class, the versioning mechanism is semantically detached from the actual source code. This paper introduces the concept of revision classes. Revision classes provide an explicit versioning mechanism for classes that, similar to inheritance, allows the developer to redefine existing class members and add new class members in a new version. This explicit versioning mechanism allows the developer to explicitly declare the deltas to a previous version. The developer may reflect on the necessity of updates and thus errors can be avoided that sneak into the source code by inconsiderate changes.