Abstract
Building and maintaining non-trivial software systems that are independently extensible is a difficult task. This is because the combination of independent extensions tends to produce conflicts that are difficult to anticipate, and to which no general resolution strategy exists. In this paper, we show how some of these conflicts can be avoided if domain-specific contexts are modeled using a representation that is open for extension and safe for sharing among independent extensions.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Beugnard, A., Jézéquel, J., Plouzeau, N., Watkins, D.: Making Components Contract Aware. Computer 32(7), 38–45 (1999)
Büchi, M., Weck, W.: Generic Wrappers. In: Bertino, E. (ed.) ECOOP 2000. LNCS, vol. 1850, pp. 201–225. Springer, Heidelberg (2000)
Clifton, C., Leavens, G., Chambers, C., Millstein, T.: MultiJava: Modular Open Classes and Symmetric Multiple Dispatch for Java. In: OOPSLA 2000 – Proceedings of the 15th ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, pp. 130–145 (2000)
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Professional, Reading (1994)
Hogg, J., Lea, D., Wills, A.: deChampeaux, D., Holt, R.: The Geneva Convention – On The Treatment of Object Aliasing. ACM SIGPLAN OOPS Messenger 3(2), 11–16 (1992)
Jørgensen, B.: Integration of Independently Developed Components through Aliased Multi-Object Type Widening. Journal of Object Technology 3(11), 55–76 (2004)
Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., Griswold, W.: An Overview of AspectJ. In: Knudsen, J.L. (ed.) ECOOP 2001. LNCS, vol. 2072, pp. 327–354. Springer, Heidelberg (2001)
Kircher, M., Jain, P.: Pattern-Oriented Software Architecture. Patterns for Resource Management, vol. 3. Wiley, Chichester (2004)
Lehman, M.: Programs, Life Cycles, and Laws of Software Evolution. Proceedings of the IEEE 68, 1060–1076 (1980)
McGregor, J.: Context. Journal of Object Technology 4(7), 35–44 (2005)
Oreizy, P., Taylor, R.: Coping with Application Inconsistency in Decentralized Software Evolution. In: International Workshop on the Principles of Software Evolution (1999)
Ostermann, K., Kniesel, G.: Independent Extensibility – An Open Challenge for AspectJ and Hyper/J. In: ECOOP 2000 – Workshop on Aspects and Dimension of Concerns (2000)
Steimann, F.: The Paradoxical Success of Aspect-Oriented Programming. In: OOPSLA 2006 – Proceedings of the 21st Annual ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages, and Applications, pp. 481–497 (2006)
Szyperski, C.: Independently Extensible Systems – Software Engineering Potential and Challenges. In: Proceedings of the 19th Australasian Computer Science Conference (1996)
Szyperski, C.: Component Software – Beyond Object-Oriented Programming, 2nd edn. Addison-Wesley Professional, Reading (2002)
Tarr, P., Ossher, H., Sutton, S.: Hyper/JTM: Multi-Dimensional Separation of Concerns for JavaTM. In: Proceedings of the 24th International Conference on Software Engineering, pp. 689–690 (2002)
Weck, W.: Independently Extensible Component Frameworks. Special Issues in Object-Oriented Programming, pp. 177–183 (1997)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2010 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Rytter, M., Jørgensen, B.N. (2010). Independently Extensibile Contexts. In: Babar, M.A., Gorton, I. (eds) Software Architecture. ECSA 2010. Lecture Notes in Computer Science, vol 6285. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-15114-9_25
Download citation
DOI: https://doi.org/10.1007/978-3-642-15114-9_25
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-15113-2
Online ISBN: 978-3-642-15114-9
eBook Packages: Computer ScienceComputer Science (R0)