@INPROCEEDINGS{pberg-lieber:ecoop,
AUTHOR = "Paul Bergstein and Karl Lieberherr",
TITLE = "Incremental Class Dictionary Learning and Optimization",
BOOKTITLE = "ECOOP",
YEAR = "1991",
ADDRESS = "Geneva, Switzerland",
PAGES = "377-396",
PUBLISHER = "Springer Verlag Lecture Notes 512"
}

Paper | DemeterF Homepage.

Notes by Karl:

The paper formalizes what goes on in the mind of an object-oriented designer when the requirements change and additional objects need to be considered. How has the class graph to change? The class graph may be empty initially and the algorithm serves also as a non-incremental design algorithm. We call it the Demeter Class Learner.

The Demeter Class Learner deserves to be implemented as an Eclipse plug-in to help pogrammers to evolve their UML class diagrams.

AP tools like DemeterF can statically check whether the program needs to be updated by type-checking the program with the new class graph. DemeterF only excludes a category of class graphs and others may not be caught.

The source code lives in the Demeter/C++ system, implemented by Crista Lopes as a class project in Demeter/C++.

http://www.ccs.neu.edu/research/demeter/tools/master/src/cd-learn/README

Ho much nicer would this code look in DemeterF?