Tech Report CS-03-14
Detecting Features Through Concept Analysis
Current software engineering practices devote much time, energy, and documentation to ensuring that the implementation of each feature in a product actually meets the specified requirements. Changing requirements introduce additional pressure and therefore additional incentive to construct product lines in terms of relevant and evolving features. It is possible to improve the accuracy of feature implementation and testing by providing feature-oriented tools to the software engineer and his team. Concept analysis is a formal technique already used for the related problem of refactoring; the concept compiler applies concept analysis methods to Java source code to detect closely related calling patterns and object interactions at the source level. The structure of the resulting concept lattice can be used to derive a set of candidate feature implementations. As a static tool for feature detection, the concept compiler complements other program-slicing approaches to source code management.