Improper encapsulation of cross-cutting concerns significantly hinders software understandability and contributes to rising software maintenance costs. Concern identification covers the necessary first step towards separating and encapsulating concerns in existing object-oriented code. Because most of the current approaches rely on syntactic rather than semantic information, they do not provide sufficient support for software understanding. This paper proposes a new semi-automated approach for concern identification specifically designed to support software understanding, which starts from a set of related variables and uses static dataflow information to determine the concern skeleton, a data-oriented abstraction of a concern. We discuss the application of this approach to the JHotDraw case-study, the de facto standard benchmark for concern identification, and show that it can be used to identify a significant number of concerns, including several concerns not previously discussed in the existing literature.
['Mircea Trifu']
Using Dataflow Information for Concern Identification in Object-Oriented Software Systems