skip to main content
10.1145/1352678.1352681acmotherconferencesArticle/Chapter ViewAbstractPublication PagesicdlConference Proceedingsconference-collections
research-article

Encapsulating and exploiting change with changeboxes

Published: 25 August 2007 Publication History

Abstract

Real world software systems change continuously to meet new demands. Most programming languages and development environments, however, are more concerned with limiting the effects of change rather than enabling and exploiting change. Various techniques and technologies to exploit change have been developed over the years, but there exists no common support for these approaches. We propose Changeboxes as a general-purpose mechanism for encapsulating change as a first-class entity in a running software system. Changeboxes support multiple, concurrent and possibly inconsistent views of software artifacts within the same running system. Since Changeboxes are first-class, they can be manipulated to control the scope of change in a running system. Furthermore, Changeboxes capture the semantics of change. Changeboxes can be used, for example, to encapsulate refactorings, or to replay or analyze the history of changes. In this paper we introduce Changeboxes by means of a prototype implementation. We illustrate the benefits that Changeboxes offer for evolving software systems, and we present the results of a preliminary performance evaluation that assesses the costs associated with Changeboxes while suggesting possible strategies for improvement.

References

[1]
Lehman, M., Belady, L.: Program Evolution: Processes of Software Change. London Academic Press, London (1985)
[2]
Nierstrasz, O., Bergel, A., Denker, M., Ducasse, S., Gaelli, M., Wuyts, R.: On the revival of dynamic languages. In Gschwind, T., Aßmann, U., eds.: Proceedings of Software Composition 2005. Volume 3628., LNCS 3628 (2005) 1--13 Invited paper.
[3]
Nierstrasz, O., Denker, M., Gîrba, T., Lienhard, A.: Analyzing, capturing and taming software change. In: Proceedings of the Workshop on Revival of Dynamic Languages (co-located with ECOOP'06). (July 2006)
[4]
Steyaert, P., Lucas, C., Mens, K., D'Hondt, T.: Reuse Contracts: Managing the Evolution of Reusable Assets. In: Proceedings of OOPSLA '96 (International Conference on Object-Oriented Programming, Systems, Languages, and Applications), ACM Press (1996) 268--285
[5]
Nguyen, T., Munson, E., Boyland, J.: An infrastructure for development of objectoriented, multi-level configuration management services. In: Internationl Conference on Software Engineering (ICSE 2005), ACM Press (2005) 215--224
[6]
Hearnden, D., Lawley, M., Raymond, K.: Incremental model transformation for the evolution of model-driven systems. In: International Conference on Model Driven Engineering Languages and Systems (Models/UML 2006). Volume 4199 of LNCS., Berlin, Germany, Springer-Verlag (2006) 321--335
[7]
Dig, D., Johnson, R.: The role of refactorings in API evolution. In: Proceedings of 21st International Conference on Software Maintenance (ICSM 2005). (September 2005) 389--398
[8]
Dig, D., Johnson, R.: How do APIs evolve? a story of refactoring. Journal of Software Maintenance and Evolution: Research and Practice (JSME) 18(2) (April 2006) 83--107
[9]
Bergel, A., Ducasse, S., Nierstrasz, O., Wuyts, R.: Classboxes: Controlling visibility of class extensions. Computer Languages, Systems and Structures 31(3--4) (December 2005) 107--126
[10]
Aldrich, J.: Open modules: Modular reasoning about advice. In: Proceedings ECOOP 2005. Volume 3586 of LNCS., Glasgow, UK, Springer Verlag (July 2005) 144--168
[11]
Renggli, L.: Magritte - meta-described web application development. Master's thesis, University of Bern (June 2006)
[12]
Ducasse, S., Lienhard, A., Renggli, L.: Seaside --- a multiple control flow web application framework. In: Proceedings of 12th International Smalltalk Conference (ISC'04). (September 2004) 231--257
[13]
Zumkehr, P.: Changeboxes --- modeling change as a first-class entity. Master's thesis, University of Bern (February 2007)
[14]
Ducasse, S.: Evaluating message passing control techniques in Smalltalk. Journal of Object-Oriented Programming (JOOP) 12(6) (June 1999) 39--44
[15]
Bergel, A., Denker, M.: Prototyping languages, related constructs and tools with Squeak. In: Proceedings of the Workshop on Revival of Dynamic Languages (colocated with ECOOP'06). (July 2006)
[16]
Tichy, W. F.: RCS --- a system for version control. Software Practice and Experience 15(7) (July 1985) 637--654
[17]
Berlin, L. M.: When objects collide: Experiences with reusing multiple class hierarchies. In: Proceedings OOPSLA/ECOOP '90, ACM SIGPLAN Notices. Volume 25. (October 1990) 181--193
[18]
Collins-Sussman, B., Fitzpatrick, B. W., Pilato, C. M.: Version Control with Subversion. O'Reilly & Associates, Inc. (2004)
[19]
Mens, T.: A state-of-the-art survey on software merging. IEEE Transactions on Software Engineering 28(5) (May 2002) 449--462
[20]
Feather, M. S.: Detecting interference when merging specification evolutions. In: Proc. Fifth International Workshop on Software Specification and Design. (1989) 169--176
[21]
Lippe, E., van Oosterom, N.: Operation-based merging. In: SDE 5: Proceedings of the fifth ACM SIGSOFT symposium on Software development environments, New York, NY, USA, ACM Press (1992) 78--87
[22]
Munson, J. P., Dewan, P.: A flexible object merging framework. Proceedings of the 1994 ACM conference on Computer supported cooperative work (1994) 231--242
[23]
Göker, A., Myrhaug, H. I.: User context and personalisation. In: ECCBR Workshop on Case Based Reasoning and Personalisation, Aberdeen, UK (2002) invited paper.
[24]
Hölzle, U., Chambers, C., Ungar, D.: Optimizing dynamically-typed object-oriented languages with polymorphic inline caches. In America, P., ed.: Proceedings ECOOP '91. Volume 512 of LNCS., Geneva, Switzerland, Springer-Verlag (July 1991) 21--38
[25]
Bergel, A.: Classboxes --- Controlling Visibility of Class Extensions. PhD thesis, University of Berne (November 2005)
[26]
Bergel, A., Ducasse, S., Wuyts, R.: Classboxes: A minimal module model supporting local rebinding. In: Proceedings of Joint Modular Languages Conference (JMLC'03). Volume 2789 of LNCS., Springer-Verlag (2003) 122--131
[27]
Ernst, E.: Propagating class and method combination. In Guerraoui, R., ed.: Proceedings ECOOP '99. Volume 1628 of LNCS., Lisbon, Portugal, Springer-Verlag (June 1999) 67--91
[28]
Mezini, M., Ostermann, K.: Conquering aspects with Caesar. In: Proceedings of the 2nd international conference on Aspect-oriented software development, ACM Press (2003) 90--99
[29]
Achermann, F., Nierstrasz, O.: Applications = components + scripts --- a tour of Piccola. In Aksit, M., ed.: Software Architectures and Component Technology. Kluwer (2001) 261--292
[30]
Achermann, F., Nierstrasz, O.: Explicit namespaces. In Gutknecht, J., Weck, W., eds.: Modular Programning Languages, Proceedings of JMLC 2000 (Joint Modular Languages Conference). Volume 1897 of LNCS., Zürich, Switzerland, Springer-Verlag (September 2000) 77--89
[31]
Bobrow, D. G., Goldstein, I. P.: Representing design alternatives. In: Proceedings of the Conference on Artificial Intelligence and the Simulation of Behavior. (July 1980)
[32]
Goldstein, I. P., Bobrow, D. G.: Descriptions for a programming environment. In: Proceedings of the First Annual Conference of the National Association for Artificial Intelligence. (August 1980)
[33]
Goldstein, I. P., Bobrow, D. G.: Extending object-oriented programming in Smalltalk. In: Proceedings of the Lisp Conference. (August 1980) 75--81
[34]
Goldstein, I. P., Bobrow, D. G.: A layered approach to software design. Technical Report CSL-80-5, Xerox PARC (December 1980)
[35]
Costanza, P., Hirschfeld, R.: Language constructs for context-oriented programming: An overview of ContextL. In: Proceedings of the Dynamic Languages Symposium (DLS) '05, co-organized with OOPSLA'05, New York, NY, USA, ACM Press (October 2005)
[36]
Smith, R. B., Ungar, D.: A simple and unifying approach to subjective objects. TAPOS special issue on Subjectivity in Object-Oriented Systems 2(3) (1996) 161--178
[37]
Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., Loingtier, J. M., Irwin, J.: Aspect-Oriented Programming. In Aksit, M., Matsuoka, S., eds.: Proceedings ECOOP '97. Volume 1241 of LNCS., Jyvaskyla, Finland, Springer-Verlag (June 1997) 220--242
[38]
Otis, A., Butterworth, P., Stein, J.: The GemStone object database management systems. Communications of the ACM 34(10) (October 1991) 64--77
[39]
Liang, S., Bracha, G.: Dynamic class loading in the Java virtual machine. In: Proceedings of OOPSLA '98, ACM SIGPLAN Notices. (1998) 36--44
[40]
Duggan, D.: Type-based hot swapping of running modules. In: Intl. Conf. on Functional Programming. (2001) 62--73
[41]
Hicks, M., Nettles, S.: Dynamic software updating. ACM Transactions on Programming Languages and Systems 27(6) (nov 2005) 1049--1096
[42]
Oriol, M.: An Approach to the Dynamic Evolution of Software Systems. Ph.D. thesis, Centre Universitaire d'Informatique, University of Geneva (April 2004)
[43]
Kramer, J., Magee, J., Finkelstein, A.: A constructive approach to the design of distributed systems. In: Proc 10th Intl Conf on Distributed Computing Systems. IEEE (June 1990) 580--587
[44]
Armstrong, J., Virding, R., Wikström, C., Williams, M.: Concurrent Programming in Erlang. Prentice Hall (1996)
[45]
Armstrong, J.: Making reliable distributed systems in the presence of software errors. PhD thesis, The Royal Institute of Technology Stockholm (2003)
[46]
Bobrow, D., DeMichiel, L., Gabriel, R., Keene, S., Kiczales, G., Moon, D.: Common lisp object system specification, x3j13. Technical Report 88-003, (ANSI COMMON LISP) (1988)
[47]
Mezini, M.: Dynamic object evolution without name collisions. In: Proceedings ECOOP '97, Springer-Verlag (June 1997) 190--219

Cited By

View all
  • (2019)Ambiguous, informal, and unsound: metaprogramming for naturalnessProceedings of the 4th ACM SIGPLAN International Workshop on Meta-Programming Techniques and Reflection10.1145/3358502.3361270(1-10)Online publication date: 20-Oct-2019
  • (2017)Interoperability and Portability Approaches in Inter-Connected CloudsACM Computing Surveys10.1145/309269850:4(1-40)Online publication date: 4-Oct-2017
  • (2017)A Survey on Malware Detection Using Data Mining TechniquesACM Computing Surveys10.1145/307355950:3(1-40)Online publication date: 29-Jun-2017
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
ICDL '07: Proceedings of the 2007 international conference on Dynamic languages: in conjunction with the 15th International Smalltalk Joint Conference 2007
August 2007
254 pages
ISBN:9781605580845
DOI:10.1145/1352678
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]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 25 August 2007

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Research-article

Funding Sources

Conference

ICDL '07

Acceptance Rates

ICDL '07 Paper Acceptance Rate 11 of 16 submissions, 69%;
Overall Acceptance Rate 11 of 16 submissions, 69%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 05 Mar 2025

Other Metrics

Citations

Cited By

View all
  • (2019)Ambiguous, informal, and unsound: metaprogramming for naturalnessProceedings of the 4th ACM SIGPLAN International Workshop on Meta-Programming Techniques and Reflection10.1145/3358502.3361270(1-10)Online publication date: 20-Oct-2019
  • (2017)Interoperability and Portability Approaches in Inter-Connected CloudsACM Computing Surveys10.1145/309269850:4(1-40)Online publication date: 4-Oct-2017
  • (2017)A Survey on Malware Detection Using Data Mining TechniquesACM Computing Surveys10.1145/307355950:3(1-40)Online publication date: 29-Jun-2017
  • (2017)Changes as First-Class CitizensACM Computing Surveys10.1145/303892650:2(1-38)Online publication date: 6-Apr-2017
  • (2016)Transaction LayersProceedings of the 8th ACM International Workshop on Context-Oriented Programming10.1145/2951965.2951969(1-6)Online publication date: 17-Jul-2016
  • (2016)Preserving Access to Previous System States in the Lively KernelDesign Thinking Research10.1007/978-3-319-19641-1_15(235-264)Online publication date: 2016
  • (2015)Virtualization support for dynamic core library update2015 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software (Onward!)10.1145/2814228.2814233(211-223)Online publication date: 21-Oct-2015
  • (2014)Object versioning to support recovery needsACM SIGPLAN Notices10.1145/2775052.266109350:2(113-124)Online publication date: 14-Oct-2014
  • (2014)Object versioning to support recovery needsProceedings of the 10th ACM Symposium on Dynamic languages10.1145/2661088.2661093(113-124)Online publication date: 20-Oct-2014
  • (2014)How Cost Reduction in Recovery Improves Performance in Program Design TasksDesign Thinking Research10.1007/978-3-319-06823-7_13(241-261)Online publication date: 21-May-2014
  • Show More Cited By

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