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