An Empirical Study About Separation of Concerns Approaches

AbstractDespite the wide success of object orientation in software engineering, many researchers agreeon that the paradigm still has some difficulties to deal with the well-known problem of separationof concerns. Separation of concerns (SoC) aims to provide developers with techniques to decom-pose and organize software into more comprehensive parts in order to improve software quality.Although a number of promising SoC approaches such as aspect-oriented programming, subject-oriented programming or composition filters have surged, their promises are still to be shown.This naturally involves a compromise for novel technologies to tackle these drawbacks. The dis-cussion is not just about new mechanisms or artifacts to handle software concerns, rather it refersto how technologies can promote good design practices to effectively reason about such concerns.The paper presents an empirical study comparing several alternatives for SoC approaches againstan object-oriented solution. This work focuses on design issues for concern support and it dis-cusses the role of concern languages, frameworks and software architectures in this context.

[1]  Mehmet Aksit Separation and composition of concerns in the object-oriented model , 1996, CSUR.

[2]  Paul Clements,et al.  Software architecture in practice , 1999, SEI series in software engineering.

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

[4]  Tzilla Elrad,et al.  Designing an aspect-oriented framework in an object-oriented environment , 2000, CSUR.

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

[6]  Pattie Maes,et al.  Concepts and experiments in computational reflection , 1987, OOPSLA '87.

[7]  Marcelo R. Campo,et al.  Developing object‐oriented enterprise quality frameworks using proto‐frameworks , 2002, Softw. Pract. Exp..

[8]  J. V. Gurp,et al.  Separation of Concerns : A Case Study , 2001 .

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

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

[11]  Robert J. Walker,et al.  An initial assessment of aspect-oriented programming , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

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

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