Difference between revisions of "Introdução à Modelação com UML/Animais, gatos, vacas, comida"

From Wiki**3

< Introdução à Modelação com UML
(Created page with "Este exercício saiu no teste de 2013/01/17. == Problema == Considere o seguinte programa em Java: <java5> public abstract class Animal { private String _name; protected A...")
 
(Problema)
 
Line 5: Line 5:
 
Considere o seguinte programa em Java:
 
Considere o seguinte programa em Java:
  
<java5>
+
<source lang="java">
 
public abstract class Animal {
 
public abstract class Animal {
 
   private String _name;
 
   private String _name;
Line 49: Line 49:
 
   }
 
   }
 
}
 
}
</java5>
+
</source>
  
 
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).
 
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).

Latest revision as of 20:33, 3 December 2018

Este exercício saiu no teste de 2013/01/17.

Problema

Considere o seguinte programa em Java:

public abstract class Animal {
  private String _name;
  protected Animal(String name) { _name = name; }
  public final void processFood(Food food) {
    eat(food);
    digest(food);
  }
  public void eat(Food food) { System.out.println(_name + " ate " + food); }
  public abstract void digest(Food food);
}

public class Cow extends Animal {
  public Cow(String name) { super(name); }
  public void digest(Food food) {
    System.out.println("Using chambers 1 and 2");
    System.out.println("Using chambers 3 and 4");
  }
}

public class Cat extends Animal {
  public Cat(String name) { super(name); }
  public void eat(Food food) {
    super.eat(food);
    System.out.println("Ate some fur!");
  }
  public void digest(Food food) {
    System.out.println("Using stomach on " + food);
    System.out.println("Expelling fur ball");
  }
}

public class Food {
  public String toString() { return "some food"; }
}

public class App {
  public static void main(String args[]) {
    Animal cow = new Cow("Daisy");
    Animal cat = new Cat("Puss");
    cow.processFood(new Food());
    cat.processFood(new Food());
  }
}

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

Po12-umlseq20130117.png