• Nenhum resultado encontrado

aula07 projetoSistemas DiagramasComunicacao 2012.2

N/A
N/A
Protected

Academic year: 2021

Share "aula07 projetoSistemas DiagramasComunicacao 2012.2"

Copied!
36
0
0

Texto

(1)

Diagramas de Interação

Projeto de Sistemas

(2)

2

• Descrição da dinâmica do sistema

• Obter informações adicionais para completar e aprimorar outros modelos (principalmente o diagrama de classes)

– Quais as operações de uma classe?

– Quais os objetos participantes da realização de requisitos (ou cenário deste)?

– Para cada operação, qual a sua assinatura? – Uma classe precisa de mais atributos?

– Fornecer aos programadores uma visão detalhada dos objetos e mensagens envolvidos na realização dos requisitos.

(3)

Interações e Mensagens

• Uma interação é um comportamento composto da

troca de um conjunto de mensagens entre um grupo de objetos a fim de atingir um determinado objetivo.

• Uma mensagem é uma comunicação entre objetos

que resulta na transmissão de informação com o intuito de que alguma atividade seja realizada.

(4)

4

• O princípio básico da interação entre objetos é o conceito de Mensagem.

• Um sistema OO pode ser visto como uma rede de objetos. Funcionalidades são realizadas

pelos objetos, que só podem interagir através do envio de mensagens.

(5)

• Uma mensagem representa a requisição de um objeto remetente a um objeto receptor para que este último execute alguma

operação definida em sua classe.

• Essa mensagem deve conter informação suficiente para que a operação do objeto receptor possa ser executada.

(6)

6

• O fato de um objeto “precisar de ajuda” indica a necessidade de este enviar mensagens.

• Na construção de diagramas de interação,

mensagens de um objeto a outro implicam em operações que classes devem ter.

Uma mensagem implica na existência de uma operação no objeto receptor.

A resposta do objeto receptor ao recebimento de uma mensagem é a execução da operação correspondente.

(7)
(8)

8

• Mensagem síncrona ( )

– É aquela em que o objeto remetente espera que o objeto receptor processe a mensagem antes de recomeçar o seu processamento, ou seja, o

remetente fica bloqueado até que o receptor termine de atender a requisição.

• Mensagem assíncrona ( )

– É aquela na qual o objeto remetente não espera a resposta para prosseguir com o seu processamento.

(9)

• Mensagem reflexiva (self)

– É aquela enviada de um objeto para ele mesmo solicitando a execução de uma operação definida em sua própria classe.

• Mensagem de retorno ( )

– Indica o final da execução de uma operação (retorno do fluxo de controle)

(10)

10

(11)

• Diagrama de Colaboração (Comunicação) • Diagrama de Sequência

(12)

12 Diagrama de Colaboração (Comunicação)

• É um diagrama de interação que enfatiza a organização dos objetos que participam da interação.

• Um caminho é uma ligação entre objetos. • Números de sequência indicam a ordem

(13)

Diagrama de Colaboração (Comunicação) : Transaction c: Client 1: «create» p: ODBCProxy 2: setActions (a,d,o) 3: «destroy» 2.1: setValues(d,3,4)

(14)

14

Diagrama de Sequência

• É um diagrama de interações que enfatiza a ordem temporal das mensagens.

• Uma linha de vida é uma linha tracejada

vertical que representa o tempo de vida de um objeto.

• Um foco de controle é um retângulo fino

vertical sobreposto à linha de vida que mostra o período durante o qual um objeto está

(15)

Diagrama de Sequência

: Ticket Agent c: Client «create» setItinerary(i) calculateRoute() route

(16)

16

• Assim como os outros diagramas da UML, os diagrama de interação possuem um conjunto de elementos gráficos. – Elementos básicos: • Atores • Objetos • Classes • Mensagens

Elementos Básicos

(17)

vendas

vendas : Departamento

: Departamento

Nome de um dado Objeto Nome de Objeto e Classe

Objeto nomeado Objeto Anônimo da Classe Departamento

 Representação de Objetos e Classes

(18)

18

maria : Cliente

: Cliente Nomeado: recebe um nome e

necessita ser referenciado posteriormente.

Anônimo: não recebe um nome

específico

Às vezes, uma mensagem é enviada para uma

classe. Nesse caso, a operação a ser executada é uma operação de classe (estática).

 Representação de Objetos e Classes

(19)

DIAGRAMAS DE COLABORAÇÃO

(COMUNICAÇÃO)

(20)

20

• Diagrama de colaboração

– Ilustra interações num formato de grafo ou rede

– A mensagem não-numerada (a primeira) é uma operação de sistema

– Note que mandar uma mensagem m() para um objeto x corresponde a executar o código x.m(), isto é, invocar o método m() de x

Diagramas de Colaboração

:ClassAInstance :ClassBInstance 1: message2() 2: message3() message1()

(21)

Diagramas de Colaboração

• Exemplo para a operação fazerPagamento, do sistema Ponto de Vendas de um supermercado

1: makePayment (amount)

1.1: create(amount)

:POST :Sale

makePayment(amount)

direction of message first internal message

link line

1.2: associate(p)

(22)

22

• Classes e instâncias

• Links

Notação Básica

Sale :Sale s1: Sale

class instance named instance

1: makePayment(amount)

:POST :Sale

msg1()

(23)

• Mensagens • Parâmetros

Notação Básica

1: message1() 2: message2() 3: message3() :POST :Sale msg1()

all messages flow on the same link

msg1()

(24)

24

• Valor de retorno

Notação Básica

1: tot := total(): Real

:POST :Sale

msg1()

return value type

(25)

• Mensagem para “self” ou “this” • Iteração

Notação Básica

:POST msg1() 1: clear() msg1() iteration

(26)

26

• Cláusula de iteração

• Iteração com múltiplas mensagens

Notação Básica

1*: [i := 1..10] li := nextLineItem(): SalesLineItem :POST :Sale msg1() iteration clause 1*: [i := 1..10] msg2() :A myB :B msg1()

note that iteration clauses are equal

myC :C 2*: [i := 1..10] msg3() msg1() { for i := 1 to 10 { myB.msg2() myC.msg3() } }

(27)

• Criação de instância

Notação Básica

1: create(cashier)

:POST :Sale

msg1()

create message, with optional initializing parameters

new created instance

«new» :Sale "«new»" is optionally

(28)

28 • Seqüenciamento de mensagens

Notação Básica

:ClassA msg1() :ClassB 1: msg2() :ClassC 1.1: msg3() not numbered legal numbering

(29)

• Seqüenciamento complexo de mensagens

Notação Básica

;ClassA msg1() 1: msg2() :ClassB :ClassC 1.1: msg3() 2.1: msg5() 2: msg4() :ClassD 2.2: msg6() first second fourth sixth fifth third

(30)

30

• Mensagens condicionais

Notação Básica

1: [nova venda] create()

:TV :Venda

:LinhaDeVenda 1.1: create()

entrarItem()

(31)

• Caminhos condicionais mutuamente exclusivos

Notação Básica

1a: [test1] msg2() :ClassA :ClassB :ClassC 1a.1: msg3() msg1() :ClassD 1b: [not test1] msg4() 1b.1: msg5() :ClassE 2: msg6() unconditional after

either msg2 or msg4 1a and 1b are mutually

(32)

32

• Operação entrarItem() (diagrama parcial)

Notação Básica

1: [nova venda] create()

:TV :Venda

:LinhaDeVenda 3: create()

entrarItem()

conditional message, with test

2: [velha venda] criarLinhaDeVenda()

(33)

• Coleções (multiobjects)

• Mensagens para uma coleção

Notação Básica

Sale

sales : Sale multiobject

msg1()

message sent to the collection object itself

(34)

34

• Mensagens para uma coleção e um elemento

Notação Básica

1: create() :Sale sl: SalesLineItem SalesLineItem :SalesLineItem 2: addElement(sl) msg1() 2: print() :Sale sl: SalesLineItem SalesLineItem :SalesLineItem 1: sl := get(key) msg1()

(35)

Como Fazer um Diagrama de

Colaboração

• Regras úteis

1. Criar um diagrama em separado para cada uma das operações de sistema, com cada operação como mensagem inicial

2. Se o diagrama ficar muito complexo (não cabe facilmente num folha de papel A4), ele pode ser dividido em

diagramas menores

3. Usar os requisitos (e.g., user stories, casos de uso) para projetar um sistema cujos objetos interagem para cumprir as tarefas exigidas

(36)

36

Exercício: Crie o diagrama de

colaboração para Criar Cliente

Fluxo Principal

1. O usuário solicita o cadastro de cliente.

2. O sistema apresenta o formulário para preenchimento.

3. O usuário entra com as informações necessárias do cliente no sistema e submete. 4. O sistema valida o cadastro do cliente. (FE01) (FE02)

5. O sistema armazena os dados do cliente.

6. O sistema cria uma conta em nome do cliente

7. O sistema notifica o usuário sobre o cadastro e o caso de uso termina. Fluxos de Exceção

FE01 - Usuário cadastrado

1. Se o cliente já estiver cadastrado, uma mensagem será exibida e o caso de uso termina. FE02 - Dados incompletos

1. Se os dados estiverem incompletos, o sistema exibe uma mensagem para que o usuário forneça as informações completas e o caso de uso retorna ao passo 3 do fluxo principal.

Referências

Documentos relacionados

Foram avaliados 10 pacientes, portadores de MPS I (todos com fenótipos não Hurler), de ambos os se- xos, acompanhados no ambulatório de Genética Mé- dica da

A Vivace Process Instruments é composta por uma equipe multidisciplinar de profissionais com mais de 25 anos no mercado de automação e instrumentação, com ampla experiência nas

No exercício de 2014 início da crise no país os usuários não sentiram muita no que diz respeito o seu percentual da parcela da riqueza distribuída pela companhia, no

Pela Decreto do Parlamento Nacional n.º 45/III que VETO os investimentos privados vão poder beneficiar de isenção em 100% do imposto sobre vendas; isenção em 100% do imposto sobre os

 O local e horário de saída dos passeios são estipulados pela Fellini Turismo e esta não se responsabiliza por qualquer despesa ou transtorno causado por atraso dos passageiros;

RESUMO - O trabalho objetivou avaliar a qualidade das sementes de arroz utilizadas pelos agricultores em cinco municípios (Matupá, Novo Mundo, Nova Guarita, Alta Floresta e Terra

A combinação dessas dimensões resulta em quatro classes de abordagem comunicativa, que podem ser exemplificadas da seguinte forma: interativo/dialógico: professor e

tidos para o Coefi ciente de Efi cácia Protéica para o leite de búfala, vaca e caseína como padrão, verifi caram que a caseína e o leite de vaca, não apresentaram diferença