Keeping Control of Reusable Components

  • Susan Eisenbach
  • Dilek Kayhan
  • Chris Sadler
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3083)


Development and deployment via components offers the possibility of prolific software reuse. However, to achieve this potential in a component-rich environment, it is necessary to recognize that component deployment (and subsequent composition) is closer to a continual process than a one-off operation. This is due to the requirement that newly-evolved components need to replace their ancestors in a timely and efficient manner at the client deployment sites. Modern runtime systems which employ dynamic link-loading mechanisms can permit such dynamic evolution. We review the capabilities of several alternative runtime environments to establish some requirements for dynamic evolution. Then we describe a tool designed to support developers and administrators in the migration of component updates within the Microsoft .NET framework.


Dynamic Evolution System Administrator Runtime System Software Maintenance Execution Engine 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Ancona, D., Fagorzo, S., Zucca, E.: A Calculus for Dynamic Linking. In: Blundo, C., Laneve, C. (eds.) ICTCS 2003. LNCS, vol. 2841, pp. 284–301. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  2. 2.
    Anderson, R.: The end of dll hell. In: MSDN Magazine (January 2000),
  3. 3.
    Barr, M., Eisenbach, S.: Safe Upgrading without Restarting. In: IEEE Conference on Software Maintenance ICSM 2003, September 2003, IEEE, Los Alamitos (2003)Google Scholar
  4. 4.
    Cardelli, L.: Program Fragments, Linking, and Modularization. In: POPL 1997 Proceedings (January 1997)Google Scholar
  5. 5.
    Chapin, N., Hale, J., Khan, K., Ramil, J., Than, W.: Types of Software Evolution and Software Maintenance. Journal of Software Maintenance and Evolution 13(1), 3–30 (2001)zbMATHCrossRefGoogle Scholar
  6. 6.
    Jackson, D., Schechter, I., Shlyakhter, I.: Alcoa: the Alloy Constraint Analyzer, May 2000, pp. 730–733. ACM Press, Limerick (2000)Google Scholar
  7. 7.
    Dmitriev, M.: The Java HotSpotTM Virtual Machine (August 2002),
  8. 8.
    Drossopoulou, S., Wragg, D., Eisenbach, S.: What is Java Binary Compatibility? In: Proc. of OOPSLA, pp. 341–358 (1998)Google Scholar
  9. 9.
    Duggan, D.: Sharing in Typed Module Assembly Language. In: Harper, R. (ed.) TIC 2000. LNCS, vol. 2071, p. 85. Springer, Heidelberg (2001); Carnegie Mellon, CMU-CS-00-161CrossRefGoogle Scholar
  10. 10.
    Redmond, F. (ed.): Microsoft .NET Framework. In: MSDN (January 2004),
  11. 11.
    Eisenbach, S., Jurisic, V., Sadler, C.: Feeling the way through DLL Hell. In: The First Workshop on Unanticipated Software Evolution USE (2002) (June 2002),
  12. 12.
    Eisenbach, S., Jurisic, V., Sadler, C.: Managing the Evolution of.NET Programs. In: Najm, E., Nestmann, U., Stevens, P. (eds.) FMOODS 2003. LNCS, vol. 2884, pp. 185–198. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  13. 13.
    Eisenbach, S., Sadler, C.: Changing Java Programs. In: IEEE Conference in Software Maintenance (November 2001)Google Scholar
  14. 14.
    Fisher, K., Reppy, J., Riecke, J.: A Calculus for Compiling and Linking Classes. In: Smolka, G. (ed.) ESOP 2000. LNCS, vol. 1782, p. 135. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  15. 15.
    Gustavsson, J.: Jdrums (2004),
  16. 16.
    Gustavsson, J., Assmann, U.: A Classification of Runtime Software Changes. In: The First Workshop on Unanticipated Software Evolution USE 2002 (June 2002),
  17. 17.
    Steele, G., Gosling, J., Joy, B., Bracha, G.: The Java Language Specification, 2nd edn. June 2000, pp. 251–273. Addison Wesley, Reading (2000)Google Scholar
  18. 18.
    Meijer, E., Szyperski, C.: What’s In A Name:NET as a Component Framework (Invited Paper). In: First OOPSLA Workshop on Language Mechanisms for Programming Software Components, October 2001, pp. 22–28 (2001),
  19. 19.
    Mens, T., Buckley, J., Rashid, A., Zenger, M.: Towards a taxonomy of software evolution. In: Proc. of OOPSLA (2003)Google Scholar
  20. 20.
    Mezini, M., Lieberherr, K.J.: Adaptive Plug-and-Play Components for Evolutionary Software Development. In: Proc. of OOPSLA, pp. 97–116 (1998)Google Scholar
  21. 21.
    Microsoft. Versioning, Compatibility and Side-by-Side Execution in the .NET Framework. In MSDN Flash Newsletter (2003),
  22. 22.
    Pietrek, M.: Avoiding DLL Hell: Introducing Application Metadata in the Microsoft .NET Framework. In MSDN Magazine (October 2000),
  23. 23.
    Pratschner, S.: Simplifying Deployment and Solving DLL Hell with the .NET Framework. In MSDN Magazine (November 2001),
  24. 24.
    Rogerson, D.: Inside COM. Microsoft Press, Redmond (1997)Google Scholar
  25. 25.
    Drossopoulou, S., Lagorio, G., Eisenbach, S.: Flexible Models for Dynamic Linking. In: Proc. of the European Symposium on Programming, March 2003, Springer, Heidelberg (2003)Google Scholar
  26. 26.
    Eisenbach, S., Sadler, C., Shaikh, S.: Evolution of Distributed Java Programs. In: Bishop, J.M. (ed.) CD 2002. LNCS, vol. 2370, Springer, Heidelberg (2002)CrossRefGoogle Scholar
  27. 27.
    Sewell, P.: Modules, Abstract Types, and Distributed Versioning. In: Proc. of Principles of Programming Languages, January 2001, ACM Press, New York (2001)Google Scholar
  28. 28.
    Steyaert, P., Lucas, C., Mens, K., D’Hondt, T.: Reuse Contracts: Managing the Evolution of Reusable Assets. In: Proc. of OOPSLA (1996)Google Scholar
  29. 29.
    Stutz, D., Neward, T., Shilling, G.: Shared Source CLI Essentials. O’Reilly Press, Sebastopol (2003)Google Scholar
  30. 30.
    Szyperski, C.: Component Software - Beyond Object Oriented Programming, 2nd edn. Addison-Wesley/ACM Press (2002)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2004

Authors and Affiliations

  • Susan Eisenbach
    • 1
  • Dilek Kayhan
    • 1
  • Chris Sadler
    • 2
  1. 1.Department of ComputingImperial CollegeLondonUK
  2. 2.School of Computing ScienceMiddlesex UniversityLondonUK

Personalised recommendations