Sistema de um Zoológico

Galera,

Estou com o seguinte trabalha para entregar na faculdade.

Faça um programa em JAVA que simule o comportamento de diversos tipos de animais diferentes em um ambiente. Alguns dos animais (leão, hipopótamo, tigre, cachorro, gato, lobo) são conhecidos, mas não todos. Cada animal será representado por um objeto e os objetos se moverão dentro de um ambiente, fazendo o que cada tipo específico for programado para fazer.
No momento que o programa é executado, ele irá perguntar quantos animais serão criados e quantos ?passos? serão executados. Cada passo representa uma determinada quantidade de tempo em que o animal esteve acordado. Depois de cada passo o animal consumirá uma certa quantia de comida, andará determinadas distâncias, entre outras coisas. No término do programa será exibido o consumo total do animal e a distância percorrida.
A partir das exigências desse programa, você deverá ampliar as funcionalidades de tal forma que em seu programa possam ser identificados os conceitos OO estudados em sala: polimorfismo, sobrecarga, sobreposição, abstração, interface, ArrayList, entre outros.

Alguém poderia me ajudar de como começar na modelagem das classes?

Dê mais detalhes.