Skip to main content

Modules for Crosscutting Models

  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2655))

Abstract

Traditional programming languages assume that real-world systems have “intuitive”, mind-independent, preexisting concept hierarchies. However, our perception of the world depends heavily on the context from which it is viewed: Every software system can be viewed from multiple different perspectives, and each of these perspectives may imply a different decomposition of the concerns. The hierarchy which we choose to decompose our software system into modules is to a large degree arbitrary, although it has a big influence on the software engineering properties of the software. We identify this arbitrariness of the decomposition hierarchy as the main cause of ‘code tangling’ and present a new model called Caesar 1, within which it is possible to have multiple different decompositions simultaneously and to add new decompositions on-demand.

Project homepage at http://www.st.informatik.tu-darmstadt.de/pages/projects/caesar

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. E. Ernst. Family polymorphism. In Proceedings of ECOOP’01, LNCS 2072, pages 303–326. Springer, 2001.

    Google Scholar 

  2. D. Garlan, G.E. Kaiser, and D. Notkin. Using tool abstraction to compose systems. Computer, 25(6): 30–38, 1992.

    Article  Google Scholar 

  3. U. Hölzle. Integrating independently-developed components in object-oriented languages. In Proceedings ECOOP’93, LNCS, 1993.

    Google Scholar 

  4. Java Foundation Classes. http://java.sun.com/products/jfc/.

  5. D.C. Luckham, J.L. Kenney, L.M. Augustin, J. Vera, D. Bryan, and W. Mann. Specification and analysis of system architecture using Rapide. IEEE Transactions on Software Engineering, 21(4):336–355, 1995.

    Article  Google Scholar 

  6. O.L. Madsen and B. Møller-Pedersen. Virtual classes: A powerful mechanism in object-oriented programming. In Proceedings of OOPSLA’ 89. ACM SIGPLAN, 1989.

    Google Scholar 

  7. J. Magee and J. Kramer. Dynamic structure in software architecture. In Proceedings of the ACM SIGSOFT’96 Symposium on Foundations of Software Engineering, 1996.

    Google Scholar 

  8. S. McDirmid, M. Flatt, and W. Hsieh. Jiazzi: New age components for old fashioned Java. In Proceedings of OOPSLA’ 01, 2001.

    Google Scholar 

  9. N. Medvidovic, P. Oreizy, and R.N. Taylor. Reuse of off-the-shelf components in C2-style architectures. In Proceedings of the 1997 international conference on Software engineering, pages 692–700, 1997.

    Google Scholar 

  10. M. Mezini and K. Lieberherr. Adaptive plug-and-play components for evolutionary software development. In Proceedings OOPSLA’ 98, ACM SIGPLAN Notices, 1998.

    Google Scholar 

  11. M. Mezini and K. Ostermann. Integrating independent components with on-demand remodularization. In Proceedings of OOPSLA’ 02, Seattle, USA, 2002.

    Google Scholar 

  12. M. Mezini and K. Ostermann. Conquering aspects with Caesar. In Proc. International Conference on Aspect-Oriented Software Development (AOSD’ 03), Boston, USA, 2003.

    Google Scholar 

  13. M. Mezini, L. Seiter, and K. Lieberherr. Component integration with pluggable composite adapters. In M. Aksit, editor, Software Architectures and Component Technology: The State of the Art in Research and Practice. Kluwer, 2001. University of Twente, The Netherlands.

    Google Scholar 

  14. D.L. Parnas. On the criteria to be used in decomposing systems into modules. Communications of the ACM, 15(12):1053–1058, 1972.

    Article  Google Scholar 

  15. C.H. Pedersen. Extending ordinary inheritance schemes to include generalization. In OOPSLA’ 89 Proceedings, 1989.

    Google Scholar 

  16. M. Shaw and D. Garlan. Software Architecture: Perspectives on an Emerging Discipline. PrenticeHall, 1996.

    Google Scholar 

  17. P. Tarr, H. Ossher, W. Harrison, and S.M. Sutton. N degrees of separation: Multidimensional separation of concerns. In Proc. International Conference on Software Engineering (ICSE 99), 1999.

    Google Scholar 

  18. K.K. Thorup. Genericity in Java with virtual types. In Proceedings ECOOP’ 97, 1997.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2003 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Mezini, M., Ostermann, K. (2003). Modules for Crosscutting Models. In: Rosen, JP., Strohmeier, A. (eds) Reliable Software Technologies — Ada-Europe 2003. Ada-Europe 2003. Lecture Notes in Computer Science, vol 2655. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-44947-7_2

Download citation

  • DOI: https://doi.org/10.1007/3-540-44947-7_2

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-40376-0

  • Online ISBN: 978-3-540-44947-8

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics