Project by:
Louis B. Asber
Project Description: This project is a Class checker for undefined classes, parts, Terminal Buffer Violations, Multiple Class inheritance, and Inheritance cycles. The checks alert a user of compile-time errors and is specific in indicating what the issues actually are.
| Source: | Input: | Output: | |
|
Class Dictionary |
|||
|
Demeter Project File |
|||
|
Behavior file for main |
|||
|
Behavior file for displaying the Class Graph |
|||
|
Behavior file for un-defined classes check |
|||
|
Behavior file for unique parts check |
|||
|
Behavior file for TBR exceptions check |
|||
|
Behavior file for Inheritance Cycles check |
|||
|
Behavior file for Multiple Inheritance check |
Credits:
|
Source code for Vertex contruction was neeeded for the Termination Buffer Rule check. This code was suggested in class. This code can be found in full at: www.ccs.neu.edu/research/demeter/DemeterJava/use/latest-demjava/aplib/cd/utils.beh |
Growth Plan:
|
Phase 1 |
Begin the check for un-defined Classes. This check should find any classes that are not defined in the class dictionary. |
|
Phase 2 |
Complete phase 1, begin coding on check for unique parts. |
|
Phase 3 |
Complete phase 2, begin TBR check |
|
Phase 4 |
Complete phase 3, complete coding on multiple inheritance and begin on inheritace cycles. |
|
Phase 5 |
Complete inheritance cycles and complete any unfinished development. Write Flattening function for Class Graphs. |
Did I change the generated code?
|
No, the source code was not changed after the generations took place. |
Further Development?
Acknowledgments:
|
I would like to thank Akochi A., Jullian Marks, and Mike Buckley for all their help. They were always willing to give me advice or help look at an issue I was having and give me a hand. Thanks again. |
Code Quarks
|
When checking for undefined classes, my check can return the same error message on the same class. This is because I did not implement a check to insure that when reporting if the class was undefined, the check itself had not reported it before. The TRB does not work on un-flattened Class Graphs. A function that provided this ability is really needed to get the full use of this and other checks. |