• Nenhum resultado encontrado

Aula 05 – Projeto de Software Orientado a Objetos UML – Modelagem de Interações ( Diagramas de Seqüência e Comunicação)

N/A
N/A
Protected

Academic year: 2018

Share "Aula 05 – Projeto de Software Orientado a Objetos UML – Modelagem de Interações ( Diagramas de Seqüência e Comunicação)"

Copied!
10
0
0

Texto

(1)

! " # $ "#%%&&& %" %

'

(

&

)*

'

(

&

+

+ '

,- ,

.

/0

1 !

.

( 234

.

/5 6

l

No desenvolvimento de um sistema OO, a mesma

representação para as classes é utilizada durante a

análise e o projeto desse sistema.

l

Vantagem: há uma uniformidade na modelagem do

sistema.

l

Desvantagem: torna menos nítida a separação

entre o que é feito na análise e o que é feito no

projeto.

l Complicador: processo de desenvolvimento iterativo e incremental.

l

A partir da criação do modelo de classes de

domínio, há uma quantidade significativa de tarefas

que residem em uma área difusa entre a análise e o

projeto.

l

O modelo de classes de domínio e o modelo de

casos de uso esclarecem o problema a ser

resolvido.

l No entanto, esses modelos são insuficientes para se ter uma visão suficiente do sistema para que a implementação comece.

l

Pode-se dizer que a análise vai se transformando

em projeto.

l Transformação do esboço de interações entre objetos em diagramas de interação.

l Definição do comportamento (estados) de classes complexas.

l

É na fase de projeto que essas definições são

feitas.

l

As atividades realizadas na fase de projeto são as

seguintes:

l Detalhamento dos aspectos dinâmicos do sistema. Como os objetos do sistema interagem entre si? l Refinamento dos aspectos estáticos e estruturais do

sistema. Detalhamento do modelo de classes.

l Definição de outros aspectos da solução: arquitetura, mapeamento para um SGBD, etc.

l Projeto da interface gráfica.

l

Após a realização dessas atividades, os modelos

estão em um nível de detalhamento suficiente para

serem completamente implementados.

l

Questões a serem trabalhadas:

(2)

l

Introdução

l Os modelos vistos até agora fornecem diversas informações sobre o sistema. No entanto...

l O objetivo desses modelos é fornecer um entendimento do problema correspondente ao sistema de software a ser desenvolvido.

l Modelo de casos de uso:

l Quais são as operações que devem ser executadas internamente ao sistema?

l A que classes estas operações pertencem?

l Quais objetos participam da realização deste caso de uso?

l

Introdução

l Modelo de Classes de Domínio:

l De que forma os objetos colaboram para que um determinado caso de uso seja realizado?

l Em que ordem as mensagens são enviadas durante esta realização?

l Que informações precisam ser enviadas em uma mensagem de um objeto a outro?

l Será que há responsabilidades ou mesmo classes que ainda não foram identificadas?

l Para responder tais questões, devemos construir Diagramas deInteração;

Interação

Interação

É um comportamento que compreende um

conjunto de mensagens trocadas entre um

conjunto de objetos em determinado contexto

para a realização de um propósito. Uma

mensagem é a especificação de uma

comunicação entre objetos, a qual contém

informações relacionadas ao que se espera

resultar dessa atividade

l Enfatizam interações entre objetos e seus relacionamentos, incluindo as mensagens que poderão ser trocadas entre eles;

l Devem ser usados quando se deseja visualizar o comportamento de vários objetos dentro de um único caso de uso, a partir das mensagens que são passadas entre eles; 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 OO normalmente contém diversos diagramas de interação. O conjunto de todos os diagramas de interação de

um sistema constitui o seu modelo de interações.

l

Princípio Básico: Mensagem

“Uma mensagem representa a requisição de um

objeto

remetente

a um

objeto receptor

para que este último

execute alguma

operação

definida para sua classe.

Essa mensagem deve conter

informação

suficiente para

que a operação do objeto receptor possa ser

executada”

l

O fato de um objeto “precisar de ajuda” indica sua

necessidade de enviar mensagens.

l

Na

construção

de

diagramas

de

interação,

(3)

Cliente Nome Endereco Telefone Data Nascimento

Cidade Nome UF 1

0..* 1

0..* mora

: Funcionario : Cliente : Cidade

1: ConsultarCidade(Nome)

2: Cidade Localizada

{Uma mensagem indica uma operação no objeto receptor}

ConsultarCidade(nome)

{se um objeto precisa de ajuda Para realizar suas responsabilidades, envia uma mensagem a outro objeto}

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.

l

Tipos de Mensagens

l Mensagem Simples: utilizada quando a natureza da mensagem não é relevante;

l Mensagem de Retorno:utilizada quando o objeto receptor responde ao remetente com uma outra mensagem;

l Mensagem Reflexiva: um objeto envia uma mensagem para si mesmo.

l

Tipos de Mensagens:

l Mensagem Síncrona: indica que o objeto remetente espera que o objeto receptor processe a mensagem antes de recomeçar o seu processamento.

l Ou seja, o remetente fica bloqueado até que o receptor termine de atender a requisição;

l Mensagem Assíncrona: é aquela na qual o objeto remetente não espera a resposta para prosseguir com o seu processamento;

l

Especificação de Mensagens

l As setas possuem rótulos que especificam a mensagem sendo enviada;

l este rótulo pode ser visto como a especificação das informações que são passadas pelo objeto remetente ao objeto receptor;

Dependendo do grau de detalhe desejado na modelagem, a especificação do rótulo de uma mensagem pode conter desde somente o nome da mensagem até a definição de

uma expressão que contenha todos os elementos

l

Especificação de Mensagens

l Expressão de seqüência:numeração das mensagens, de forma que determine quando uma mensagem foi enviada em relação as demais;

l Recorrência – pode ser usado com dois objetivos:

l inserção de cláusulas de condição para a execução de uma mensagem;

l indicar quantas vezes (iteração-repetição)uma mensagem deve ser enviada;

Expressão-seqüência recorrência: v := mensagem/operação (parâmetros)

(4)

l

Especificação de Mensagens

l 1: adicionarItem(item) l mensagem simples sem cláusula

l 3 [a > b]: trocar(a, b)

l mensagem simples com cláusula de condição

l 2 *: desenhar()

l Mensagem com cláusula de iteração e com limites indefinidos

l 2 *[i := 1..10]: desenhar()

l Mensagem com cláusula de iteração e com limites definidos

l

Especificação de Mensagens

l Variável : corresponde a um identificador de variável que recebe o valor retornado pela operação a ser executada no objeto receptor;

l o valor desta variável pode ser utilizado posteriormente;

l Mensagem: corresponde à expressão da chamada de uma operação definida na classe do objeto receptor. Pode conter parâmetros.

l

Os objetivos da construção do modelo de interação

são:

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

l Quais as operações de uma classe?

l Quais os objetos participantes da realização de um caso de uso (ou cenário deste)?

l Uma classe precisa de mais atributos?

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

l

A interação entre objetos para dar suporte à

funcionalidade de um caso de uso denomina-se

realização de um caso;

l a realização de um caso de uso descreve o comportamento de um ponto de vista interno do sistema;

l representada através de diagramas de interação;

l

Diagramas de Interação ajudam a documentar e

entender os aspectos dinâmicos do sistema;

l

Descrevem a seqüência de mensagens enviadas e

recebidas pelos objetos que participam em um caso

de uso;

l

Para cada

Caso de Uso:

l pode haver vários diagramas de interação a ele relacionado (um para cada cenário ou parte de – complexidade maior);

l um diagrama de interação modelando o caso com um todo;

Diagramas de Interação

Diagramas de Interação

Representam como o sistema interage internamente para que um ator atinja seu objetivo na realização de um caso de uso. A modelagem de um sistema de software orientado a objetos normalmente

contém diversos diagramas de interação. O conjunto de todos os diagramas de interação de um

(5)

l

Tipos de Diagrama de Interação:

l Diagramas de seqüência: ênfase à ordenação temporal das mensagens; e

l Diagramas de comunicação: ênfase à organização estrutural dos objetos que enviam e recebem mensagens.

l Até a versão 1.x chamava-se diagrama de colaboração

Diagrama de seqüência: mensagens enviadas no decorrer do tempo.

Diagrama de comunicação: mensagens enviadas entre objetos que estão relacionados.

l Apresenta o cenário de um determinadocaso de uso; l Consiste de um um número de objetos distribuídos em

linhas verticais;

l As mensagens trocadas entre os objetos são

representadas por setas;

l Possuem dois eixos:

l o eixo vertical, que mostra o tempo; e

l o eixo horizontal, que mostra os objetos envolvidos na

seqüência de um certo evento (atividade).

Expõe o aspecto do modelo que enfatiza o comportamento dos objetos em um sistema, incluindo suas operações, interações, colaborações e histórias de estado em seqüência temporal de mensagens e representação explícita de ativação de operações

:Objeto 1 Objeto 2

Mensagem 1

Mensagem 2

Mensagem 3

Mensagem 4

Ator Objeto

Linha de Vida

Mensagem

Foco de Controle

l

Atores

l Opcionalmente, os atores que participam da realização do caso de uso podem ser apresentados no diagrama de seqüência;

l os atores são representados graficamente com a mesma notação utilizada no diagrama de casos de uso.

l

Objetos

l Os objetos que participam da realização de um caso de uso devem ser posicionados no DS correspondente; l A notação utilizada para representar estes objetos é a

mesma dodiagrama de objetos;

:NomeClasse :nomeobjeto:NomeClasse Objeto anônimo Objeto nomeado

l

Multiobjetos

l Ummultiobjetoé o nome que a UML dá para umacoleção

de objetos de uma mesma classe. Pode ser utilizado para: l representar o lado muitos de uma associação de conectividade um

para muitos.

l representar uma lista (temporária ou não) de objetos sendo formada em uma colaboração.

l Um multiobjeto é representado na UML através de dois

retângulos superpostos.

l A superposição dos retângulos evita a confusão com a notação usada para objetos.

l O nome do multiobjeto é apresentado no retângulo que fica por cima e segue a mesma nomenclatura utilizada para objetos.

(6)

l

Linhas de Vida

l Cada objeto envolvido na seqüência é representado através de um retângulo com uma linha pontilhada vertical, chamada delinha de vida do objeto;

:Objeto1 :Objeto2

l

Focos de Controle

l correspondem a blocos retangulares posicionados sobre a linha de vida de um objeto.

l representam o tempo em que um objeto realiza a ação.

:Objeto1 :Objeto2

l

Mensagem

l Cada mensagem é representada por uma linha com seta dirigida horizontalmente entre as linhas de vida de dois objetos;

l É representada por uma seta com sentido objeto remetente / objeto receptor;

l A passagem do tempo é percebida observando-se a direção vertical no sentido de cima para baixo;

l

Mensagem

l Além disso, as mensagens são numeradas, indicando a seqüência em que ocorrem no diagrama;

l Cada mensagem possui um nome, podendo incluir parâmetros e informações de controle.

:Objeto2

1: Mensagem 1 2: mensagem 2 :Objeto1

Funcionario

Cadastrar Cliente

Cliente Nome Endereco Telefone Data Nascimento

Cidade Nome UF 1

0..* 1

(7)

: Funcionario : Cliente : Cidade

1: ConsultarCidade(Nome)

2: Cidade Localizada

3: Cadastrar(Cliente,Cidade)

4: Cliente Cadastrado

Cliente Nome Endereco Telefone Data Nascimento Cidade Nome UF 1 0..* 1 0..* mora ConsultarCidade(nome) Cadastrar(Cliente,Cidade)

: Funcionario : Cliente : Cidade

1: ConsultarCidade(Nome) 2: Cidade Localizada

3: Cadastrar(Cliente,Cidade)

4: Cliente Cadastrado

: Funcionario : Cliente : Cidade

2 [Se V_Cliente=false ]: BuscarCidade(Nome)

3: Cidade Localizada

4: Criar(Cliente,Cidade)

5: Cliente Cadastrado 1: V_Cliente:= VerificarCliente(Nome)

Cliente Nome Endereco Telefone Data Nascimento Cidade Nome UF 1 0..* mora ConsultarCidade(nome) VerificarCliente(Nome) Cadastrar(Cliente,Cidade) Vendedor

Efetuar Venda Produto Descrição Preço Unitário ItensVenda Quantidade Venda Data Venda ValorTotal 1..* 0..* 1..* 0..* Cliente Nome 1 0..* 1 0..*

: Vendedor : Venda : ItensVenda : Cliente : Produto

1: ObterCliente(Nome)

2: Cliente Selecionado

3*: Obter Produtos(Descrição)

4: Produtos Selecionados

5: EnviarVenda(Venda,Cliente,Produto, ItensVenda) 6: RegistrarVenda(Venda,Cliente)

7*: CriarItemVenda(Venda,Produto,ItensVenda)

8: Venda OK

: Interface

2:ConsultarCliente(Nome)

4*: Informarprodutos(Descrição) 1: InformarCliente(Nome)

l : Vendedor : Venda : ItensVenda : Cliente : Produto

3: Cliente Selecionado

5*: ConsultarProdutos(Descrição)

6: Produtos Selecionados

8: RegistrarVenda(Venda,Cliente)

9*: CriarItemVenda(Venda,Produto,ItensVenda)

(8)

Filmes Titulo NumeroCopias CopiasDisponiveis

ItensReserva DataDevolução Reserva

DataReserva

1..* 0..*

Cliente Nome 1

0..* 1

0..*

1..* 0..*

Funcionario

Reservar Filme

<<include>>

Atualizar Copias Disponiveis

l E o caso de uso “Reservar Filme?”

l

Fragmento Combinado

l A partir da versão 2.0, a UML formalizou a representação de alternativas/decisões;

l O Fragmento Combinado permite a descrição de um conjunto de possibilidades;

l Para isto, utilizamos o chamado Operador (operando) de Interação;

l Um Operador de Interação encontra-se dentro de um retângulo maior – o Fragmento Combinado, dividido por uma linha pontilhada (que podem ser várias, dependendo da necessidade);

l

Alguns Operadores de Interação:

l alt – (Alternativas): representar possíveis alternativas de

fluxo, onde uma deve ser escolhida (se...então...senão);

l opt– (Opção): difere de uma alternativa (onde uma opção

deve ser escolhida), indicando que uma opção será escolhida ou nada acontece (se...então);

l loop- indica que aquele fragmento passa por umloopna

linguagem.

loop [(<mínimo>,[<máximo>])]

onde:valor máximo é opcional ([ ]), mínimo não pode ser negativo e máximo deve ser maior ou igual ao mínimo

l

Exemplo 1

Cliente

Solicitar Extrato

Validar Conta

Validar Senha <<inc lude>>

<<include>>

(9)

DS Solicitar Extrato -alt

[se conta válida]

[senão]

...

...

: C liente :Conta

1: Inform a r N um ero C onta (N um C onta)

2: V alidar C onta (Num C onta)

4: In form ar S enha (S enha)

5 : V al idar Se nha ( Se nha) 3: M ens agem de S olic itaç ão de S enha

3: Men s agem de C ont a Invá lida

l Fragmento Combinado – Representação Gráfica

Fragmento Combinado

Operador de Interação

Um diagrama de comunicação dá ênfase à organização estrutural dos objetos que enviam e recebem mensagens. Mostra um conjunto de objetos, as conexões existentes

entre eles e as mensagens enviadas e recebidas pelos objetos.

l

É representado graficamente por:

l umboneco, representando o ator; l umretângulorepresentando os objetos;

l linhasrepresentando a comunicação entre os objetos; l setasindicando o sentido das mensagens;

l mensagens textuais indicando os eventos (troca de

mensagens) entre os objetos. : objeto1

: Ator1

1: evento1

2: Evento2

3: evento3

Ator

Mensagens

Comunicação Objeto

l

Por serem derivados das mesmas informações, o

diagrama

de

seqüência

e

o

diagrama

de

comunicação são semanticamente equivalentes;

l Assim, um diagrama pode ser convertido no outro sem

qualquer perda de informação;

l

Normalmente, pode-se escolher um deles para

representar as funções desejadas.

l

Vantagem: normalmente permite construir desenhos

mais legíveis comparativamente aos diagramas de

seqüência.

l

Desvantagem: não há como saber a ordem de

envio das mensagens a não ser pelas expressões

de seqüência.

Funcionario

Cadastrar Cliente

Cliente Nome Endereco Telefone Data Nascimento

Cidade Nome UF 1

0..* 1

(10)

: Funcionario : Cliente : Cidade

1: ConsultarCidade(Nome)

2: Cidade Localizada

3: Cadastrar(Cliente,Cidade)

4: Cliente Cadastrado

: Funcionario

: Cliente

: Cidade 1: BuscarCidade(Nome)

2: Cidade OK 3: CriarCliente(Cliente,Cidade)

4: Cliente OK

'

(

&

)*

'

(

&

+

+ '

,- ,

.

/0

1 !

.

( 234

.

/5 6

4

BEZERRA, Eduardo. Princípios de análise e projeto de sistemas com UML. Princípios de análise e projeto de sistemas com UML. Princípios de análise e projeto de sistemas com UML. Editora Campus, Princípios de análise e projeto de sistemas com UML. 2006.

UML Notation Guide UML Notation GuideUML Notation Guide

Referências

Documentos relacionados

Promovido pelo Sindifisco Nacio- nal em parceria com o Mosap (Mo- vimento Nacional de Aposentados e Pensionistas), o Encontro ocorreu no dia 20 de março, data em que também

Apenas foram submetidos aos protocolos de provocação e/ou dessensibilização com AAS, os pacientes com asma controlada e, portanto, os pacientes que tinham asma grave não

- Se o estagiário, ou alguém com contacto direto, tiver sintomas sugestivos de infeção respiratória (febre, tosse, expetoração e/ou falta de ar) NÃO DEVE frequentar

Segundo o mesmo autor, a animação sociocultural, na faixa etária dos adultos, apresenta linhas de intervenção que não se esgotam no tempo livre, devendo-se estender,

Sendo assim, percebe-se que o serviço de acolhimento constituiu-se, sobretudo, da necessidade de humanizar o atendimento, bem como de torna-lo mais ágil e efetivo, garantindo, desse

Podemos então utilizar critérios tais como área, arredondamento e alongamento para classificar formas aparentadas a dolinas; no processamento digital de imagem, esses critérios

Apesar da longa distância dos grandes centros urbanos do país, Bonito destaca- se, regionalmente, como uma área promissora dentro do Estado de Mato Grosso do Sul. Bonito,

A Geometria é essencialmente uma criação humana, ou um conjunto de criações que resultam de maneiras que o ser humano encontra para: transformar e representar o espaço