Difference between revisions of "Introdução à Modelação com UML/Caixas, coisas e peças"

From Wiki**3

< Introdução à Modelação com UML
(Created page with "Este exercício saiu no teste de 2013/02/04. == Problema == Considere o seguinte programa em Java: <java5> abstract class Thing { public abstract String doIt(); public Str...")
 
(Problema)
 
Line 5: Line 5:
 
Considere o seguinte programa em Java:
 
Considere o seguinte programa em Java:
  
<java5>
+
<source lang="java">
 
abstract class Thing {
 
abstract class Thing {
 
   public abstract String doIt();
 
   public abstract String doIt();
Line 42: Line 42:
 
   }
 
   }
 
}
 
}
</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:32, 3 December 2018

Este exercício saiu no teste de 2013/02/04.

Problema

Considere o seguinte programa em Java:

abstract class Thing {
  public abstract String doIt();
  public String toString() { return doIt(); }
}

class Blob extends Thing {
  public String doIt() { return "a blob"; }
}

class Something {
  public String doSomething() { return "something"; }
}

class Piece extends Thing {
  Something _else;
  public Piece(Something something) { _else = something; }
  public String doIt() { return _else.doSomething(); }
}

class Box {
  private Thing _thing;
  public Box(Thing t) { _thing = t; }
  public void open() {
    System.out.println("The box contains " + this);
  }
  public String toString() { return _thing.toString(); }
}

public class App {
  public static void main(String args[]) {
    Box b1 = new Box(new Blob());
    Box b2 = new Box(new Piece(new Something()));
    b1.open();
          b2.open();
  }
}

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

File:Po12-umlseq20130204t2.png