Separation of Concerns : A Case Study

In this paper we present the results of a case study we conducted at two local SMEs (Small and Medium sized Enterprises) in two different domains. In the case study we examine how these companies handle separation of concerns in their respective domains. We focused on which concerns were perceived as problematic; what kind of design solutions were used to work around these problems and what the effect of these design solutions was on the separation of concerns. In our analysis we reflect on if, and how the use of advanced separation of concerns technology, such as e.g. Aspect Oriented Programming (AOP), would be useful. An important conclusion of our paper is that in both cases the companies do not need such tools for separating the concerns they are aware of (i.e. anticipated concerns) since adequate, conventional techniques have been applied. The benefit of applying such techniques to separate the remaining, unanticipated concerns is unclear as well since it is anticipated that at least some refactoring of the original system would be required in order to apply such techniques.

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

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

[3]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[4]  Gregor Kiczales,et al.  RG: A Case-Study for Aspect-Oriented Programming , 1997 .

[5]  Jan Bosch,et al.  Framework composition: problems, causes and solutions , 1997, Proceedings of TOOLS USA 97. International Conference on Technology of Object Oriented Systems and Languages.

[6]  Don Roberts,et al.  Patterns for evolving frameworks , 1997 .

[7]  Jilles van Gurp Design , Implementation and Evolution of Object Oriented Frameworks : Concepts & Guidelines , 1999 .

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

[9]  Mik Kersten,et al.  Atlas: a case study in building a web-based learning environment using aspect-oriented programming , 1999, OOPSLA '99.

[10]  Jan Bosch,et al.  Evolution in software product lines: two cases , 1999, J. Softw. Maintenance Res. Pract..

[11]  Robert J. Walker,et al.  Evaluating Emerging Software Development Technologies: Lessons Learned from Assessing Aspect-Oriented Programming , 1999, IEEE Trans. Software Eng..

[12]  Siobhán Clarke,et al.  Subject-oriented design: towards improved alignment of requirements, design, and code , 1999, OOPSLA '99.

[13]  Cristina V. Lopes,et al.  A study on exception detection and handling using aspect-oriented programming , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[14]  Gregor Kiczales,et al.  Aspect-oriented programming , 2001, ESEC/FSE-9.

[15]  Jan Bosch,et al.  Design Erosion: Problems & Causes , 2001 .

[16]  Martin P. Robillard,et al.  Separating features in source code: an exploratory study , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.