http://www.ccs.neu.edu/home/lieber/courses/csu670/sp04/project/clarifications.txt

Feb. 25:
---------------------------------------------------------------------

For node sets, only classes on the left-hand-side of =,:,~
need to be highlighted.

=========================

The highlighted class dictionary is based on the
expanded class dictionary that is produced
by DemeterJ in gen/*.xcd

demeterj generate
will generate that file.

But a more lightweight solution is to 
use the API of DAJ on Source Forge: 
pull the expansion code out from DemeterJ or DAJ.

public static File generateExpandedClassDictionary(ClassGraph cd,
                                                   String name,
                                                   File gendir)
                                            throws IOException

    Generate an expanded class dictionary (.xcd) file from a class dictionary. 

    Parameters:
        cd - a class dictionary
        name - the name of the class dictionary
        gendir - the output directory for the generated file 
    Returns:
        the generated file 
        IOException

Therefore, besides Eclipse you also use DAJ, and of course DJ.
=========================

March 10, 2004

1.
http://www.ccs.neu.edu/home/lieber/courses/csu670/f03/materials/eclipse/
is the location of Eclipse Lab exercises.

2.
It is important to the customers that the model is separate from the
view. Therefore, we implement the model first. And the view is added
afterwards. It is important to follow the Model-View-Controller (MVC)
pattern.
Reason: show the view change later, the model should not require
any change.


3.
You are required to do a growth plan for phase 2 (=model phase) of the
project but it must include GraphNodes.
The grading will be:

Extra points:
NodeSubsetName 1 point
ClassNameSet   2 points
GraphNodeRegExp 3 points
Compound        4 points

4.
In the final application it is important to the customers
that they can view 
two SelectorLanguage editor windows and their result 
windows side by side. (window pair: input = (ss,sns,selected,cd), 
output = (cd-normalized, cd-selected))

For example, in one window pair we show 
input = (ss1,sns, selected,cd1),
output = (cd1-normalized, cd-selected1)

In the other:
input = (ss1,sns, selected,cd2),
output = (cd2-normalized, cd-selected2)

This shows us visually how the scope of a strategy changes
when the class dictionary changes.

March 18, 2004
===================================================================

Requirement analysis revealed the information loss problem:
The highlighted class graph loses information.

Possible solutions:

1. Warn the user when this happens using the algorithm in the TOPLAS 1995 paper.
http://www.ccs.neu.edu/research/demeter/biblio/compile-ap.html
(Compositional consistency checker)

2. Use multiple colors, one for each strategy edge.
http://www.ccs.neu.edu/research/demeter/biblio/strategies.html
Each copy of the class graph corresponds to a different color.

3. Show regular expression for path set in addition to highlighted information.
http://www.ccs.neu.edu/research/demeter/biblio/compile-ap.html

It is up to the teams to select a suitable solution. This is an excellent 
source of extra credit points.

We clarified for phase 3:

In the selector language editor all tokens of the SelectorLanguage such as
||, &&, !, *, strategies, node, sets, class, dictionary, from, to, etc.
need to be highlighted. The highlighting happens during typing.

In phase three the functionality of phase two is made available through
a button or menu-entry of your choice. When the button is pressed 
or the item selected, the cd-normalized and the cd-selected are 
printed in the result window.