Abstract
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.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Zwintzscher, O.: Komponentenbasierte & generative Softwareentwicklung - Generierung komponentenbasierter Software aus erweiterten UML - Modellen, Ph.D. dissertation, Ruhr-Universität-Bochum (2003) (in German).
Sun Microsystems, JavaBeans API specification, Tech. Rep. (August 1997) (Last visited: 04/2004), Online available: http://java.sun.com/products/javabeans/
Shannon, B.: Java 2 platform enterprise edition specification, Sun Microsystems, Tech. Rep. v1.4 (November 2003) (Last visited: 04/2004), Online available: http://java.sun.com/j2ee/index.jsp
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: http://www.omg.org/technology/documents/formal/corba_iiop.htm
ECMA, Standard ecma-335 - common language infrastructure (cli), Tech. Rep. (December 2002) (last visited: 10/2004), Online available: http://www.ecma-international.org/publications/standards/Ecma-335.htm
Hamilton, G., Radia, S.: Using interface inheritance to address problems in system software evolution. ACM SIGPLAN Notices 29(8), 119–128 (1994)
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)
Zeller, A., Krinke, J.: Open-Source-Programmierwerkzeuge, Versionskontrolle - Konstruktion - Testen - Fehlersuche, 2nd edn. dpunkt.verlag (2003) (in German)
Beugnard, A., Jézéquel, J.-M., Plouzeau, N., Watkins, D.: Making components contract aware. IEEE software, 38–45 (1999)
Conradi, R., Westfechtel, B.: Version models for software configuration management. ACM Computing Surveys 30(2), 232–282 (1998)
Szyperski, C.: Component Software: Beyond Object-Oriented Programming, 2nd edn. Addison-Wesley, Reading (2002)
Siedersleben, J.: Moderne Software Architektur. Dpunkt Verlag (2004) (in German)
Abrial, J.-R.: The B-book: assigning programs to meanings. Cambridge University Press, New York (1996)
Möhrke, C.: PHP PEAR - Anwendung und Entwicklung - PEAR und PECL zur PHP-Programmierung nutzen. Galileo Press (2005) (in German)
Englander, R.: Developing Java beans. O’Reilly & Associates, Inc., Sebastopol, CA, USA (1997)
Stuckenholz, A.: Softwarekomponenten und ihre Update-Zyklen: Eine Marktanalyse. Praxis der Information und Kommunikation (to appear, 2006)
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)
Große-Rhode, M., Kutsche, R.-D., Bübl, F.: Concepts for the evolution of component based software systems. Fraunhofer ISST, Tech. Rep. (2000)
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)
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)
Jeckle, M., Rupp, C., Hahn, J., Zengler, B., Queins, S.: UML2 glasklar. Carl Hanser, München (2004) (in German)
Knuth, D.E.: The Art of Computer Programming. Addison-Wesley Professional, Reading (1998)
Brada, P.: Specification-based component substitutability and revision identification. Ph.D. dissertation, Charles University in Prague (August 2003)
Visnovsky, S.: Checking semantic compatibility of sofa/dcup components, Master’s thesis, Charles University in Prague, Prague (1999)
Jackson, I., Schwarz, C.:Debian policy manual (1998) (last visited: 12/2005), Online available: http://www.debian.org/doc/debian-policy/
Bailey, E.C.: Maximum RPM. Sams (1997)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2006 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Stuckenholz, A., Zwintzscher, O. (2006). Compatible Component Upgrades Through Smart Component Swapping. In: Reussner, R.H., Stafford, J.A., Szyperski, C.A. (eds) Architecting Systems with Trustworthy Components. Lecture Notes in Computer Science, vol 3938. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11786160_12
Download citation
DOI: https://doi.org/10.1007/11786160_12
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-35800-8
Online ISBN: 978-3-540-35833-6
eBook Packages: Computer ScienceComputer Science (R0)