Composing Software from Multiple Concerns : Composability and Composition Anomalies

It is generally acknowledged that separation of concerns is a key requirement for effective software engineering: it helps in managing the complexity of software and supports the maintainability of a software system. Separation of concerns makes only sense if the realizations in software of these concerns can be composed together effectively into a working program. The ability to compose systems from independently developed components that can be adapted and extended easily is a long-standing goal in the software engineering discipline. However, both research and practice have shown that composability of software is far from trivial and fails repeatedly. Typically this occurs when components exhibit complex behavior, in particular when multiple concerns are involved in a single component. We believe that, to address the composability problems, we need a better understanding of the requirements involved in successful composition, and in addition define the situations where composition fails. To this aim, in this paper we (a) introduce a general model of composing systems from multiple concerns, (b) introduce a number of requirements for design-level composability and (c) define a category of composability problems that are inherent for given composition models, which we term as composition anomalies.

[1]  Herbert A. Simon,et al.  The Sciences of the Artificial , 1970 .

[2]  M. Chi,et al.  From things to processes: A theory of conceptual change for learning science concepts , 1994 .

[3]  Dimitri Konstantas,et al.  Interoperation of object-oriented applications , 1995 .

[4]  Stanley M. Sutton,et al.  N degrees of separation: multi-dimensional separation of concerns , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[5]  Stanley M. Sutton,et al.  Multi-Dimensional Separation of Concerns , 1999 .

[6]  Bedir Tekinerdogan,et al.  Component Composability Issues in Object-Oriented Programming , 1997 .

[7]  Panos Y. Papalambros,et al.  A Hypergraph Framework for Optimal Model-Based Decomposition of Design Problems , 1997, Comput. Optim. Appl..

[8]  Lodewijk Bergmans Aspects of AOP: Scalability and application to domain modelling , 1996 .

[9]  Mehmet Aksit,et al.  Aspects and Crosscutting in Layered Middleware Systems , 2000 .

[10]  Lodewijk Bergmans,et al.  Composing Synchronization and Real-Time Constraints , 1995, J. Parallel Distributed Comput..

[11]  Ken Wakita,et al.  Synchronization Constraints With Inheritance: What Is Not Possible --- So What Is? , 1990 .

[12]  Antonio Vallecillo,et al.  Object Interoperability , 1999, ECOOP Workshops.

[13]  Philip J. Koopman A TAXONOMY OF DECOMPOSITION STRATEGIES BASED ON STRUCTURES, BEHAVIORS, AND GOALS , 1995 .

[14]  Lodewijk Bergmans,et al.  An Object-Oriented Language-Database Integration Model: The Composition-Filters Approach , 1992, ECOOP.

[15]  Akinori Yonezawa,et al.  Abstracting Object Interactions Using Composition Filters , 1993, ECOOP Workshop.

[16]  Satoshi Matsuoka,et al.  Analysis of inheritance anomaly in object-oriented concurrent programming languages , 1993 .

[17]  Jan Bosch,et al.  Real-Time Specification Inheritance Anomalies and Real-Time Filters , 1994, ECOOP.

[18]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[19]  Louis Marie Johannes Bergmans,et al.  Composing Concurrent Objects , 1994 .

[20]  Bedir Tekinerdogan,et al.  Synthesis - Based Software Architecture Design , 2001 .

[21]  Mehmet Aksit,et al.  Analyzing Multi-Dimensional Programming in AOP and Composition Filters , 1999 .

[22]  Oscar Nierstrasz,et al.  Object-oriented software composition , 1995 .