Multi-dimensional Separation of Concerns in Hyperspace Multi-dimensional Separation of Concerns in Hyperspace

LIMITED DISTRIBUTION NOTICE This report has been submitted for publication outside of IBM and will probably be copyrighted if accepted for publication. It has been issued as a Research Report for early dissemination of its contents. In view of the transfer of copyright to the outside publisher, its distribution outside of IBM prior to publication should be limited to peer communications and speciic requests. After outside publication, requests should be lled only by reprints or legally obtained copies of the article (e.g., payment of royalties). Copies may be requested from IBM T.J. Abstract Despite the well-known beneets of separation of concerns , and despite the presence of mechanisms to achieve separation of concerns in all modern software formalisms, software artifacts continue to exhibit properties associated with poor separation of concerns. Comprehensibility degrades over time; impact of change is high; reuse and traceability are limited. We have hypothesized that these limitations are largely caused by the \tyranny of the dominant decompo-sition:" existing languages and formalisms generally provide only one, \dominant" dimension along which to separate concerns{e.g., by object or by function. Achieving many software engineering goals depends on the ability to separate all concerns of importance. We therefore introduced the notion of multi-dimensional separation of concerns: simultaneous separation according to multiple, potentially overlapping concerns. This paper explores the structure of the space of concerns , to which we refer as hyperspace, partially formalizing our earlier model. We discuss how the model facilitates the identiication and encapsulation of those portions of a system pertaining to a given concern, whether or not that concern is \dominant," and how it helps identify, introduce, change and remove concerns during evolution. We also show how this approach promotes two crucial aspects of evolvability: traceability and limited impact of change.

[1]  Lori A. Clarke,et al.  A Framework for Event-Based Software Integration TITLE2: , 1996 .

[2]  David Garlan,et al.  A formal basis for architectural connection , 1997, TSEM.

[3]  Mira Mezini,et al.  Adaptive plug-and-play components for evolutionary software development , 1998, OOPSLA '98.

[4]  Ian M. Holland,et al.  Specifying Reusable Components Using Contracts , 1992, ECOOP.

[5]  M. Jackson,et al.  Some complexities in computerbased systems and their implications for system development , 1990, COMPEURO'90: Proceedings of the 1990 IEEE International Conference on Computer Systems and Software Engineering@m_Systems Engineering Aspects of Complex Computerized Systems.

[6]  Harold Ossher,et al.  Subject-oriented programming: a critique of pure objects , 1993, OOPSLA '93.

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

[8]  David Notkin,et al.  Using role components in implement collaboration-based designs , 1996, OOPSLA '96.

[9]  Jack C. Wileden,et al.  The AdaPIC Tool Set: Supporting Interface Control and Analysis Throughout the Software Development Process , 1989, IEEE Trans. Software Eng..

[10]  Trygve Reenskaug,et al.  System Design by Composing Structures of Interacting Objects , 1992, ECOOP.

[11]  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).

[12]  Desmond D'Souza,et al.  Objects, Components, and Frameworks with UML: The Catalysis Approach , 1998 .

[13]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[14]  Harold Ossher,et al.  Specifying Subject-Oriented Composition , 1996, Theory Pract. Object Syst..

[15]  Using Role Components to Implement Collaboration-Based Designs , 1996, OOPSLA.

[16]  Mary Shaw,et al.  Software architecture - perspectives on an emerging discipline , 1996 .

[17]  Bashar Nuseibeh,et al.  Expressing the relationships between multiple views in requirements specification , 1993, ICSE '93.