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.