Abstract
Modeling software systems has several purposes. The model provides a communication means between developers, a backbone to specify and check properties of the system, and a structure to organize, explain, and develop the implementation of the system. The focus of our approach is to address these purposes for hierarchically structured, object-oriented software systems. The hierarchical structure refers to the component instances at runtime: a runtime component may consist of a dynamically changing number of objects and other runtime components. Our modeling technique builds on and extends the concepts of class-based object-oriented languages. Runtime components are created by instantiating box classes. The modeling technique provides ports to tame object references and aliasing and to decouple components from their environment. It supports dynamic linkage, i.e. ports can be connected and disconnected at runtime. The used concurrency model is based on the join calculus.
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
Medvidovic, N., Taylor, R.N.: A classification and comparison framework for software architecture description languages. IEEE Trans. Softw. Eng. 26(1), 70–93 (2000)
Magee, J., Dulay, N., Eisenbach, S., Kramer, J.: Specifying distributed software architectures. In: Schäfer, W., Botella, P. (eds.) ESEC 1995. LNCS, vol. 989, pp. 137–153. Springer, Heidelberg (1995)
Allen, R., Garlan, D.: A formal basis for architectural connection. ACM Trans. Softw. Eng. Methodol. 6(3), 213–249 (1997)
Luckham, D.C., Kenney, J.J., Augustin, L.M., Vera, J., Bryan, D., Mann, W.: Specification and analysis of system architecture using rapide. IEEE Trans. Softw. Eng. 21(4), 336–355 (1995)
Shaw, M., DeLine, R., Klein, D.V., Ross, T.L., Young, D.M., Zelesnik, G.: Abstractions for software architecture and tools to support them. IEEE Trans. Softw. Eng. 21(4), 314–335 (1995)
Aldrich, J., Chambers, C., Notkin, D.: ArchJava: connecting software architecture to implementation. In: ICSE 2002: Proceedings of the 24th International Conference on Software Engineering, pp. 187–197. ACM Press, New York (2002)
Seco, J.C., Caires, L.: A basic model of typed components. In: Bertino, E. (ed.) ECOOP 2000. LNCS, vol. 1850, pp. 108–128. Springer, Heidelberg (2000)
Sreedhar, V.C.: Mixin’up components. In: ICSE 2002: Proceedings of the 24th International Conference on Software Engineering, pp. 198–207. ACM Press, New York (2002)
Fournet, C., Gonthier, G.: The reflexive CHAM and the join-calculus. In: Proceedings of the 23rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL 1996), pp. 372–385. ACM Press, New York (1996)
Poetzsch-Heffter, A., Schäfer, J.: A representation-independent behavioral semantics for object-oriented components. In: Bonsangue, M.M., Johnsen, E.B. (eds.) FMOODS 2007. LNCS, vol. 4468. Springer, Heidelberg (2007)
Szyperski, C.: Component Software - Beyond Object-Oriented Programming, 2nd edn. Addison-Wesley Publishing Company Inc, Reading (2002)
Gosling, J., Joy, B., Steele, G., Bracha, G.: The JavaTM Language Specification, 2nd edn. Addison-Wesley, Reading (2000)
Barnett, M., DeLine, R., Fähndrich, M., Leino, K.R.M., Schulte, W.: Verification of object-oriented programs with invariants. Journal of Object Technology 3(6) (2004)
Poetzsch-Heffter, A., Geilmann, K., Schäfer, J.: Infering ownership types for encapsulated object-oriented program components. In: Program Analysis and Compilation, Theory and Practice: Essays Dedicated to Reinhard Wilhelm. Springer, Heidelberg (to appear, 2007)
Milner, R.: Communicating and Mobile Systems: the Pi-Calculus. Cambridge University Press, Cambridge (1999)
Scholten, J.G., Arbab, F., de Boer, F.S., Bonsangue, M.M.: Mobile channels, implementation within and outside component. Electronical Notes in Theoretical Computer Science 66(4) (2002)
Institut National de Recherche en Informatique et en Automatique: JoCaml (2007), http://jocaml.inria.fr
Benton, N., Cardelli, L., Fournet, C.: Modern concurrency abstractions for C#. In: Magnusson, B. (ed.) ECOOP 2002. LNCS, vol. 2374, pp. 415–440. Springer, Heidelberg (2002)
von Itzstein, G.S.: Introduction of High Level Concurrency Semantics in Object Oriented Languages. PhD thesis, University of South Australia (2005)
Lea, D.: Concurrent Programming in Java, 2nd edn. Addison-Wesley, Reading (2000)
Woolf, B.: Null object. In: Martin, R.C., Riehle, D., Ruschman, F. (eds.) Pattern Languages of Program Design, vol. 3, pp. 5–18. Addison-Wesley, Reading (1998)
The CoCoME forum (2007), http://naf.informatik.uni-kl.de/php/phpBB2/index.php
The Eclipse Foundation: Eclipse Java Development Tools (JDT) (2007), http://www.eclipse.org/jdt/
The Eclipse Foundation: Eclipse Modeling Framework Project (EMF) (2007), http://www.eclipse.org/modeling/emf/
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2008 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Schäfer, J., Reitz, M., Gaillourdet, JM., Poetzsch-Heffter, A. (2008). Linking Programs to Architectures: An Object-Oriented Hierarchical Software Model Based on Boxes. In: Rausch, A., Reussner, R., Mirandola, R., Plášil, F. (eds) The Common Component Modeling Example. Lecture Notes in Computer Science, vol 5153. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-85289-6_10
Download citation
DOI: https://doi.org/10.1007/978-3-540-85289-6_10
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-85288-9
Online ISBN: 978-3-540-85289-6
eBook Packages: Computer ScienceComputer Science (R0)