Advertisement

Modules for Crosscutting Models

  • Mira Mezini
  • Klaus Ostermann
Conference paper
Part of the Lecture Notes in Computer Science book series (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.

Keywords

Tree Node Bidirectional Communication Nest Type Object Node Architecture Description Language 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    E. Ernst. Family polymorphism. In Proceedings of ECOOP’01, LNCS 2072, pages 303–326. Springer, 2001.Google Scholar
  2. 2.
    D. Garlan, G.E. Kaiser, and D. Notkin. Using tool abstraction to compose systems. Computer, 25(6): 30–38, 1992.CrossRefGoogle Scholar
  3. 3.
    U. Hölzle. Integrating independently-developed components in object-oriented languages. In Proceedings ECOOP’93, LNCS, 1993.Google Scholar
  4. 4.
    Java Foundation Classes. http://java.sun.com/products/jfc/.
  5. 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.CrossRefGoogle Scholar
  6. 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. 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. 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. 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. 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. 11.
    M. Mezini and K. Ostermann. Integrating independent components with on-demand remodularization. In Proceedings of OOPSLA’ 02, Seattle, USA, 2002.Google Scholar
  12. 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. 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. 14.
    D.L. Parnas. On the criteria to be used in decomposing systems into modules. Communications of the ACM, 15(12):1053–1058, 1972.CrossRefGoogle Scholar
  15. 15.
    C.H. Pedersen. Extending ordinary inheritance schemes to include generalization. In OOPSLA’ 89 Proceedings, 1989.Google Scholar
  16. 16.
    M. Shaw and D. Garlan. Software Architecture: Perspectives on an Emerging Discipline. PrenticeHall, 1996.Google Scholar
  17. 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. 18.
    K.K. Thorup. Genericity in Java with virtual types. In Proceedings ECOOP’ 97, 1997.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2003

Authors and Affiliations

  • Mira Mezini
    • 1
  • Klaus Ostermann
    • 1
  1. 1.Darmstadt University of TechnologyDarmstadtGermany

Personalised recommendations