|
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
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
|
| |
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
|
Patrick Steyaert , Carine Lucas , Kim Mens , Theo D'Hondt, Reuse contracts: managing the evolution of reusable assets, Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.268-285, October 06-10, 1996, San Jose, California, United States
|
 |
5
|
Tien N. Nguyen , Ethan V. Munson , John T. Boyland , Cheng Thao, An infrastructure for development of object-oriented, multi-level configuration management services, Proceedings of the 27th international conference on Software engineering, May 15-21, 2005, St. Louis, MO, USA
[doi> 10.1145/1062455.1062504]
|
| |
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
|
|
| |
8
|
|
| |
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
|
|
 |
17
|
|
| |
18
|
|
| |
19
|
|
 |
20
|
|
 |
21
|
|
 |
22
|
|
| |
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
|
|
| |
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
|
|
 |
28
|
|
| |
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
|
|
| |
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
|
|
| |
34
|
Goldstein, I. P., Bobrow, D. G.: A layered approach to software design. Technical Report CSL-80-5, Xerox PARC (December 1980)
|
 |
35
|
|
| |
36
|
|
| |
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
|
|
 |
39
|
Sheng Liang , Gilad Bracha, Dynamic class loading in the Java virtual machine, Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.36-44, October 18-22, 1998, Vancouver, British Columbia, Canada
|
 |
40
|
|
 |
41
|
|
| |
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
|
|
| |
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
|
|