Introdução à Modelação com UML/Caixas, coisas e peças

From Wiki**3

< Introdução à Modelação com UML
Revision as of 21:46, 4 November 2013 by Root (talk | contribs) (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...")

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

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 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();
 }

} </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

File:Po12-umlseq20130204t2.png