Mendel

The logo image filename. You will have to upload it by clicking on the Attach link after saving this page.

The screenshot image filename. You will have to upload it by clicking on the Attach link after saving this page. Do not forget to fill the caption below.

The list of contributors to the project. The best is to link towards their profile page on this site

Ex. Kim Mens

A list of tags separated by blank spaces.

Tags
, , , , ,
Mendel is a source code recommendation tool that integrates with the Cincom VisualWorks Smalltalk IDE. Based on the entity the developer currently browses, Mendel 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.

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.

This screenshot shows Mendel opened on a class; it proposes a recommendations that must be implemented for the class ExistsManyQuantifier.
This screenshot shows Mendel opened on a class; it proposes a recommendations that must be implemented for the class ExistsManyQuantifier.
Current state
research prototype
Contributor(s)
Angela Lozano, Andy Kellens, Kim Mens
Website
http://soft.vub.ac.be/mendel/
Related Publications

Tags Tags: , , , , ,