Summary
When a new release of a component replaces one of its older versions (component upgrade), changes to its interface may invalidate existing component-based applications and require adaptation. To automate the latter, developers usually need to provide adaptation specifications. Whereas writing such specifications is cumbersome and error-prone, maintaining them is even harder, because any evolutionary component change may invalidate existing specifications. We show how the use of a history of structural component changes (refactorings) enables automatic adaptation of existing adaptation specifications; the latter are written once and need not be maintained.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Borland JBuilder, http://www.codegear.com/products/jbuilder
ComeBack! homepage, http://comeback.sf.net
Eclipse Foundation, http://www.eclipse.org
JHotDraw framework, http://www.jhotdraw.org
LAN-simulation lab session, http://www.lore.ua.ac.be
SalesPoint homepage, http://www-st.inf.tu-dresden.de/SalesPoint/v3.1
Balaban, I., Tip, F., Fuhrer, R.: Refactoring support for class library migration. In: OOPSLA 2005: Proceedings of the 20th annual ACM SIGPLAN conference on Object oriented programming, systems, languages, and applications, pp. 265–279. ACM Press, New York (2005)
Becker, S., Brogi, A., Gorton, I., Overhage, S., Romanovsky, A., Tivoli, M.: Towards an engineering approach to component adaptation. In: Reussner, R., Stafford, J.A., Szyperski, C.A. (eds.) Architecting Systems with Trustworthy Components. LNCS, vol. 3938, pp. 193–215. Springer, Heidelberg (2006)
Brogi, A., Canal, C., Pimentel, E.: Component adaptation through flexible subservicing. Science of Computer Programming 63(1), 39–56 (2006)
Canal, C., Poizat, P., Salaün, G.: Synchronizing behavioural mismatch in software composition. In: Gorrieri, R., Wehrheim, H. (eds.) FMOODS 2006. LNCS, vol. 4037, pp. 63–77. Springer, Heidelberg (2006)
Chow, K., Notkin, D.: Semi-automatic update of applications in response to library changes. In: ICSM 1996: Proceedings of the 1996 International Conference on Software Maintenance, p. 359. IEEE Computer Society Press, Washington (1996)
Dig, D., Comertoglu, C., Marinov, D., Johnson, R.: Automated detection of refactorings in evolving components. In: Thomas, D. (ed.) ECOOP 2006. LNCS, vol. 4067, pp. 404–428. Springer, Heidelberg (2006)
Dig, D., Johnson, R.: The role of refactorings in API evolution. In: ICSM 2005: Proceedings of the 21st IEEE International Conference on Software Maintenance (ICSM 2005), pp. 389–398. IEEE Computer Society Press, Washington (2005)
Dig, D., Negara, S., Mohindra, V., Johnson, R.: ReBA: Refactoring-aware binary adaptation of evolving libraries. In: ICSE 2008: International Conference on Software Engineering. Leipzig, Germany, (to appear, 2008)
Henkel, J., Diwan, A.: Catchup!: capturing and replaying refactorings to support API evolution. In: ICSE 2005: Proceedings of the 27th International Conference on Software Engineering, pp. 274–283. ACM Press, New York (2005)
Inverardi, P., Tivoli, M.: Software architecture for correct components assembly. In: Bernardo, M., Inverardi, P. (eds.) SFM 2003. LNCS, vol. 2804, pp. 92–121. Springer, Heidelberg (2003)
Johnson, R., Foote, B.: Designing reusable classes. Journal of Object-Oriented Programming 1(2), 22–35 (1988)
Keller, R., Hölzle, U.: Binary component adaptation. In: Jul, E. (ed.) ECOOP 1998. LNCS, vol. 1445, pp. 307–329. Springer, Heidelberg (1998)
Opdyke, W.F.: Refactoring object-oriented frameworks. Ph.D. thesis, University of Illinois at Urbana-Champaign, Urbana-Champaign, IL, USA (1992)
Reussner, R.: The use of parameterised contracts for architecting systems with software components. In: Bosch, J., Weck, W., Szyperski, C. (eds.) WCOP 2001: Proceedings of the Sixth International Workshop on Component-Oriented Programming (2001)
Roock, S., Havenstein, A.: Refactoring tags for automatic refactoring of framework dependent applications. In: Wells, D., Williams, L. (eds.) XP 2002. LNCS, vol. 2418, pp. 182–185. Springer, Heidelberg (2002)
Şavga, I., Rudolf, M.: Refactoring-based adaptation for binary compatiblity in evolving frameworks. In: GPCE 2007: Proceedings of the Sixth International Conference on Generative Programming and Component Engineering, pp. 175–184. ACM Press, Salzburg (2007)
Şavga, I., Rudolf, M., Lehmann, J.: Controlled adaptation-oriented evolution of object-oriented components. In: IASTED SE 2008: Proceedings of the IASTED International Conference on Software Engineering. ACTA Press, Innsbruck (2008)
Yellin, D.M., Strom, R.E.: Protocol specifications and component adaptors. ACM TOPLAS: ACM Transactions on Programming Languages and Systems 19(2), 292–333 (1997)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2008 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Şavga, I., Rudolf, M. (2008). Refactoring-Based Adaptation of Adaptation Specifications. In: Lee, R. (eds) Software Engineering Research, Management and Applications. Studies in Computational Intelligence, vol 150. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-70561-1_14
Download citation
DOI: https://doi.org/10.1007/978-3-540-70561-1_14
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-70774-5
Online ISBN: 978-3-540-70561-1
eBook Packages: EngineeringEngineering (R0)