ABSTRACT
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.
- A. Bergel, S. Ducasse, and O. Nierstrasz. Classbox/J: Controlling the Scope of Change in Java. In Proceedings of the ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), pages 177--189, 2005. Google ScholarDigital Library
- G. Bierman, M. Parkinson, and J. Noble. UpgradeJ: Incremental Typechecking for Class Upgrades. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP), pages 235--259, 2008. Google ScholarDigital Library
- G. Bracha and W. Cook. Mixin-based Inheritance. In Proceedings of the ACM Conference on Object-Oriented Programming Systems Languages and Applications, European Conference on Object-Oriented Programming (OOPSLA/ECOOP), pages 303--311, 1990. Google ScholarDigital Library
- S. Cech Previtali. Dynamic Updating of Object-Oriented Software Systems based on Aspects. PhD thesis, Laboratory for Software Technology, Department of Computer Science, ETH Zurich, 2009.Google Scholar
- M. Denker, T. Gîrba, A. Lienhard, O. Nierstrasz, L. Renggli, and P. Zumkehr. Encapsulating and Exploiting Change with Changeboxes. In Proceedings of the International Conference on Dynamic Languages (ICDL), pages 25--49, 2007. Google ScholarDigital Library
- E. Ernst. Family Polymorphism. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP), pages 303--326, 2001. Google ScholarDigital Library
- T. Lindholm and F. Yellin. The Java Virtual Machine Specification. Addison-Wesley Publishing Company, Inc., Reading, Massachusetts, 2nd edition, 1999. Google ScholarDigital Library
- B. Meyer. Object-Oriented Software Construction. Prentice Hall, 2nd edition, 1997. Google ScholarDigital Library
- M. Mezini and K. Ostermann. Integrating Independent Components with On-demand Remodularization. In Proceedings of the ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), pages 52--67, 2002. Google ScholarDigital Library
- M. Mezini and K. Ostermann. Conquering Aspects with Caesar. In Proceedings of the International Conference on Aspect-Oriented Software Development (AOSD), pages 90--99, 2003. Google ScholarDigital Library
- R. Robbes and M. Lanza. A Change-based Approach to Software Evolution. Electronic Notes in Theoretical Computer Science (ENTCS), 166:93--109, 2007. Google ScholarDigital Library
- Java Espresso compiler. http://types.bu.edu/Espresso/JavaEspresso.html.Google Scholar
- JDNSS---Java DNS Server. http://jdnss.sourceforge.net/.Google Scholar
Index Terms
- Revision classes for explicit versioning
Recommendations
Metadata efficiency in versioning file systems
FAST'03: Proceedings of the 2nd USENIX conference on File and storage technologiesVersioning file systems retain earlier versions of modified files, allowing recovery from user mistakes or system corruption. Unfortunately, conventional versioning systems do not efficiently record large numbers of versions. In particular, versioned ...
Metadata Efficiency in Versioning File Systems
FAST '03: Proceedings of the 2nd USENIX Conference on File and Storage TechnologiesVersioning file systems retain earlier versions of modified files, allowing recovery from user mistakes or system corruption. Unfortunately, conventional versioning systems do not efficiently record large numbers of versions. In particular, versioned ...
Versioning Version Trees: The Provenance of Actions that Affect Multiple Versions
IPAW 2016: Proceedings of the 6th International Workshop on Provenance and Annotation of Data and Processes - Volume 9672Change-based provenance captures how an entity is constructed; it can be used not only as a record of the steps taken but also as a guide during the development of derivative or new analyses. This provenance is captured as a version tree which stores a ...
Comments