Hi Jon: here is Stelios' report about the projects. It would be great if you could integrate the best programs into a cd-check program to be used by my class in January. Some projects are written in DemeterJ and run much faster. Does it make sense to reuse those for an integrated solution? It is not only correctness that is important but also ease of maintenance. -- Karl Report for outputs produced by running the projects. The name of the output file matches that of the project's directory from where the files were copied. All outputs can be found at /proj/lieber2/stelios/runs/output/ They are compared with sample. The programs were tested with /proj/lieber2/stelios/runs/runscript Files ****************************************************** -jprince John Prince Jean Travers Definition: 100 Inheritance cycle: 100 Multiple inheritance : 100 Unique parts: 100 TBR: 75 Flatten: 100 Problem in checking terminal buffer rule. Goes into List when should not. Also seems to not check for common. Extra: Passed the final input with a small mistake ****************************************************** -mleary Mark Leary Definition: 70 Inheritance cycle: 90 Multiple inheritance : 70 Unique parts: 90 TBR: 20 Flatten: 0 Problems: No multiple definition. Detects problem with inheritance cycle but does not report cycle. Also it reports problems with unique parts when it should not. Problem with multiple inheritance. Throws exception on test2. Unique parts throws errors that are not correct. And there are some problems in detecting correct cases. Major problem with TBR rule. It is not working correctly. Detects problem where there is no problem. Flattening does not work. Produced several errors on the final.input file. ****************************************************** -aagunw Claudine Mulumba Melody Amirhossein Akochi Agunwamba Definition: 90 Inheritance cycle: 90 Multiple inheritance : 60 Unique parts: 70 TBR: 50 Flatten: 95 Definition checking does not detect all problems. It stops detecting and aborts when a problem is found. Multiple inheritance does not work so well. TBR only detects first problem and then aborts. Also has detected a problem when it should not. Unique parts also detects first problem and then aborts. Flattening works almost perfectly. ****************************************************** -bmollo Brian Mollo Brendan Coffey Ed Racke Matt Cox Definition: 60 Inheritance cycle: 0 Multiple inheritance : 95 Unique parts: 80 TBR: 0 Flatten: N/A Very Fast Program Complicated output Does not check for multiple definition. They did not detect that c was not defined in definition/test4. They did not check the second part of the alternation class obviously to find out that c was not defined. Did not detect cyclic inheritance. Their multiple inheritance test works but prodeuces a message that is not so well written. Unique parts does not work so well. it does not detect all problems. Failed unique/test1. Nothing was reported concerning terminal buffer rule. I could not tell if flattening worked because the did not report anything for TBR. ****************************************************** -stophies Christopher Galatioto Dan Seto They have their project separated into directories. This makes it very difficult to test it with the script and produce one output file. I had to test it manually. Definition: 90 Inheritance cycle: 0 Multiple inheritance : 0 Unique parts: 100 TBR: 0 Flatten: 0 Flattening does not work. Some test cases could not be parsed by their program. Because the program was broken into each case there were problems with files containing more than one errors. Cyclic and multiple inheritance and TBR does not work even with their own input. I tried demeterj test into their directories but nothing. ****************************************************** -ehom Edward Hom Christian D. Nogueira Definition: 80 Inheritance cycle: 100 Multiple inheritance : 60 Unique parts: 80 TBR: 75 Flatten: 0 Does not check for multiple definition. It detects multiple inheritance but not quite well. Java throws an exception about multiple inheritance when their project is running with some cases. Does not detect all cases of unique parts. Their terminal buffer rule reports error when not. Flattening test failed. ****************************************************** -emccormi Edward J. McCormick Yevgeniy Khodush William Thornhill Definition: 80 Inheritance cycle: 100 Multiple inheritance : 100 Unique parts: 50 TBR: 50 Flatten: 100 Does not check multiple definition. Unique parts test does not work well. Incorrect TBR error detection. Detects errors and correct cases as well. Extra: Passed the final.input with only problems in the TBR checking. ****************************************************** -wansau Wan Sau Wong Shaun Dewitt Jae-Young Heo Definition: 80 Inheritance cycle: 100 Multiple inheritance : 50 Unique parts: 100 TBR: 100 Flatten: 100 Does not check for multiple definition. Does not work well for multiple inheritance. Extra: Passed the final.input test giving the correct output. The only program who did that. I think this would worth extra points. ****************************************************** -jdmarks Julian Marks Definition: 0 Inheritance cycle: 0 Multiple inheritance : 100 Unique parts: 100 TBR: 0 Flatten: N/A Prints messages to standard error. So look jdmarks.error. Definition does not work correctly. Reports everything as undefined. Cyclic inheritance does not detect cycles. No output for TBR. Has not implemented it? I cannot figure out anything about flattering without TBR checking. ****************************************************** -joel Earl Kinney Joel Parker Definition: 60 Inheritance cycle: 100 Multiple inheritance : 50 Unique parts: 100 TBR: 100 Flatten: 100 Exceptions were thrown into some cases. So I only evaluated the output that was parsed correctly. Did not detect undefined c in definition/test4 Did not pass multiple inheritance test2 ****************************************************** -lasber Louis Asber Project not working. His prj file has incorrect entries for the behavior files. He did not used .beh at a couple of them. I manually changed it. When compiling project, one of his behavior files throwed an exception. I will not change his entire program to make it work. I cannot understand how he created a report and claimed that the project works. I have the suspicion that he has not tested it and it does not work. He might have copied the output from John Prince's directory because they look identical. Definition: Inheritance cycle: Multiple inheritance : Unique parts: TBR: Flatten: ****************************************************** -echrist Ed Christian Definition: 80 Inheritance cycle: 0 Multiple inheritance : 0 Unique parts: 50 TBR: 0 Flatten: 100 Does not check multiple definition. Does not report cyclic or multiple inheritance at all. Some detection for unique parts but the output produced is not helpful at all. No output for TBR. Flatten seems to be ok. Passed the final test with some mistakes. But this might be because it does not detect half of the problems. ****************************************************** -abbasi Aatif Rehman His project throwed many exceptions. It worth seeing the .error file. Definition: 80 Inheritance cycle: 80 Multiple inheritance : 100 Unique parts: 30 TBR: 0 Flatten: 90 Does not checks for multiple definition. Works almost well with cyclic inheritance. Unique parts has not a clear message just throws exception. No TBR detection. Flattening is almost perfect. ****************************************************** -jvm615 Joe Martino His project has no .prj file. So it does not compile. Definition: Inheritance cycle: Multiple inheritance : Unique parts: TBR: Flatten: ******************************************************