Goal: To apply the Object Oriented concepts and
patterns that you have learned in this class in a moderately
sized project.
Details
Requirements
-
The project should be around 1200 - 1500 lines of code (LOC). Up to
300 LOC counted can be unit tests (but you are
encouraged to write more than that). If you choose to
not write any unit tests you still need to write 1200 lines. The
lines of code will be measured using an automated tool,
javancss
that is free software distributed under the GNU GPL. You can use it
throughout the project to track your progress towards the goal.
-
You should use at least 3 different design patterns in
your design, with at least 5 applications of those
patterns. Two of the patterns have to be
non-creational. What this means for most of you is 5
different patterns. Some of you may want to use the same
pattern more than once, but you have to use at least 3.
This is a minimum, but don't force a pattern in where it
isn't needed. You won't get extra points for adding
more patterns, but if they are used correctly it can help
your grade.
-
The design should consist of at least 20 classes or
interfaces.
-
The design should consist of at least 2 packages.
-
GUIs (Swing/JFC or AWT) are allowed
, but be very careful. There are way too many
distractions for those who spend too much time on a GUI, and
way too many ways to get behind. Remember, if your design is
good, it will be easy to add a GUI later if you want.
-
I encourage you to bring
your project in to the lab and do a dry
run before your final presentation.
-
Use javadoc tags on every public method (@param,
@return, @throws), and on every class (@author). Run
the javadoc tool on your code early and often to make
sure it looks good. You will be submitting an electronic copy of
the javadoc of
your project. (There is an ant task for this in the
supplied build.xml file, or you can run the javadoc
tool from the command line.)
-
You will be required to submit documentation (hard copy)
of your project at your project presentation. This will
consist of UML diagrams, a user manual, and a report.
-
You will be required to submit source code, javadoc, and
scripts to run your project (or if scripts aren't needed, just
instructions on how to
run it from the command line in your user manual) using
the COL system.


