Criterion B - Solution Overview

Instructions and Advice - Class Diagrams


Structures to Use

You really should be using either ArrayList or LinkedList, rather than arrays. So use LinkedList if you are able to apply either a stack or a queue, and an ArrayList for everything else.

You should also look for opportunities to use polymorphism, with both overloaded constructors and overriding, and inheritance, even if pretty simple.


Class Diagrams - You will use UML (Universal Modeling Language) Class Diagrams for this.
Use OmniGraffle (downloadable application) or www.draw.io, free on the internet.

Following is a diagram which shows you exactly how you should do things. Pay particular attention to how parameters and return values are put in, along with the + and - of public and protected attributes/methods. If you look at the others suggested by this Google image search in the "Try these too:" area, you will see lots more examples, and though not thoroughly consistent, they will help you get the idea.

UML diagram of a template class

Export your chart as a jpeg and put it in your the Word document you will upload. (And note that with all your OmniGraffle work for your dossier, export before the 14 day trial is up, or you won't be able to.)

Likely Classes

I wouldn't want everybody's class structure to be exactly the same, but on the other hand it's perfectly natural that they will be similar.

- For sure you will all have one GUI, and you may even want, for some reason, to have another (ask me how to implement this if you want).

And as attributes, for now, you don't have to put all the elements (all the textFields and buttons etc.), but do put in a representative few, and any major ones, like tables.

- You should all have at least one template class, with its attributes, gets and sets, and probably other methods.

- If you will be searching and sorting, I would prefer that you make a separate specialized class for this.

- And then for any other specialized stuff that your program may do, it may very well make sense to do this in a specialized class, from which you make an instance in the GUI.

For an idea of the kinds of class structures that you will have, find any of the quite involved projects we did, such as the Movie database.


GUI Class Example