Introdução à Modelação com UML/Galinha com fome

From Wiki**3

< Introdução à Modelação com UML
Revision as of 21:51, 4 November 2013 by Root (talk | contribs) (Created page with "Este exercício saiu no teste de 2012/01/30. == Problema == Considere o seguinte programa em Java: <java5> public class Chicken { private Stomach _stomach = new Hungry(); ...")

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Este exercício saiu no teste de 2012/01/30.

Problema

Considere o seguinte programa em Java:

<java5> public class Chicken {

 private Stomach _stomach = new Hungry();
 public void eat()   { _stomach.eat();   }
 public void sleep() { _stomach.sleep(); }
 public void setMood(Stomach stomach) { _stomach = stomach; }

}

public abstract class Stomach {

 protected Stomach() { System.out.println("Hmmm..."); }
 public void eat()   { System.out.println("..."); }
 public void sleep() { System.out.println("..."); }

}

public class Hungry extends Stomach {

 public Hungry()     { System.out.println("I'm hungry!!"); }
 public void eat()   { System.out.println("Eating..."); }
 public void sleep() { System.out.println("I'm too hungry to sleep!!"); }

}

public class Sated extends Stomach {

 public Sated()      { System.out.println("I'm sleepy!!"); }
 public void eat()   { System.out.println("I'm not hungry..."); }
 public void sleep() { System.out.println("ZzZz..."); }

}

public class Farm {

 public static void main(String args[]) {
   Chicken chicken = new Chicken();
   chicken.eat();
   chicken.setMood(new Sated());
   chicken.sleep();
   chicken.setMood(new Hungry());
   chicken.sleep();
 }

} </java5>

Desenhe o diagrama de sequência UML correspondente à execução do programa, incluindo as etapas de criação dos objectos. O diagrama de sequência deve conter os nomes das mensagens trocadas (não é necessário representar os argumentos dessas mensagens nem as de retorno; represente todas as chamadas ao método println).

Solução

Note-se que alguns objectos (anotados) não definem as variáveis associadas no momento indicado.

PO-20120130-seq.png