! " # $ "#%%&&& %" %
'
(
&
)*
'
(
&
+
+ '
,- ,
.
/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:
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,
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)
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
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.
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
: 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)
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>>
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 semqualquer 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
: 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