Pitfalls in Unanticipated Dynamic Software Evolution

The authors of this paper have all developed a framework that allows runtime adap- tation of software systems. Based on our experiences, we wish to summarize common pitfalls concerning dynamic software evolution. Systems for dynamic adaptation typically follow a cer- tain process which is used as a starting point in this paper. The problems that occur in the dierent steps of this evolution process are given and a suggestion is made on how these prob- lems can be tackled. The reader will notice that the solution to most of the pitfalls lies in the use of reflection, meta-data and meta-object protocols. We conclude that reflection or meta-object protocol manipulations are indispensable in the process of dynamic software evolution.

[1]  Bennet P. Lientz,et al.  Software Maintenance Management: A Study of the Maintenance of Computer Application Software in 487 Data Processing Organizations , 1980 .

[2]  Jeff Magee,et al.  The Evolving Philosophers Problem: Dynamic Change Management , 1990, IEEE Trans. Software Eng..

[3]  Ophir Frieder,et al.  On-the-fly program modification: systems for dynamic updating , 1993, IEEE Software.

[4]  Deepak Gupta,et al.  On Line Software Version Change , 1994 .

[5]  Takuya Katayama Principles of Software Evolution , 1996, APSEC.

[6]  Elke Pulvermüller,et al.  Aspect Composition Applying the Design by Contract Principle , 2000, GCSE.

[7]  Tobias Ritzau,et al.  Dynamic Deployment of Java Applications , 2000 .

[8]  Earl T. Barr,et al.  Runtime Support for Type-Safe Dynamic Java Classes , 2000, ECOOP.

[9]  Meir M. Lehman,et al.  Towards a theory of software evolution - and its practical impact , 2000, Proceedings International Symposium on Principles of Software Evolution.

[10]  Tobias Ritzau,et al.  Dynamic Code Update in JDRUMS , 2000 .

[11]  L. Erlikh,et al.  Leveraging legacy system dollars for e-business , 2000 .

[12]  Keith H. Bennett,et al.  Software maintenance and evolution: a roadmap , 2000, ICSE '00.

[13]  Scott Nettles,et al.  Dynamic software updating , 2001, PLDI '01.

[14]  Towards Hot-Swappable System Software: The DiPS/CuPS Component Framework , 2002 .

[15]  Yolande Berbers,et al.  Draco : An adaptive runtime environment for components , 2003 .

[16]  Peter Ebraert Enabling Dynamic Software Evolution through Automatic Refactoring , 2004 .

[17]  Shigeru Chiba,et al.  Negligent Class Loaders for Software Evolution , 2004, RAM-SE.

[18]  Theo D'Hondt,et al.  Influence of type systems on dynamic software evolution , 2005 .