It is often claimed that inaccurate modularisation of crosscutting concerns hinders program comprehension and, as a consequence, leads to harmful software instabilities. However, recent studies have pointed out that crosscutting concerns are not always harmful to design stability. Hence, software maintainers would benefit from well documented patterns of crosscutting concerns and a better understanding about their actual impact on design stability. This paper presents a catalogue of crosscutting concern patterns recurrently observed in software systems. These patterns are described and classified based on an intuitive vocabulary that facilitates their recognition by software engineers. We analysed instances of the crosscutting patterns in object-oriented and aspect-oriented versions of three evolving programs. The outcomes of our exploratory evaluation indicated that: (i) a certain category of crosscutting patterns seems to be good indicator of harmful instabilities, and (ii) aspect-oriented solutions were unable to modularise concerns matching some crosscutting patterns.
|Title of host publication||2009 IEEE 17th International Conference on Program Comprehension, ICPC '09|
|Number of pages||10|
|Publication status||Published - 2009|
|Event||2009 IEEE 17th International Conference on Program Comprehension, ICPC '09 - Vancouver, BC, Canada|
Duration: 17 May 2009 → 19 May 2009
|Conference||2009 IEEE 17th International Conference on Program Comprehension, ICPC '09|
|Period||17/05/09 → 19/05/09|