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

Post on 17-Apr-2015

105 views 2 download

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

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.

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

Descrição de casos de uso

Descrição de casos de uso

Classes e relacionamentos

1. Dinâmica nos Modelos

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?

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?

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.

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.

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.

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

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.

Diagrama de Seqüência

C:Client

:Transaction

p:DataAccessObject

create ()

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

setValues (a, b)

destroy ()

tempo

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)

2. Elementos da Modelagem de Interações

Elementos Principais

1. Mensagens

2. Atores

3. Objetos e Classes

4. Coleção de objetos

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.

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.

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

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

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)

Exemplos de Mensagens

Exemplo de Mensagem

2.Ator

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

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

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

Exemplo de Multiobjetos

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

3. Diagrama de Seqüência

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

Mensagens

Mensagem síncrona

Mensagem assíncrona

Mensagem de retorno

Mensagem de criação de objeto

<<create>>

Mensagem Reflexiva

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

• O foco de controle sobreposto representa a chamada interna.

:Objeto

m( )

4. Modularização de Interações

Quadro de Interação

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

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

Diagrama Nomeado

Diagramas Referenciados

Fluxo de Controle: Alternativa

Fluxo de Controle: Opção

Execução opcional

Fluxo de Controle: Iteração

Repetição

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

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.

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.

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.

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.

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.

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.

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.

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.

4. Modelos de Interações no Desenvolvimento Iterativo

MI em um processo iterativo

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?