Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/1562860.1562861acmotherconferencesArticle/Chapter ViewAbstractPublication PagesecoopConference Proceedingsconference-collections
research-article

Revision classes for explicit versioning

Published: 07 July 2009 Publication History

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.

References

[1]
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.
[2]
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.
[3]
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.
[4]
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.
[5]
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.
[6]
E. Ernst. Family Polymorphism. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP), pages 303--326, 2001.
[7]
T. Lindholm and F. Yellin. The Java Virtual Machine Specification. Addison-Wesley Publishing Company, Inc., Reading, Massachusetts, 2nd edition, 1999.
[8]
B. Meyer. Object-Oriented Software Construction. Prentice Hall, 2nd edition, 1997.
[9]
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.
[10]
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.
[11]
R. Robbes and M. Lanza. A Change-based Approach to Software Evolution. Electronic Notes in Theoretical Computer Science (ENTCS), 166:93--109, 2007.
[12]
Java Espresso compiler. http://types.bu.edu/Espresso/JavaEspresso.html.
[13]
JDNSS---Java DNS Server. http://jdnss.sourceforge.net/.

Cited By

View all
  • (2011)Run-time phenomena in dynamic software updatingProceedings of the 12th International Workshop on Principles of Software Evolution and the 7th annual ERCIM Workshop on Software Evolution10.1145/2024445.2024448(6-15)Online publication date: 5-Sep-2011
  • (2011)Aspect-based dynamic software updatingProceedings of the tenth international conference on Aspect-oriented software development10.1145/1960275.1960289(105-116)Online publication date: 21-Mar-2011

Recommendations

Reviews

Tansel Ersavas

A powerful approach to version control is finally reaching mainstream languages. Previtali, Sch?uble, and Gross propose an explicit versioning mechanism based on class versioning. Then, they describe a language extension for Java and validate the approach with a small case study. Their approach is sound, the presentation is very nice, and the case for introducing revision classes in Java convincingly demonstrates the advantages of versioning based on revision classes. Version control systems have been around for a long time. The authors claim that the bulk of these systems are based on source text, which is largely correct. However, some late binding languages with powerful metalanguage abilities, such as Smalltalk, and object database systems, such as GemStone, have included such versioning mechanisms for decades. The GemStone persistent object system has been around since 1987, and has had versioning through class history objects since very early implementations. Both the ENVY/Smalltalk versioning system [1]-regarded as a benchmark for versioning systems for Smalltalk-and Cincom's Store use the concept of class extensions for modifications. It is also important to note parallel research done for software diagrams using metadata-some computer-aided software engineering (CASE) tools and academic researchers investigate metadata-based versioning for software diagrams [2]. The authors describe a method of improving a system using its own meta-abilities. There have been many advancements in this field over the last 30 years, but the achievements of the pioneer dynamic object-oriented languages went largely unpublished. More research is warranted into these achievements, in order to avoid reinventing them. Only when we understand these techniques can we find truly novel uses, both in version control and other similarly difficult fields. Nevertheless, the authors' approach is novel in its domain, and they deserve praise for finally bringing these techniques to mainstream programming. Online Computing Reviews Service

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
RAM-SE '09: Proceedings of the Workshop on AOP and Meta-Data for Software Evolution
July 2009
39 pages
ISBN:9781605585482
DOI:10.1145/1562860
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 07 July 2009

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Research-article

Conference

ECOOP '09

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 06 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2011)Run-time phenomena in dynamic software updatingProceedings of the 12th International Workshop on Principles of Software Evolution and the 7th annual ERCIM Workshop on Software Evolution10.1145/2024445.2024448(6-15)Online publication date: 5-Sep-2011
  • (2011)Aspect-based dynamic software updatingProceedings of the tenth international conference on Aspect-oriented software development10.1145/1960275.1960289(105-116)Online publication date: 21-Mar-2011

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media