The purpose of the project is to encourage you to explore and understand the patterns discussed in the course. So your goal is to use the features of the language correctly and appropriately. The language of implementation is C++ or Java or another object-oriented language. While design patterns and examples are publicly available your example implementation must be your own work and full references must be made to all websites used, books and articles read.
0. The assignment must be based on taking an object-oriented "pattern" and developing it into a working example set of classes. In other words creating a small application to try out a pattern.
1. Develop 4 or more classes up to a "canonical class" standard. (see lecture notes online)
2. The area of application is open to you but beware of "database-type" applications as they often involve a lot of repetition
.("database-type" applications: projects that spend most of their time on input and output of data for objects with little regard for operations, a set of classes representing different cars/boats/vehicles would be bad examples for this assignment)
Also the pattern CANNOT JUST be FACTORY, SINGLETON or FACADE or any of the simple "patterns" (really idioms) of Lethbridge as these are too simple. If you use multiple patterns then it may be okay to have one or two of them simple.
3. Link some of the classes appropriately using inheritance.
4. Use the features of the language (such as for C++: Templates, friends, virtual, iterators, abstract classes) , (for java interfaces, exceptions, dictionaries etc.) to develop 5 or more member functions per class.
5. I would recommend that you take an aspect of your final year project and try out a pattern solution for it. Use the assignment as a chance to research a small part of the project - you can obviously throw away the code but you will have gained through the investigation. Thus you would get a double benefit for the work.
6. Provide:
For example:http: //student.computing.dcu.ie/~Your-login-name /ca421project.html
The name must be set up like this as it will be read by a script and it is your responsibility to get it right.
Because of web access projects MUST be delivered on time.
There will be a 50% penalty for 2 days delay and they will not be accepted after one week.