51
Modelagem de Interações Selma S. S. Melnikoff EPUSP - PCS 2007

Modelagem de Interações Selma S. S. Melnikoff EPUSP - PCS 2007

Embed Size (px)

Citation preview

Page 1: Modelagem de Interações Selma S. S. Melnikoff EPUSP - PCS 2007

Modelagem de Interações

Selma S. S. Melnikoff

EPUSP - PCS

2007

Page 2: Modelagem de Interações Selma S. S. Melnikoff EPUSP - PCS 2007

Objetivo

• Introduzir conceitos sobre a parte dinâmica dos modelos.

• Apresentar os elementos do Diagrama de Interações.

• Apresentar o Diagrama de Seqüências.• Apresentar como construir modelo de interações.• Apresentar o uso do modelo no desenvolvimento

iterativo.

Page 3: Modelagem de Interações Selma S. S. Melnikoff EPUSP - PCS 2007

Principais Modelos

• Modelo de Casos de Uso: descreve as funções do sistema.– Diagrama de Casos de Uso

• Modelo Estrutural: descreve a estrutura do sistema.– Diagrama de Classes

• Modelo Dinâmico: descreve o comportamento do sistema.– Diagrama de Interação– Diagrama de Estados

Page 4: Modelagem de Interações Selma S. S. Melnikoff EPUSP - PCS 2007

Descrição de casos de uso

Descrição de casos de uso

Classes e relacionamentos

Page 5: Modelagem de Interações Selma S. S. Melnikoff EPUSP - PCS 2007

1. Dinâmica nos Modelos

Page 6: Modelagem de Interações Selma S. S. Melnikoff EPUSP - PCS 2007

Perguntas

• No modelo de casos de uso:– Quais são as operações que devem ser

executadas internamente ao sistema?– A que classes estas operações pertencem?– Quais objetos participam da realização deste

caso de uso?

Page 7: Modelagem de Interações Selma S. S. Melnikoff EPUSP - PCS 2007

Perguntas

• No modelo de classes de análise:– De que forma os objetos colaboram para que

um determinado caso de uso seja realizado?– Em que ordem as mensagens são enviadas

durante esta realização?– Que informações precisam ser enviadas em

uma mensagem de um objeto a outro?– Será que há responsabilidades ou mesmo

classes que ainda não foram identificadas?

Page 8: Modelagem de Interações Selma S. S. Melnikoff EPUSP - PCS 2007

Modelo de Interações

• O Modelo de Interações representa as mensagens trocadas entre objetos para a execução de cenários dos casos de uso do sistema.

• A construção dos Diagramas de Interação consolida o entendimento da dinâmica do sistema.

Page 9: Modelagem de Interações Selma S. S. Melnikoff EPUSP - PCS 2007

Modelo de Interações

Diagramas de interação representam como o sistema age internamente para que um ator atinja seu objetivo na realização de um caso de uso.

A modelagem de um sistema de software contém normalmente diversos diagramas de interação.

O conjunto de todos os diagramas de interação de um sistema constitui o seu Modelo de Interações.

Page 10: Modelagem de Interações Selma S. S. Melnikoff EPUSP - PCS 2007

Objetivo do Modelo

1.Obter informações adicionais para completar e aprimorar outros modelos– Quais as operações de uma classe?– Quais os objetos participantes da realização de

um caso de uso (ou cenário deste)?– Para cada operação, qual a sua assinatura?– Uma classe precisa de mais atributos?

2.Fornecer uma visão detalhada dos objetos e mensagens envolvidos na realização dos casos de uso.

Page 11: Modelagem de Interações Selma S. S. Melnikoff EPUSP - PCS 2007

Modelagem Dinâmica

• A modelagem de interações é uma parte da modelagem dinâmica de sistema de software.

• Principais diagramas do Modelo Dinâmico– Diagrama de Interação

• Diagrama de Seqüência

• Diagrama de Comunicação

– Diagrama de Estados

Page 12: Modelagem de Interações Selma S. S. Melnikoff EPUSP - PCS 2007

Diagrama de Interação

• Diagrama de Seqüência: enfatiza a ordenação temporal das mensagens.

• Diagrama de Comunicação: enfatiza a organização estrutural dos objetos que enviam e recebem mensagens.

Page 13: Modelagem de Interações Selma S. S. Melnikoff EPUSP - PCS 2007

Diagrama de Seqüência

C:Client

:Transaction

p:DataAccessObject

create ()

setActions (a, d, o)setValues (d, 3.4)

setValues (a, b)

destroy ()

tempo

Page 14: Modelagem de Interações Selma S. S. Melnikoff EPUSP - PCS 2007

Diagrama de Comunicação

C: Client

:Transaction p:Data AccessObjetc

1: <<create>>2: setActions (a,d,o)3: <<destroy>>

2.1: setValues (d, 3.4)2.2: setValues (a, b)

Page 15: Modelagem de Interações Selma S. S. Melnikoff EPUSP - PCS 2007

2. Elementos da Modelagem de Interações

Page 16: Modelagem de Interações Selma S. S. Melnikoff EPUSP - PCS 2007

Elementos Principais

1. Mensagens

2. Atores

3. Objetos e Classes

4. Coleção de objetos

Page 17: Modelagem de Interações Selma S. S. Melnikoff EPUSP - PCS 2007

1. Mensagens

• Uma mensagem representa a requisição de um objeto remetente para um objeto receptor.

• Uma mensagem é o acionamento de uma operação do objeto receptor por um objeto remetente.

• O envio de uma mensagem corresponde à chamada de uma rotina de linguagens de programação.

Page 18: Modelagem de Interações Selma S. S. Melnikoff EPUSP - PCS 2007

Natureza de Mensagem

• Mensagem síncrona– O remetente fica bloqueado, esperando que o

receptor termine de atender à requisição.

• Mensagem assíncrona– O remetente não espera a resposta para

prosseguir o processamento.

• Mensagem de sinal• Mensagem de retorno

– Especifica o término de atendimento de uma mensagem.

Page 19: Modelagem de Interações Selma S. S. Melnikoff EPUSP - PCS 2007

Sintaxe para Mensagens

• Para fase de análise– Nome da mensagem

• Para fase de projeto

[[expressão-seqüência] controle:] [v :=] nome [(argumentos)]

‘*’ ‘[’ cláusula-iteração ‘]’

‘[’ cláusula-condição ‘]’

controle ou

Page 20: Modelagem de Interações Selma S. S. Melnikoff EPUSP - PCS 2007

Sintaxe para Mensagens

• Expressão de seqüência– Explicita a ordem de envio das mensagens

• Controle– Cláusula-condição: indica uma condição para envio da

mensagem– Cláusula-iteração: indica que uma mensagem pode ser

enviada mais de uma vez

• Variável– Identificador de variável que recebe o valor retornado

pela execução da operação chamada

• Nome e argumentos da mensagem

Page 21: Modelagem de Interações Selma S. S. Melnikoff EPUSP - PCS 2007

Exemplos de Mensagens

• Mensagem simples, sem cláusula alguma1: adicionarItem (item)

• Mensagem com cláusula de condição3 [a > b]: trocar (a, b)

• Mensagem com cláusula de iteração e com limites indefinidos2 * : desenhar( )

• Mensagem com cláusula de iteração e com limites definidos2 * [i := 1..10]: figuras[i].desenhar( )

• Mensagem aninhada com retorno armazenado na variável x1.2.1: x := selecionar(e)

Page 22: Modelagem de Interações Selma S. S. Melnikoff EPUSP - PCS 2007

Exemplos de Mensagens

Page 23: Modelagem de Interações Selma S. S. Melnikoff EPUSP - PCS 2007

Exemplo de Mensagem

Page 24: Modelagem de Interações Selma S. S. Melnikoff EPUSP - PCS 2007

2.Ator

• É representado com a mesma notação usada no Diagrama de Casos de Uso.

Page 25: Modelagem de Interações Selma S. S. Melnikoff EPUSP - PCS 2007

3. Objetos e Classes

• Representação de objetos

• Representação de classe

umaDisciplina: Disciplina

objeto nomeado

Disciplina

objeto anônimo

preRequisitos [i]: Disciplina

objeto em uma coleção

Disciplina

classe

Page 26: Modelagem de Interações Selma S. S. Melnikoff EPUSP - PCS 2007

4. Multiobjetos

• Um multiobjeto representa uma coleção de objetos de uma mesma classe.

• Uma mensagem pode ser enviada para a coleção como um todo, em vez de enviada para um objeto.

• Exemplo– Encontrar um objeto com um identificador

único– Obter o número de objetos de uma coleção

Page 27: Modelagem de Interações Selma S. S. Melnikoff EPUSP - PCS 2007

Exemplo de Multiobjetos

Page 28: Modelagem de Interações Selma S. S. Melnikoff EPUSP - PCS 2007

Mensagens Típicas

• Posicionar o cursor da coleção no primeiro elemento

• Retornar o i-ésimo objeto da coleção• Retornar o próximo objeto da coleção• Encontrar um objeto de acordo com um

identificador único• Adicionar um objeto na coleção• Remover um objeto na coleção• Obter a quantidade de objetos na coleção• Retornar um valor lógico que indica se há

mais objetos a serem considerados

Page 29: Modelagem de Interações Selma S. S. Melnikoff EPUSP - PCS 2007

3. Diagrama de Seqüência

Page 30: Modelagem de Interações Selma S. S. Melnikoff EPUSP - PCS 2007

Elementos do Diagrama

C:Client

:Transaction

p:DataAccessObject

objeto

linha de

vida

foco de controle

create ()

setActions (a, d, o)setValues (d, 3.4)

setValues (a, b)

destroy ()

tempo

Page 31: Modelagem de Interações Selma S. S. Melnikoff EPUSP - PCS 2007

Mensagens

Mensagem síncrona

Mensagem assíncrona

Mensagem de retorno

Mensagem de criação de objeto

<<create>>

Page 32: Modelagem de Interações Selma S. S. Melnikoff EPUSP - PCS 2007

Mensagem Reflexiva

• É a mensagem cujo remetente é também o receptor.

• O foco de controle sobreposto representa a chamada interna.

:Objeto

m( )

Page 33: Modelagem de Interações Selma S. S. Melnikoff EPUSP - PCS 2007

4. Modularização de Interações

Page 34: Modelagem de Interações Selma S. S. Melnikoff EPUSP - PCS 2007

Quadro de Interação

• Serve para encapsular um diagrama de seqüência.

Page 35: Modelagem de Interações Selma S. S. Melnikoff EPUSP - PCS 2007

Análise e Projeto Orientado a Objetos - 2a. edição

Diagrama Nomeado

Page 36: Modelagem de Interações Selma S. S. Melnikoff EPUSP - PCS 2007

Diagramas Referenciados

Page 37: Modelagem de Interações Selma S. S. Melnikoff EPUSP - PCS 2007

Fluxo de Controle: Alternativa

Page 38: Modelagem de Interações Selma S. S. Melnikoff EPUSP - PCS 2007

Fluxo de Controle: Opção

Execução opcional

Page 39: Modelagem de Interações Selma S. S. Melnikoff EPUSP - PCS 2007

Fluxo de Controle: Iteração

Repetição

Page 40: Modelagem de Interações Selma S. S. Melnikoff EPUSP - PCS 2007

3. Construção do Modelo de Interações

Page 41: Modelagem de Interações Selma S. S. Melnikoff EPUSP - PCS 2007

Mensagens e Responsabilidades

• O objetivo do modelo de interações é identificar as mensagens trocadas entre objetos.

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

• A modelagem de interações consiste em decompor as responsabilidades do sistema e alocá-las a classes.

Page 42: Modelagem de Interações Selma S. S. Melnikoff EPUSP - PCS 2007

Coesão e Acoplamento

• Objetivo– Modelo com alta coesão e baixo acoplamento.

• A coesão é uma medida de quão fortemente responsabilidades de uma classe estão relacionadas e focalizadas.

• É importante assegurar que as responsabilidades atribuídas a cada classe sejam altamente relacionadas.

Page 43: Modelagem de Interações Selma S. S. Melnikoff EPUSP - PCS 2007

Coesão e Acoplamento

• O acoplamento é uma medida de quão fortemente uma classe está conectada a outras classes, tem conhecimento ou depende das mesmas.

• Uma classe com acoplamento baixo não depende de muitas outras.

• Uma classe com alto acoplamento é mais sensível a mudanças, quando é necessário modificar as classes da qual ela depende.

Page 44: Modelagem de Interações Selma S. S. Melnikoff EPUSP - PCS 2007

Recomendações

• Identifique as classes conceituais que participam em cada caso de uso. – Entidades do mundo real– Entidades de fronteira

• Identifique quaisquer classes de software que ajudem a organizar as tarefas a serem executadas.– Classes de fronteira, classes de controle, classes

de acesso aos dados, etc.

Page 45: Modelagem de Interações Selma S. S. Melnikoff EPUSP - PCS 2007

Recomendações

• Defina também os objetos criam (destróem) outros objetos.

• Verifique a consistência dos diagramas de interação em relação ao Modelo de Casos de Uso e ao Modelo de Classes.

• Certifique de que o objeto de controle realiza apenas a coordenação da realização do caso de uso.

Page 46: Modelagem de Interações Selma S. S. Melnikoff EPUSP - PCS 2007

Recomendações

• Faça o máximo para construir diagramas de interação o mais inteligíveis possível.

• Procure soluções de baixo acoplamento.

Page 47: Modelagem de Interações Selma S. S. Melnikoff EPUSP - PCS 2007

Diagrama de Seqüência

• Os Diagramas de Seqüência são construídos para cada caso de uso ou parte dele.

• Um caso de uso complexo deve ser quebrado em vários diagramas que permitam a sua compreensão.

Page 48: Modelagem de Interações Selma S. S. Melnikoff EPUSP - PCS 2007

Procedimento

• Identificar o escopo do diagrama. • Identificar os objetos que participam do escopo

identificado. • Alocar os objetos que participam do escopo do

diagrama no diagrama.• Traçar as linhas de vida dos objetos.• Representar focos de controle.• Representar as mensagens e os seus parâmetros.• Verificar contra o caso de uso considerado e o

Diagrama de Classes.

Page 49: Modelagem de Interações Selma S. S. Melnikoff EPUSP - PCS 2007

4. Modelos de Interações no Desenvolvimento Iterativo

Page 50: Modelagem de Interações Selma S. S. Melnikoff EPUSP - PCS 2007

MI em um processo iterativo

Page 51: Modelagem de Interações Selma S. S. Melnikoff EPUSP - PCS 2007

Resumo

• Qual é o significado da parte dinâmica dos modelos?

• Quais são os elementos do Diagrama de Interações?

• O que é Diagrama de Seqüências?• Como construir modelo de interações?• Qual é o papel de modelo de iteração no

desenvolvimento de software?