inf1404 – modelagem de sistemasivan/prominp/notasaula/ms-cap-09.pdf · 2009. 9. 23. · inf1404...
TRANSCRIPT
![Page 1: INF1404 – MODELAGEM DE SISTEMASivan/PROMINP/NotasAula/MS-CAP-09.pdf · 2009. 9. 23. · INF1404 – MODELAGEM DE SISTEMAS Bacharelado em Sistemas de Informação Ivan Mathias Filho](https://reader031.vdocuments.pub/reader031/viewer/2022012001/607dd895dfb252604e2e5714/html5/thumbnails/1.jpg)
1
INF1404 – MODELAGEM DE SISTEMAS
Bacharelado em Sistemas de Informação
Ivan Mathias Filho
Programa – Capítulo 9
• A Modelagem Dinâmica
• Diagramas de Interação
• Diagrama de Seqüência
© LES/PUC-Rio
![Page 2: INF1404 – MODELAGEM DE SISTEMASivan/PROMINP/NotasAula/MS-CAP-09.pdf · 2009. 9. 23. · INF1404 – MODELAGEM DE SISTEMAS Bacharelado em Sistemas de Informação Ivan Mathias Filho](https://reader031.vdocuments.pub/reader031/viewer/2022012001/607dd895dfb252604e2e5714/html5/thumbnails/2.jpg)
2
Programa – Capítulo 9
• A Modelagem Dinâmica
• Diagramas de Interação
• Diagrama de Seqüência
© LES/PUC-Rio
Modelagem dinâmica
• Todo sistema pode ser decomposto segundo aspectos estáticos e dinâmicos;
• Os modelos dinâmicos capturam os detalhes da troca de mensagens entre os objetos de uma aplicação;
• Uma mensagem é simplesmente um operação que um objeto aplica sobre outro;
© LES/PUC-Rio
• As interações definem colaborações entre os objetos, e têm por objetivo fornecer os serviços que os usuários de um sistema necessitam.
![Page 3: INF1404 – MODELAGEM DE SISTEMASivan/PROMINP/NotasAula/MS-CAP-09.pdf · 2009. 9. 23. · INF1404 – MODELAGEM DE SISTEMAS Bacharelado em Sistemas de Informação Ivan Mathias Filho](https://reader031.vdocuments.pub/reader031/viewer/2022012001/607dd895dfb252604e2e5714/html5/thumbnails/3.jpg)
3
Dinâmica de um sistema
Estímulo Externo
© LES/PUC-Rio
Resposta
Interações entre objetos
Objeto B
Objeto AObjeto C
© LES/PUC-Rio
Objeto D
![Page 4: INF1404 – MODELAGEM DE SISTEMASivan/PROMINP/NotasAula/MS-CAP-09.pdf · 2009. 9. 23. · INF1404 – MODELAGEM DE SISTEMAS Bacharelado em Sistemas de Informação Ivan Mathias Filho](https://reader031.vdocuments.pub/reader031/viewer/2022012001/607dd895dfb252604e2e5714/html5/thumbnails/4.jpg)
4
Envio de mensagem
void UmMetodoA(int p){
Ti C C Ti C()TipoC C = new TipoC();String S= C.UmMetodoC(p);
}
© LES/PUC-Rio
Objeto A Objeto CString
Programa – Capítulo 9
• A Modelagem Dinâmica
• Diagramas de Interação
• Diagrama de Seqüência
© LES/PUC-Rio
![Page 5: INF1404 – MODELAGEM DE SISTEMASivan/PROMINP/NotasAula/MS-CAP-09.pdf · 2009. 9. 23. · INF1404 – MODELAGEM DE SISTEMAS Bacharelado em Sistemas de Informação Ivan Mathias Filho](https://reader031.vdocuments.pub/reader031/viewer/2022012001/607dd895dfb252604e2e5714/html5/thumbnails/5.jpg)
5
• A UML provê dois tipos de diagrama – genericamente chamados de diagramas de interação – para representar a troca de mensagens entre objetos:
Diagramas de interação
– Diagrama de Seqüência;
– Diagrama de Comunicação.
© LES/PUC-Rio
Diagrama de seqüência
public class Apublic class A{private B myB=new B();
public void doOne(){
myB.doTwo();myB.doThree();
}
© LES/PUC-Rio
// ...}
![Page 6: INF1404 – MODELAGEM DE SISTEMASivan/PROMINP/NotasAula/MS-CAP-09.pdf · 2009. 9. 23. · INF1404 – MODELAGEM DE SISTEMAS Bacharelado em Sistemas de Informação Ivan Mathias Filho](https://reader031.vdocuments.pub/reader031/viewer/2022012001/607dd895dfb252604e2e5714/html5/thumbnails/6.jpg)
6
Diagrama de comunicação
public class Apublic class A{private B myB=new B();
public void doOne(){
myB.doTwo();myB.doThree();
}
© LES/PUC-Rio
// ...}
Quadro comparativo
© LES/PUC-Rio
![Page 7: INF1404 – MODELAGEM DE SISTEMASivan/PROMINP/NotasAula/MS-CAP-09.pdf · 2009. 9. 23. · INF1404 – MODELAGEM DE SISTEMAS Bacharelado em Sistemas de Informação Ivan Mathias Filho](https://reader031.vdocuments.pub/reader031/viewer/2022012001/607dd895dfb252604e2e5714/html5/thumbnails/7.jpg)
7
Programa – Capítulo 9
• A Modelagem Dinâmica
• Diagramas de Interação
• Diagrama de Seqüência
© LES/PUC-Rio
Linha de vida
• O diagrama de seqüência é organizado em torno do conceito de linhas de vida;
• Uma linha de vida é um termo pouco preciso da UML, mas, informalmente, ela corresponde a um participante da interação;
• Não é correto afirmar que uma linha de vida corresponda a uma instância de uma classe, mas, na prática, os
© LES/PUC-Rio
, , p ,participantes quase sempre serão interpretados como tal.
![Page 8: INF1404 – MODELAGEM DE SISTEMASivan/PROMINP/NotasAula/MS-CAP-09.pdf · 2009. 9. 23. · INF1404 – MODELAGEM DE SISTEMAS Bacharelado em Sistemas de Informação Ivan Mathias Filho](https://reader031.vdocuments.pub/reader031/viewer/2022012001/607dd895dfb252604e2e5714/html5/thumbnails/8.jpg)
8
Instância anônima
© LES/PUC-Rio
Instância nomeada
© LES/PUC-Rio
![Page 9: INF1404 – MODELAGEM DE SISTEMASivan/PROMINP/NotasAula/MS-CAP-09.pdf · 2009. 9. 23. · INF1404 – MODELAGEM DE SISTEMAS Bacharelado em Sistemas de Informação Ivan Mathias Filho](https://reader031.vdocuments.pub/reader031/viewer/2022012001/607dd895dfb252604e2e5714/html5/thumbnails/9.jpg)
9
Coleções
© LES/PUC-Rio
Metaclasse
© LES/PUC-Rio
![Page 10: INF1404 – MODELAGEM DE SISTEMASivan/PROMINP/NotasAula/MS-CAP-09.pdf · 2009. 9. 23. · INF1404 – MODELAGEM DE SISTEMAS Bacharelado em Sistemas de Informação Ivan Mathias Filho](https://reader031.vdocuments.pub/reader031/viewer/2022012001/607dd895dfb252604e2e5714/html5/thumbnails/10.jpg)
10
Interface
© LES/PUC-Rio
Mensagem
• Uma mensagem é a especificação de uma comunicação entre objetos;
• O recebimento de uma mensagem dispara uma ação no objeto receptor – em geral, a execução de uma operação;
• Uma ação poderá resultar na mudança de estado do objeto receptor ou nos objetos acessíveis a partir dele.
© LES/PUC-Rio
![Page 11: INF1404 – MODELAGEM DE SISTEMASivan/PROMINP/NotasAula/MS-CAP-09.pdf · 2009. 9. 23. · INF1404 – MODELAGEM DE SISTEMAS Bacharelado em Sistemas de Informação Ivan Mathias Filho](https://reader031.vdocuments.pub/reader031/viewer/2022012001/607dd895dfb252604e2e5714/html5/thumbnails/11.jpg)
11
Expressão de mensagem
<retorno> = <nomeMensagem> (<parâmetro> : <tipoParâmetro>) :
<tipoRetorno>
• Exemplos:
– inicializa( )
– inicializa(codigo)
d tE ifi P d(id)
© LES/PUC-Rio
– d=getEspecificacaoProd(id)
– d=getEspecificacaoProd(id:int)
– d=getEspecificacaoProd(id:int):String
Tipos de mensagem
• Call – invoca uma operação sobre um objeto;
• Return – retorna um valor para quem enviou a mensagem;p q g ;
• Send – Envia um sinal para um objeto (comunicação assíncrona);
• Create – Cria um objeto;
© LES/PUC-Rio
• Destroy – Destrói um objeto.
![Page 12: INF1404 – MODELAGEM DE SISTEMASivan/PROMINP/NotasAula/MS-CAP-09.pdf · 2009. 9. 23. · INF1404 – MODELAGEM DE SISTEMAS Bacharelado em Sistemas de Informação Ivan Mathias Filho](https://reader031.vdocuments.pub/reader031/viewer/2022012001/607dd895dfb252604e2e5714/html5/thumbnails/12.jpg)
12
Notação
© LES/PUC-Rio
Mensagens - Exemplo
© LES/PUC-Rio
![Page 13: INF1404 – MODELAGEM DE SISTEMASivan/PROMINP/NotasAula/MS-CAP-09.pdf · 2009. 9. 23. · INF1404 – MODELAGEM DE SISTEMAS Bacharelado em Sistemas de Informação Ivan Mathias Filho](https://reader031.vdocuments.pub/reader031/viewer/2022012001/607dd895dfb252604e2e5714/html5/thumbnails/13.jpg)
13
Execução sobreposta
© LES/PUC-Rio
• Existem duas maneiras de representar o resultado retornado por uma mensagem:
– Usando a sintaxe <retorno>=<nomeMensagem> ;
Mensagem de retorno
Usando a sintaxe <retorno> <nomeMensagem> ;
– Usando uma mensagem de retorno no final de uma barra de execução;
– Neste caso, mensagem deve ser rotulada com o valor retornado.
© LES/PUC-Rio
A primeira opção nos permite uma especificação maissucinta, enquanto a segunda nos permite especificarcoisas mais gerais, como a criação de uma formulário(tela) de comunicação com o usuário.
![Page 14: INF1404 – MODELAGEM DE SISTEMASivan/PROMINP/NotasAula/MS-CAP-09.pdf · 2009. 9. 23. · INF1404 – MODELAGEM DE SISTEMAS Bacharelado em Sistemas de Informação Ivan Mathias Filho](https://reader031.vdocuments.pub/reader031/viewer/2022012001/607dd895dfb252604e2e5714/html5/thumbnails/14.jpg)
14
Mensagem de retorno - Exemplo
© LES/PUC-Rio
Mensagem para “this”
Podemos representar o envio de uma mensagem de um objeto para ele mesmo:
© LES/PUC-Rio
![Page 15: INF1404 – MODELAGEM DE SISTEMASivan/PROMINP/NotasAula/MS-CAP-09.pdf · 2009. 9. 23. · INF1404 – MODELAGEM DE SISTEMAS Bacharelado em Sistemas de Informação Ivan Mathias Filho](https://reader031.vdocuments.pub/reader031/viewer/2022012001/607dd895dfb252604e2e5714/html5/thumbnails/15.jpg)
15
Criação de um objeto
© LES/PUC-Rio
Destruição de um objeto
Em algumas circunstâncias é desejável mostrarexplicitamente a destruição de um objeto. Por exemplo,quando se usa a linguagem C++, que não possui coletaautomática de lixo.
© LES/PUC-Rio
![Page 16: INF1404 – MODELAGEM DE SISTEMASivan/PROMINP/NotasAula/MS-CAP-09.pdf · 2009. 9. 23. · INF1404 – MODELAGEM DE SISTEMAS Bacharelado em Sistemas de Informação Ivan Mathias Filho](https://reader031.vdocuments.pub/reader031/viewer/2022012001/607dd895dfb252604e2e5714/html5/thumbnails/16.jpg)
16
Frames (1)
• Para representar estruturas condicionais e de repetição, aUML 2.0 introduziu o conceito de frame;
• Um frame é uma região, ou fragmento, de um diagrama,que contém o seguinte:
– Um label (por exemplo, loop);
– Uma cláusula condicional, chamada de condição de guarda.
© LES/PUC-Rio
Uma cláusula condicional, chamada de condição de guarda.
Frames (2)
© LES/PUC-Rio
![Page 17: INF1404 – MODELAGEM DE SISTEMASivan/PROMINP/NotasAula/MS-CAP-09.pdf · 2009. 9. 23. · INF1404 – MODELAGEM DE SISTEMAS Bacharelado em Sistemas de Informação Ivan Mathias Filho](https://reader031.vdocuments.pub/reader031/viewer/2022012001/607dd895dfb252604e2e5714/html5/thumbnails/17.jpg)
17
Tipos de frames
A tabela a seguir sumariza os principais tipos de frame:
© LES/PUC-Rio
Loop
© LES/PUC-Rio
![Page 18: INF1404 – MODELAGEM DE SISTEMASivan/PROMINP/NotasAula/MS-CAP-09.pdf · 2009. 9. 23. · INF1404 – MODELAGEM DE SISTEMAS Bacharelado em Sistemas de Informação Ivan Mathias Filho](https://reader031.vdocuments.pub/reader031/viewer/2022012001/607dd895dfb252604e2e5714/html5/thumbnails/18.jpg)
18
Opt
© LES/PUC-Rio
Alt
© LES/PUC-Rio
![Page 19: INF1404 – MODELAGEM DE SISTEMASivan/PROMINP/NotasAula/MS-CAP-09.pdf · 2009. 9. 23. · INF1404 – MODELAGEM DE SISTEMAS Bacharelado em Sistemas de Informação Ivan Mathias Filho](https://reader031.vdocuments.pub/reader031/viewer/2022012001/607dd895dfb252604e2e5714/html5/thumbnails/19.jpg)
19
Iteração sobre uma coleção
© LES/PUC-Rio
Código Java
import java.util.Vector;
public class Venda{
private Vector<ItemVenda> itens = new Vector<ItemVenda>();
public double getTotal(){
double total=0.0,subtotal;
for(ItemVenda item : itens){
subtotal=item getSubtotal();
© LES/PUC-Rio
subtotal=item.getSubtotal();total+=subtotal;
}
return total;}
}
![Page 20: INF1404 – MODELAGEM DE SISTEMASivan/PROMINP/NotasAula/MS-CAP-09.pdf · 2009. 9. 23. · INF1404 – MODELAGEM DE SISTEMAS Bacharelado em Sistemas de Informação Ivan Mathias Filho](https://reader031.vdocuments.pub/reader031/viewer/2022012001/607dd895dfb252604e2e5714/html5/thumbnails/20.jpg)
20
Frames aninhados
© LES/PUC-Rio
Relacionando diagramas (1)
• Uma ocorrência de interação é uma referência paraum diagrama de interação a partir de outro diagrama deinteração;
• Esta ferramenta deve ser usada quando:
– Se quer simplificar um diagrama;
– Se quer reutilizar uma certa interação, fatorando um trocade mensagens em um diagrama reutilizável.
• Deve-se proceder da seguinte maneira:
© LES/PUC-Rio
• Deve-se proceder da seguinte maneira:
![Page 21: INF1404 – MODELAGEM DE SISTEMASivan/PROMINP/NotasAula/MS-CAP-09.pdf · 2009. 9. 23. · INF1404 – MODELAGEM DE SISTEMAS Bacharelado em Sistemas de Informação Ivan Mathias Filho](https://reader031.vdocuments.pub/reader031/viewer/2022012001/607dd895dfb252604e2e5714/html5/thumbnails/21.jpg)
21
Relacionando diagramas (2)
Criar um frame rotulado com sd em torno de umdiagrama de seqüência, e atribuir um nome ao frame, talcomo Figura 22 ou Figura 23 (próxima transparência):
© LES/PUC-Rio
Relacionando diagramas (3)
© LES/PUC-Rio
![Page 22: INF1404 – MODELAGEM DE SISTEMASivan/PROMINP/NotasAula/MS-CAP-09.pdf · 2009. 9. 23. · INF1404 – MODELAGEM DE SISTEMAS Bacharelado em Sistemas de Informação Ivan Mathias Filho](https://reader031.vdocuments.pub/reader031/viewer/2022012001/607dd895dfb252604e2e5714/html5/thumbnails/22.jpg)
22
Relacionando diagramas (4)
Criar um frame rotulado com ref (reference) em umdiagrama de seqüência qualquer, e estabelecer umareferência com o diagrama desejado.
© LES/PUC-Rio
Chamada de método estático
public class B{
public static void op1(){}
}
© LES/PUC-Rio
![Page 23: INF1404 – MODELAGEM DE SISTEMASivan/PROMINP/NotasAula/MS-CAP-09.pdf · 2009. 9. 23. · INF1404 – MODELAGEM DE SISTEMAS Bacharelado em Sistemas de Informação Ivan Mathias Filho](https://reader031.vdocuments.pub/reader031/viewer/2022012001/607dd895dfb252604e2e5714/html5/thumbnails/23.jpg)
23
Mensagens assíncronas
• Mensagens assíncronas não esperam por resposta,pois elas não ficam bloqueadas;
• Elas são usadas em ambientes multi-threaded, como o.NET e o Java;
• Em Java, por exemplo, podemos considerar que o envioda mensagem Thread.start() ou Runnable.run(),chamada por Thread.start(), representa uma chamada
© LES/PUC-Rio
c a ada po ead sta t(), ep ese ta u a c a adaassíncrona, uma vez que ela inicia a execução de umathread.
Mensagens assíncronas - Exemplo
Mensagens assíncronas são enviadas para objetos ativos, que são assim chamados por controlarem suas próprias threads de execução.
© LES/PUC-Rio
![Page 24: INF1404 – MODELAGEM DE SISTEMASivan/PROMINP/NotasAula/MS-CAP-09.pdf · 2009. 9. 23. · INF1404 – MODELAGEM DE SISTEMAS Bacharelado em Sistemas de Informação Ivan Mathias Filho](https://reader031.vdocuments.pub/reader031/viewer/2022012001/607dd895dfb252604e2e5714/html5/thumbnails/24.jpg)
24
Código Java
public class ClockStarter{
public void startClock(){
Thread t=new Thread(new Clock());Thread t=new Thread(new Clock());t.start(); // chamada assíncrona do método run()System.runFinalization();
}}
public class Clock implements Runnable{
public void run(){
© LES/PUC-Rio
while(true){
...}
}}
Bibliografia
• Bezerra, E. Princípios de Análise e Projeto de Sistemas com UML. 1ª edição, Campus, 2006.
• Larman, C. Utilizando UML e Padrões. 3ª edição, Bookman, 2007.
© LES/PUC-Rio