Interactive exploration of structural concepts in code
P Heckmann, D Speicher - … : 4th International Joint Conference, IC3K 2012 …, 2013 - Springer
P Heckmann, D Speicher
Knowledge Discovery, Knowledge Engineering and Knowledge Management: 4th …, 2013•SpringerUnderstanding a software system is the first task in any reengineering activity. For this very
challenging task one effective approach is to identify interesting and reoccuring structures in
the software and to study these structures individually. In object-oriented software such
structures typically consist of a few classes. The well known among them are called design
pattern. Yet, which structures to look at in particular? Can we identify interesting structures
that are not that well known? Which structures to be a clue to start with? In this paper we …
challenging task one effective approach is to identify interesting and reoccuring structures in
the software and to study these structures individually. In object-oriented software such
structures typically consist of a few classes. The well known among them are called design
pattern. Yet, which structures to look at in particular? Can we identify interesting structures
that are not that well known? Which structures to be a clue to start with? In this paper we …
Abstract
Understanding a software system is the first task in any reengineering activity. For this very challenging task one effective approach is to identify interesting and reoccuring structures in the software and to study these structures individually. In object-oriented software such structures typically consist of a few classes. The well known among them are called design pattern. Yet, which structures to look at in particular? Can we identify interesting structures that are not that well known? Which structures to be a clue to start with?
In this paper we extend a previously suggested approach of pattern mining using Formal Concept Analysis. We propose a way to eliminate redundant information in the overall analysis result. Besides that, we introduce two new features: The first feature is a filtering element that allows us to interactively and dynamically narrow the analysis space. The second is the prominence of a class - a measurement of the importance of the class to the overall system.
In an experimental evaluation we applied our approach on two software projects. In the first, JUnit, our tool guided the experimenter to central structures that can be found in the online documentation yet was unknown to the experimenter. In the second the tool led us to core structures of our own software.
Springer
Showing the best result for this search. See all results