Mendel

When evolving software systems, developers spend a considerable amount of time understanding existing source code. To successfully implement new or alter existing behavior, developers need to answer questions such as: "Which types and methods can I use to solve this task?" or "Should my implementation follow particular naming or structural conventions?".
Our Mendel source code recommendation tool aids developers in answering such questions. Based on the entity the developer currently browses, the tool employs a genetics-inspired metaphor to analyze source-code entities related to the current working context and provides its user with a number of recommended properties (naming conventions, used types, invoked messages, etc.) that the source code entity currently being worked on should exhibit.
Mendel is based on the assumption that source-code entities which are in some way related, for example by hierarchy, are often governed by the same regularities. If a particular trait, that is shared by most of its relatives, is missing from a particular source-code entity, we consider that trait as a suitable candidate for recommendation. In this way, our algorithm differs from most existing coding assistants: it does not aim at predicting suitable messages to be sent, or the next action that a developer needs to take. Rather, it merely focusses on traits that may be missing from the source-code entity, such as which methods should potentially be overridden by some class, which source-code template might be suitable for the currently browsed method, or which calls to methods or referenced types are likely missing from a method.
- Current state
- research prototype
- Contributor(s)
- Angela Lozano, Andy Kellens, Kim Mens
- Website
- http://soft.vub.ac.be/mendel/
- Related Publications
- Mendel: Source Code Recommendation based on a Genetic Metaphor. Angela Lozano, Andy Kellens, Kim Mens. Proceedings of the 26th IEEE/ACM international conference on Automated Software Engineering (ASE 2011).