Compatible Component Upgrades Through Smart Component Swapping

  • Alexander Stuckenholz
  • Olaf Zwintzscher
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3938)


Emerging component-based software development architectures promise better re-use of software components, greater flexibility, scalability and higher quality of services. But like any other piece of software too, software components are hardly perfect, when being created. Problems and bugs have to be fixed and new features need to be added.

This paper will give an introduction to the problem of component evolution and the syntactical incompatibilities which result during necessary multi component upgrades. The authors present an approach for the detection of such incompatibilities between multiple generations of component revisions basing on a formal interface model. The main concern of the paper will be the automated reconfiguration of component based software systems by intelligent swapping of component revisions to find conflict free system states.


Dependency Graph Free System Common Object Request Broker Architecture Component Base Software System Component Base System 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Zwintzscher, O.: Komponentenbasierte & generative Softwareentwicklung - Generierung komponentenbasierter Software aus erweiterten UML - Modellen, Ph.D. dissertation, Ruhr-Universität-Bochum (2003) (in German).Google Scholar
  2. 2.
    Sun Microsystems, JavaBeans API specification, Tech. Rep. (August 1997) (Last visited: 04/2004), Online available:
  3. 3.
    Shannon, B.: Java 2 platform enterprise edition specification, Sun Microsystems, Tech. Rep. v1.4 (November 2003) (Last visited: 04/2004), Online available:
  4. 4.
    Object Management Group, Inc., Common object request broker architecture: Core specification, Tech. Rep. Version 3.0.2 - Editorial update (December 2002) (last visited: 03/2004), Online available:
  5. 5.
    ECMA, Standard ecma-335 - common language infrastructure (cli), Tech. Rep. (December 2002) (last visited: 10/2004), Online available:
  6. 6.
    Hamilton, G., Radia, S.: Using interface inheritance to address problems in system software evolution. ACM SIGPLAN Notices 29(8), 119–128 (1994)CrossRefGoogle Scholar
  7. 7.
    Rakic, M., Medvidovic, N.: Increasing the confidence in off-the-shelf components: a software connector-based approach. In: Proceedings of the 2001 symposium on Software reusability, Toronto, Ontario, Canada, pp. 11–18 (2001)Google Scholar
  8. 8.
    Zeller, A., Krinke, J.: Open-Source-Programmierwerkzeuge, Versionskontrolle - Konstruktion - Testen - Fehlersuche, 2nd edn. dpunkt.verlag (2003) (in German)Google Scholar
  9. 9.
    Beugnard, A., Jézéquel, J.-M., Plouzeau, N., Watkins, D.: Making components contract aware. IEEE software, 38–45 (1999)Google Scholar
  10. 10.
    Conradi, R., Westfechtel, B.: Version models for software configuration management. ACM Computing Surveys 30(2), 232–282 (1998)CrossRefGoogle Scholar
  11. 11.
    Szyperski, C.: Component Software: Beyond Object-Oriented Programming, 2nd edn. Addison-Wesley, Reading (2002)MATHGoogle Scholar
  12. 12.
    Siedersleben, J.: Moderne Software Architektur. Dpunkt Verlag (2004) (in German)Google Scholar
  13. 13.
    Abrial, J.-R.: The B-book: assigning programs to meanings. Cambridge University Press, New York (1996)CrossRefMATHGoogle Scholar
  14. 14.
    Möhrke, C.: PHP PEAR - Anwendung und Entwicklung - PEAR und PECL zur PHP-Programmierung nutzen. Galileo Press (2005) (in German)Google Scholar
  15. 15.
    Englander, R.: Developing Java beans. O’Reilly & Associates, Inc., Sebastopol, CA, USA (1997)MATHGoogle Scholar
  16. 16.
    Stuckenholz, A.: Softwarekomponenten und ihre Update-Zyklen: Eine Marktanalyse. Praxis der Information und Kommunikation (to appear, 2006)Google Scholar
  17. 17.
    McCamant, S., Ernst, M.D.: Early identification of incompatibilities in multi-component upgrades. In: Proceedings of the 10th European Software Engineering Conference and the 11th ACM SIGSOFT Symposium on the Foundations of Software Engineering, Helsinki, Finland, June 14–18, pp. 287–296 (2003)Google Scholar
  18. 18.
    Große-Rhode, M., Kutsche, R.-D., Bübl, F.: Concepts for the evolution of component based software systems. Fraunhofer ISST, Tech. Rep. (2000)Google Scholar
  19. 19.
    Cook, J.E., Dage, J.A.: Highly reliable upgrading of components. In: International Conference on Software Engineering, Los Angeles, California, United States, pp. 203–212 (1999)Google Scholar
  20. 20.
    Eisenbach, S., Jurisic, V., Sadler, C.: Managing the evolution of .NET programs. In: 6th IFIP International Conference on Formal Methods for Open Object-based Distributed Systems, FMOODS 2003 (November 2003)Google Scholar
  21. 21.
    Jeckle, M., Rupp, C., Hahn, J., Zengler, B., Queins, S.: UML2 glasklar. Carl Hanser, München (2004) (in German)Google Scholar
  22. 22.
    Knuth, D.E.: The Art of Computer Programming. Addison-Wesley Professional, Reading (1998)MATHGoogle Scholar
  23. 23.
    Brada, P.: Specification-based component substitutability and revision identification. Ph.D. dissertation, Charles University in Prague (August 2003)Google Scholar
  24. 24.
    Visnovsky, S.: Checking semantic compatibility of sofa/dcup components, Master’s thesis, Charles University in Prague, Prague (1999)Google Scholar
  25. 25.
    Jackson, I., Schwarz, C.:Debian policy manual (1998) (last visited: 12/2005), Online available:
  26. 26.
    Bailey, E.C.: Maximum RPM. Sams (1997)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Alexander Stuckenholz
    • 1
  • Olaf Zwintzscher
    • 2
  1. 1.Department of Data Processing TechnologiesFernUniversität in HagenGermany
  2. 2.W3L GmbHHerdecke BochumGermany

Personalised recommendations