Dr. Michael L. Collard (Schedule)
collard@uakron.edu
TA: Mr. Andrew Murphy alm282@uakron.edu
Finals Week
Project 4 Scores and feedback posted:
Please review the feedback as it may relate to your UML.pdf part of the XMLFramework Project, and the material on implementing extension points for the Final Exam.
Your XMLParser reads from standard input, or file descriptor 0. If you want to read from a file, then you can redirect from the file to file descriptor 0. An example program, filein.cpp shows how to do this.
The number of @TODO
s which are optional/extra credit is 6. It doesn't matter which ones these are.
The project is a critical part of your overall grade in the course, and parts of the project count toward 25% of the questions on the Final Exam. Consider this as a take-home part of the Final Exam. No matter how you performed on the previous projects, you need to work on this project.
The project is due by 11:59:59 pm on Friday, May 5. The project consists of the following:
The open-layered architecture framework, XMLFramework, supports all of this and includes:
There is a lot of code in the project already. The primary task is to finish the remaining @TODOs. Some examples are:
// @TODO Add to the factory method so that it generates the correct parser
// @TODO Apply encapsulation and information hiding
// @TODO Apply the const specifier to methods where applicable
// @TODO Create a Filter that outputs XML statistics
// @TODO Declare a XMLParserHandler for XMLParser to use
// @TODO Declare the class XMLParserDocumentHandler which inherits from XMLParserHandler
// @TODO Enforce that no one can inherit from XPathFilter
// @TODO Implement the XMLDocumentHandlerParser
// @TODO Integrate use of XMLDocumentHandlerParser into this method
// @TODO Make it so that there is only one parser object in the entire
// @TODO Remove any unused include files
// @TODO Remove need for destructor definition
// @TODO Remove unused include files
// @TODO Replace this code with a call to the action of the class MacroFilter
// @TODO Replace with an instance of a MacroFilter
// @TODO Use override where appropriate
The @TODO
s that involve integrating your XMLParser into the framework are not required and, if completed, will count as extra credit for the projects.
The work involved is:
@TODO
s@pattern
and @role
comments. A class can participate in multiple roles in multiple patterns.Notes:
git grep
works well. For all the lines of code that contain @TODO
, enter the command git grep "@TODO"
in the project's top directory. To see only the filenames, git grep -l "@TODO"
. The command depends on the directory where you issue the command, e.g., if in the directory framework; the results are for that directory and its subdirectories. A command for a comprehensive report of which @TODO
s are left:
More on this command