software design
THE MISSION SHOULD YOU CHOSE TO ACCEPT IT
-----------------------------------------
Is to design an application to maintain information about a jungle.
The app is standalone not web based.
The app will be referred to from now on as FUN
The app need only operate on one jungle, so there is
no need to differentiate between jungles. That will come in version two.
The jungle will have monkeys.
These monkeys will have attributes such as type, temperament,
diet, bedtime, etc..
They will also have bananas.
They may have no bananas or multiple bananas.
The bananas will have attributes.
such as color, type, ripeness, etc...
The bananas will have dependency rules that must be enforced.
(If you don't understand the last one I will fire whomever
did requirements engineering on this project)
When the information about this jungle is consider
correct it will be "published"
Published can mean anything but probably means moving it to
another database or system.
--------------------------------------------
First step:
Whiteboard out a use case tree or diagram until you feel it
captures all pertinent functions. Then formalize this in a
use case navigation map.
Here is what I came up with.
Use Case Navigation Map
Next:
Formalize each use case in the use case navigation map.
Here is use case number 1.
FUN-1
Here is use case number 4.
FUN-4
After all the use casses are done. Have a brainstorm/discussions
whiteboard sessions and meetings (if necessary) to determine the
correct architecture.
At the high level this should be MVC utilizing hibernate and swing.
Here are a couple of high level MVC diagrams.
MVC Architecture
MVC Sequence Diagram
Here is a high level class diagram for FUN application. I have
incorperated some classic design patterns here.
FUN Class Diagram