Skip to main content

Linking Programs to Architectures: An Object-Oriented Hierarchical Software Model Based on Boxes

  • Chapter

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 5153))

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.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Medvidovic, N., Taylor, R.N.: A classification and comparison framework for software architecture description languages. IEEE Trans. Softw. Eng. 26(1), 70–93 (2000)

    Article  Google Scholar 

  2. 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)

    Google Scholar 

  3. Allen, R., Garlan, D.: A formal basis for architectural connection. ACM Trans. Softw. Eng. Methodol. 6(3), 213–249 (1997)

    Article  Google Scholar 

  4. 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)

    Article  Google Scholar 

  5. 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)

    Article  Google Scholar 

  6. 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)

    Google Scholar 

  7. 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)

    Chapter  Google Scholar 

  8. 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)

    Google Scholar 

  9. 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)

    Chapter  Google Scholar 

  10. 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)

    Chapter  Google Scholar 

  11. Szyperski, C.: Component Software - Beyond Object-Oriented Programming, 2nd edn. Addison-Wesley Publishing Company Inc, Reading (2002)

    Google Scholar 

  12. Gosling, J., Joy, B., Steele, G., Bracha, G.: The JavaTM Language Specification, 2nd edn. Addison-Wesley, Reading (2000)

    Google Scholar 

  13. 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)

    Google Scholar 

  14. 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)

    Google Scholar 

  15. Milner, R.: Communicating and Mobile Systems: the Pi-Calculus. Cambridge University Press, Cambridge (1999)

    MATH  Google Scholar 

  16. 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)

    Google Scholar 

  17. Institut National de Recherche en Informatique et en Automatique: JoCaml (2007), http://jocaml.inria.fr

  18. 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)

    Chapter  Google Scholar 

  19. von Itzstein, G.S.: Introduction of High Level Concurrency Semantics in Object Oriented Languages. PhD thesis, University of South Australia (2005)

    Google Scholar 

  20. Lea, D.: Concurrent Programming in Java, 2nd edn. Addison-Wesley, Reading (2000)

    Google Scholar 

  21. 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)

    Google Scholar 

  22. The CoCoME forum (2007), http://naf.informatik.uni-kl.de/php/phpBB2/index.php

  23. The Eclipse Foundation: Eclipse Java Development Tools (JDT) (2007), http://www.eclipse.org/jdt/

  24. The Eclipse Foundation: Eclipse Modeling Framework Project (EMF) (2007), http://www.eclipse.org/modeling/emf/

Download references

Author information

Authors and Affiliations

Authors

Editor information

Andreas Rausch Ralf Reussner Raffaela Mirandola František Plášil

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics