inf1404 – modelagem de sistemasivan/prominp/notasaula/ms-cap-10.pdf1 inf1404 – modelagem de...

15
1 INF1404 – MODELAGEM DE SISTEMAS Bacharelado em Sistemas de Informação Ivan Mathias Filho [email protected] Programa – Capítulo 10 Exercícios Diagrama de Comunicação © LES/PUC-Rio

Upload: others

Post on 26-Feb-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: INF1404 – MODELAGEM DE SISTEMASivan/PROMINP/NotasAula/MS-CAP-10.pdf1 INF1404 – MODELAGEM DE SISTEMAS Bacharelado em Sistemas de Informação Ivan Mathias Filho ivan@inf.puc-rio.br

1

INF1404 – MODELAGEM DE SISTEMAS

Bacharelado em Sistemas de Informação

Ivan Mathias Filho

[email protected]

Programa – Capítulo 10

• Exercícios

• Diagrama de Comunicação

© LES/PUC-Rio

Page 2: INF1404 – MODELAGEM DE SISTEMASivan/PROMINP/NotasAula/MS-CAP-10.pdf1 INF1404 – MODELAGEM DE SISTEMAS Bacharelado em Sistemas de Informação Ivan Mathias Filho ivan@inf.puc-rio.br

2

Programa – Capítulo 10

• Exercícios

• Diagrama de Comunicação

© LES/PUC-Rio

Programa – Capítulo 10

• Exercícios

• Diagrama de Comunicação

© LES/PUC-Rio

Page 3: INF1404 – MODELAGEM DE SISTEMASivan/PROMINP/NotasAula/MS-CAP-10.pdf1 INF1404 – MODELAGEM DE SISTEMAS Bacharelado em Sistemas de Informação Ivan Mathias Filho ivan@inf.puc-rio.br

3

Ligação

• Uma ligação é uma conexão entre dois objetos;

• Ela indica a existência de alguma forma de navegação e visibilidade entre eles;visibilidade entre eles;

• Informalmente, uma ligação é uma instância de uma associação.

© LES/PUC-Rio

Exemplo

© LES/PUC-Rio

Page 4: INF1404 – MODELAGEM DE SISTEMASivan/PROMINP/NotasAula/MS-CAP-10.pdf1 INF1404 – MODELAGEM DE SISTEMAS Bacharelado em Sistemas de Informação Ivan Mathias Filho ivan@inf.puc-rio.br

4

Especificação do caminho

• Uma ligação especifica um caminho através do qual um objeto pode disparar uma mensagem para um outro objeto;

• Na maioria das vezes será suficiente especificar que tal caminho existe;

• Entretanto, se for necessário esclarecer a origem desse caminho, pode-se adornar o término de uma ligação com uma das seguintes restrições:

© LES/PUC-Rio

g ç

Tipos de restrições (1)

• association – especifica que o objeto ligado ao terminal em questão é visível através de uma associação;

• self – especifica que o objeto ligado ao terminal em questão é visível porque ele próprio é quem dispara a mensagem;

• global – especifica que o objeto ligado ao terminal em questão é visível porque ele está definido no escopo englobante.

© LES/PUC-Rio

g

Page 5: INF1404 – MODELAGEM DE SISTEMASivan/PROMINP/NotasAula/MS-CAP-10.pdf1 INF1404 – MODELAGEM DE SISTEMAS Bacharelado em Sistemas de Informação Ivan Mathias Filho ivan@inf.puc-rio.br

5

Tipos de restrições (2)

• local – especifica que o objeto ligado ao terminal em questão é visível porque ele está definido no escopo local;

• parameter – especifica que o objeto ligado ao terminal em questão é visível porque ele é um parâmetro de uma operação.

© LES/PUC-Rio

Association

class A{

i t B B()private B p=new B();

public void op1a(){

p.op1b();}

}

class B {

public void op1b()

© LES/PUC-Rio

{}

}

Page 6: INF1404 – MODELAGEM DE SISTEMASivan/PROMINP/NotasAula/MS-CAP-10.pdf1 INF1404 – MODELAGEM DE SISTEMAS Bacharelado em Sistemas de Informação Ivan Mathias Filho ivan@inf.puc-rio.br

6

Self

class A{

private B p=new B();

public void op1a(){

op2a();}

public void op2a(){}

}

© LES/PUC-Rio

}

Local

class A{

public void op1a(){

B p=new B();

p.op1b();}

public void op2a(){}

}

© LES/PUC-Rio

}

Page 7: INF1404 – MODELAGEM DE SISTEMASivan/PROMINP/NotasAula/MS-CAP-10.pdf1 INF1404 – MODELAGEM DE SISTEMAS Bacharelado em Sistemas de Informação Ivan Mathias Filho ivan@inf.puc-rio.br

7

Parameter

class A{

public void op1a(B p){

p.op1b();}

public void op2a(){}

}

© LES/PUC-Rio

}

Global

class C{

private B p=new B();

class A{

public void op1a(){

p.op1b();}

public void op2a(){}

© LES/PUC-Rio

}}

Page 8: INF1404 – MODELAGEM DE SISTEMASivan/PROMINP/NotasAula/MS-CAP-10.pdf1 INF1404 – MODELAGEM DE SISTEMAS Bacharelado em Sistemas de Informação Ivan Mathias Filho ivan@inf.puc-rio.br

8

Mensagem

• Uma mensagem entre dois objetos é representada por uma expressão de mensagem;

• Uma seta é usada para indicar o sentido da mensagem;

• Várias mensagens podem ser enviadas através de uma ligação;

• Números de seqüência são usados para indicar a ordem na

© LES/PUC-Rio

• Números de seqüência são usados para indicar a ordem na qual as mensagens são enviadas na thread de controle corrente.

Expressão de mensagem

<numeroSeqüência> � � �<condiçãoG������� ��������� �� �����M��������

�<parâmetro> � <tipoParâmetro>�p p

Exemplos:

• 1:op1()

• 2:op2(a,b)

© LES/PUC-Rio

• 3:[x>2] res:=op3(a:int,b:double)

• 1.1:* res:=op3(a,b)

• 1a : * [i:=1..10] op3(a,b)

Page 9: INF1404 – MODELAGEM DE SISTEMASivan/PROMINP/NotasAula/MS-CAP-10.pdf1 INF1404 – MODELAGEM DE SISTEMAS Bacharelado em Sistemas de Informação Ivan Mathias Filho ivan@inf.puc-rio.br

9

Exemplo

© LES/PUC-Rio

Mensagem para “this”

© LES/PUC-Rio

Page 10: INF1404 – MODELAGEM DE SISTEMASivan/PROMINP/NotasAula/MS-CAP-10.pdf1 INF1404 – MODELAGEM DE SISTEMAS Bacharelado em Sistemas de Informação Ivan Mathias Filho ivan@inf.puc-rio.br

10

Criação de um objeto

• Qualquer mensagem pode ser usada para criar uma instância;

• A UML, entretanto, estabeleceu a mensagem create como o padrão;

• Uso da mensagem create pode ser encarado como a forma padrão – aplicável a todas as linguagens de programação –de evocar o construtor;

© LES/PUC-Rio

• Se o nome da mensagem de criação não for óbvio, pode-se usar o estereótipo <<create>> para indicar o objetivo da mensagem.

Exemplo

© LES/PUC-Rio

Page 11: INF1404 – MODELAGEM DE SISTEMASivan/PROMINP/NotasAula/MS-CAP-10.pdf1 INF1404 – MODELAGEM DE SISTEMAS Bacharelado em Sistemas de Informação Ivan Mathias Filho ivan@inf.puc-rio.br

11

Números de seqüência

• A ordem de envio das mensagens é definida através de números de seqüência;

• Os números de seqüência podem utilizar um esquema de numeração com vários níveis para tornar clara a existência de aninhamentos no envio de mensagens.

© LES/PUC-Rio

Exemplo

© LES/PUC-Rio

Page 12: INF1404 – MODELAGEM DE SISTEMASivan/PROMINP/NotasAula/MS-CAP-10.pdf1 INF1404 – MODELAGEM DE SISTEMAS Bacharelado em Sistemas de Informação Ivan Mathias Filho ivan@inf.puc-rio.br

12

Mensagem condicional

© LES/PUC-Rio

Exclusão mútua

© LES/PUC-Rio

Page 13: INF1404 – MODELAGEM DE SISTEMASivan/PROMINP/NotasAula/MS-CAP-10.pdf1 INF1404 – MODELAGEM DE SISTEMAS Bacharelado em Sistemas de Informação Ivan Mathias Filho ivan@inf.puc-rio.br

13

Iteração

© LES/PUC-Rio

Iteração sobre uma coleção

© LES/PUC-Rio

Page 14: INF1404 – MODELAGEM DE SISTEMASivan/PROMINP/NotasAula/MS-CAP-10.pdf1 INF1404 – MODELAGEM DE SISTEMAS Bacharelado em Sistemas de Informação Ivan Mathias Filho ivan@inf.puc-rio.br

14

Mensagem para Classe

© LES/PUC-Rio

Chamadas assíncronas

© LES/PUC-Rio

Page 15: INF1404 – MODELAGEM DE SISTEMASivan/PROMINP/NotasAula/MS-CAP-10.pdf1 INF1404 – MODELAGEM DE SISTEMAS Bacharelado em Sistemas de Informação Ivan Mathias Filho ivan@inf.puc-rio.br

15

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