Buscar

Conteudo_04

Prévia do material em texto

Juntamente com o diagrama/especificações de casos de uso e o diagrama de classes, o
diagrama de sequência forma o tripé da análise, ou seja, uma tríplice aliança de modelos
que podem ser usados nas fases de modelagem de requisitos e análise do sistema. Os três,
juntos, já são um excelente caminho de modelagem, nessas fases.
Uma das grandes contribuições do diagrama de sequência é identificar novos métodos para
as classes, além de colaborar com a identificação de qual classe deve conter um
determinado método.
Igualmente relevante é a utilização do diagrama de estados para as classes relevantes do
sistema em estudo. Através da análise do diagrama de transição de estados dos objetos de
um sistema, é possível prever as possíveis operações necessárias em função de eventos
que possam ocorrer, bem como melhorarmos e refinarmos o diagrama de classes com
novas propriedades (atributos e métodos).
1. Apresentar o diagrama de sequência, sob o enfoque da UML, com seus elementos;
2. Apresentar o diagrama de transição de estados, com ponto de vista da UML, com seus
elementos.
Os diagramas de interação, de forma geral, mostram como as classes colaboram em
determinados comportamentos. A UML, em sua versão 2.0, oferece algumas formas de
modelar interações, sendo o diagrama de sequência mais usado deles. Outro diagrama de
interação popular é o diagrama de comunicação que, nas versões anteriores a 2.0 da UML,
era chamado de diagrama de colaboração.
Num mesmo projeto, podemos até usar os 2 diagramas de interação: diagrama de
sequência ou comunicação (antigo colaboração), mas para interações ou comportamentos
diferentes. Não faz sentido usar ambos, por exemplo, para representar um mesmo cenário
de uso, pois eles têm o mesmo objetivo, porém com focos diferentes. Todavia, para
Linguagem de Modelagem Unificada (UML)
Aula 4: Diag. de Sequ., de Estados e de Atividade
Introdução
Objetivos
Diagramas de interação
cenários, casos de uso ou comportamentos diferenciados, podemos optar por um dos dois.
Em geral, usa-se apenas um deles por todo o projeto.
O diagrama de sequência é o mais adequado, pelo fato de focar a temporalidade (daí o seu
nome) da interação, que é relevante. Já o diagrama de comunicação foca nas mensagens
enviadas entre objetos que estão relacionados. Porém, cada um tem sua vantagem, que,
por sua vez, atua como desvantagem.
Diagrama de sequência
Vantagem: há como saber a ordem de envio das mensagens.
Diagrama de comunicação
Vantagem: normalmente, permite construir modelos mais legíveis comparativamente aos
diagramas de sequência.
Nesta aula, iremos nos ater apenas ao diagrama de sequência, devido à falta de tempo, mas
incentivamos que você pesquise e entenda o funcionamento do diagrama de comunicação
(ou colaboração, nas versões da UML anteriores a 2.0). Acompanhe, a seguir, o tripé da
análise.
Do ponto de vista da fase de análise de sistemas existem 3 modelos que se integram e
formam uma boa base mínima para modelagem e documentação de sistemas de
informação. São eles: diagrama e especificações de casos de uso, diagrama de classes e
diagrama de sequência, cuja relação é apresentada no esquema.
Esses três diagramas formam o chamado Tripé da Análise. Vejamos como tais diagramas se
integram.
Figura 1 – Tripé da análise
Autor: elaborado pelo autor
Casos de uso (em suas especificações) apresentam especificam o comportamento do
sistema (ou parte dele), descrevendo as funcionalidades deste. O caso de uso é um
conjunto de cenários, onde:
Atenção!
O tripé da análise
http://pos.estacio.webaula.com.br/cursos/ATU234/aula6/img/a04_t03a.png
1. O cenário é uma sequência de passos que descreve uma interação entre sistema e um
usuário.
2. Todo caso de uso tem o cenário principal, que é o “caminho sem erros”, ou seja, tudo
acontece sem nenhum problema ou exceção.
3. A cada problema ou exceção pode-se derivar um novo cenário, mostrando como o
sistema vai se comportar.
É sob essa ótica, onde o diagrama de sequência contribui com a descoberta de novas
operações, que para desenvolvermos esse diagrama de sequência é necessário ter em
mãos:
Diagrama de casos de uso;
Especificação de cada caso de uso;
Diagrama conceitual de classes.
O diagrama de classes, conceitual, mostra as classes do domínio do problema.
O diagrama de sequência mostra a interação entres os objetos (classes) de um
determinado cenário (caso de uso).
Para cada cenário de um caso de uso, teremos um diagrama.
Em contrapartida, o diagrama de sequência contribui com a descoberta de novas
operações, que serão acrescidas nos métodos das classes envolvidas no diagrama
de sequência.
Vale observar que, ao elaborarmos o diagrama de sequência, podemos realizar alterações
de melhorias e acréscimos tanto nas especificações de casos de uso como no diagrama de
casos de uso e, principalmente, no diagrama de classes, onde, além de novos métodos para
as classes já existentes, poderemos também modelar novas classes. Essas alterações são
normais, sadias e realmente acontecem, pois à medida que vamos evoluindo e nos
aprofundando no sistema, aumentamos nossa compreensão e capacidade de modelar o
sistema mais adequadamente. A seguir, vamos aprofundar sobre o diagrama de sequência.
O diagrama de sequência visa mostrar como as classes envolvidas interagem (trocam
mensagens) para a realização de um caso de uso, mais especificamente de um cenário de
uso (parte de um caso de uso). O nome “sequência” advém do fato de ele descrever, ao
longo da linha do tempo, a sequência de comunicações entre os objetos.
Veja, a seguir, o primeiro exemplo de diagrama de sequência, a partir do qual explicaremos
os elementos básicos e a correlação com casos de uso e classes.
Atenção!
O diagrama de sequência
Figura 2 – Diagrama de sequência
Autor: elaborado pelo autor
1. O ato é o mesmo do caso de uso: correntista representado por boneco.
2. Interface é o formulário com o qual o ator interage.
3. Conta Corrente e Movimento Conta são classes do modelo conceitual de classes.
4. ‘Agencia e Conta’ e ‘Senha’ são dados informados pelo ator correntista sobre sua conta
corrente.
5. Validar AgConta (Agencia e Conta) e Validar Senha são métodos da classe Conta
Corrente, que são chamados por uma mensagem síncrona enviada à classe.
6. ObterSaldoConta (Agencia, Conta, Data) é um método da classe Movimento Conta, que
é chamado por uma mensagem síncrona enviada à classe.
7. ObterSaldoConta, por sua vez, chama o método Calcular Saldo (Data) através de uma
autochamada, ou seja, o método chamado pertence à própria classe. Isso também é
chamado de autodelegação.
8. A linha pontilhada vertical que aparece em cada elemento: Ator, Interface e classes
chama-se Linha da Vida.
9. A caixa que aparece ao longo da Linha da Vida chama-se Caixa de Ativação e mostra
quando cada elemento está ativo na interação.
10. Observe que antes da chamada os métodos ValidarSenha têm [Agencia e Contas
Validas]. Isso é uma condição de guarda. Entre colchetes as condições são
apresentadas. O método ValidarSenha somente será executado se a condição for
satisfeita.
11. Da mesma forma, antes da chamada ao método ObterSaldoConta (Agencia, Conta e
Data), temos a condição de guarda [Ag, Conta e Senha válidos], indicando que o referido
método apenas será executado se a condição for verdadeira.
1) Cabe destacar que o diagrama de sequência apresentado refere-se ao cenário principal
do caso de uso Emitir Saldo Conta, abaixo descrito e cujo trecho de diagrama também é
apresentado.
Especificação de casos de uso
Caso de Uso: Emitir Saldo Conta
Cenário Principal
1. Correntista Informa Agencia e Conta corrente
2. Sistema valida Agencia e Conta
3. Correntista Informa senha de acesso
4. Sistema valida senha de acesso
5. Sistema calcula saldo do dia corrente, com base nas movimentações da conta e saldo
anterior.
6. Sistemas apresenta saldo ao correntista
2) Cabe destacar que o diagrama de sequência apresentado refere-se ao Cenário Principal
do caso de uso Emitir Saldo Conta, abaixo descrito e cujo trecho de diagramaestá abaixo.
Trecho de diagrama de caso de uso relacionado à interação:
http://pos.estacio.webaula.com.br/cursos/ATU234/aula6/img/a04_t04a.png
Figura 3 – Diagrama de caso de uso
Autor: elaborado pelo autor
3) Cabe destacar que o diagrama de sequencia apresentado refere-se ao Cenário Principal
do caso de uso Emitir Saldo Conta, abaixo descrito e cujo trecho de diagrama está abaixo.
Diagrama de classes – a figura abaixo exibe o trecho de diagrama de classe relacionado
a esse diagrama de sequência:
Figura 4 – Diagrama de classe
Autor: elaborado pelo autor
Dentre os elementos do diagrama de sequência, podemos destacar:
Os objetos participantes da interação são organizados na horizontal;
Abaixo de cada objeto existe uma linha (linha de vida);
Cada linha de vida possui o seu foco de controle (caixa de ativação);
O foco de controle indica que o objeto está fazendo algo;
As mensagens entre objetos são representadas com linhas horizontais rotuladas
partindo da linha de vida do objeto remetente e chegando à linha de vida do objeto
receptor.
A figura a seguir, extraída do livro UML essencial: um breve guia para a linguagem-padrão
de modelagem de objetos, de Martin Fowler, mostra os elementos principais de um
diagrama de sequência. Todos os elementos que citamos no exemplo dado anteriormente
estão bem elucidados nela.
Figura 5 – Diagrama de sequência
Autor: elaborado pelo autor
O diagrama de sequência e seus elementos
http://pos.estacio.webaula.com.br/cursos/ATU234/aula6/img/a04_t04b.png
http://pos.estacio.webaula.com.br/cursos/ATU234/aula6/img/a04_t04c.png
http://pos.estacio.webaula.com.br/cursos/ATU234/aula6/img/a04_t05a.png
1. Participante: Ator e classes que participam da interação;
2. Linha da vida de cada participante;
3. Caixa de ativação indicando o quanto o participante está ativo na interação;
4. Mensagem: chamado de um método da classe, onde chega a mensagem;
5. Retorno: mensagem de retorno da mensagem (chamada ao método da classe);
6. Autochamada: chamada de uma método da própria classe.
Representando decisões no diagrama de sequência
Muitas vezes, precisamos representar que determinadas mensagens serão enviadas ou não,
de acordo com uma condição, chamada condição de guarda, ou, ainda, representar um
conjunto de mensagens mutuamente exclusivas.
Conforme podemos observar na imagem abaixo, vemos um trecho de diagrama de
sequencia, onde representamos a decisão. Observe que temos o retângulo, com uma linha
tracejada dentro.
Na parte de cima, inicial do retângulo, temos a condição de guarda [Tipo Cliente =F] e na
parte de baixo, após a linha tracejada, temos outra condição de guarda [Tipo Cliente = F].
Vejamos como funciona:
Figura 6 – Decisões
Autor: elaborado pelo autor
1. O ator informa o tipo de cliente, que pode ser F (física) ou J (jurídica)
2. Se o Tipo Cliente = F (primeira condição de guarda) = VERDADE, executa-se as
mensagens que estão associadas a essa condição, ou seja as mensagens que estão
antes do tracejado.
Ator informa os dados da pessoa física (Dados Cliente Fis)
Ocorre a inserção desses dados , através da chamada ao método Inserir CliFis(), que
está na classe Pessoa Física
3. Se o Tipo Cliente = F = FALSO, desvia-se para a execução das mensagens que estão
após a linha tracejada, onde temos uma outra condição de guarda a ser avaliada
4. Se Tipo Cliente = J (segunda condição de guarda) = VERDADE executa-se as mensagens
que estão associadas a essa condição, ou seja as mensagens que estão após o
tracejado.
a) Ator informa os dados da pessoa Juridica (Dados Jur)
a) Ocorre a inserção desses dados , através da chamada ao método Inserir CliJur(), que
está na classe Pessoa Jurídica.
Decisões e repetições no diagrama de sequência
http://pos.estacio.webaula.com.br/cursos/ATU234/aula6/img/a04_t06a.png
O exemplo a seguir, mostra que podem haver tantas condições de guarda quantas forem
necessárias. Abaixo temos Opcão = A, Opção = B e Else.
Figura 7 – Decisões
Autor: elaborado pelo autor
Como funciona este diagrama?
Se [Opcão = A] é verdade, chama o método Msg1 do Objeto 1
Senão
Se [Opção = B] é verdade, chama o método Mgs2 do Objeto 2
Senão
Chama o método Msg3 do Objeto 3
Agora vejamos como representar Repetições no diagrama de sequencia. Além dos
elementos já discutidos, o diagrama de sequencia possibilita que especifiquemos
REPETIÇõES, ou seja uma ou mais mensagens que são executadas repetidas vezes. O
trecho de diagrama de sequencia abaixo, a representação da repetição, na caixa LOOP,
chamada quadro de interação, com a condição de guarda [Para cada item de venda], ou
seja enquanto houver item na venda e o caixa (ator) digitar um cod produto, as mensagens e
interações contidas na caixa LOOP serão executadas.
Figura 8 – Repetições
Autor: elaborado pelo autor
O diagrama de sequência dispõem de 2 notações extras para representar, respectivamente,
a criação (<<Create>>) e a destruição (<<Destroy>>) de objetos participantes da interação.
Na figura, vemos o uso da criação do participante (Objeto Criado). Após criado, quando
recebe a mensagem <<Create>>, representada pelo método (CriaObjeto()), o Objeto Criado
Criação de destruição de objetos
http://pos.estacio.webaula.com.br/cursos/ATU234/aula6/img/a04_t06b.png
http://pos.estacio.webaula.com.br/cursos/ATU234/aula6/img/a04_t06c.png
pode receber e enviar mensagens normalmente.
Na figura, temos o exemplo da destruição de objetos, quando o objeto destruidor envia a
mensagem <<destroy>>, representada pela execução do método DestroyMessage(). O
Elemento, representado pelo X no objeto destruído, representa o seu fim.
Um objeto pode se autodestruir, o que é representado por um X ao final da linha de vida de
um objeto (nesse caso, é como se o objeto enviasse uma destruição a si próprio).
Figura 10 – Autodestruição
Autor: elaborado pelo autor
Como hoje as linguagens possuem sistema de coleta de lixo, não se excluem objetos
diretamente, mas pode ser relevante indicar que o objeto não é mais necessário e não pode
ser utilizado.
Os exemplos dados de diagramas de sequência usaram, até aqui, apenas um tipo de
mensagem, a síncrona, ou seja, a que, uma vez enviada, aguarda o retorno (seta pontilhada
na direção contrária à mensagem enviada) com a sua conclusão (tal qual uma chama de
rotina em um programa).
O outro tipo é a assíncrona, ou seja, a que, uma vez enviada, não necessitar esperar por uma
resposta, sendo possível continuar o fluxo do processamento.
Figura 11 – Tipos de mensagens
Autor: Urupong/istock
Atenção!
Tipos de mensagens: síncronas e assíncronas
http://pos.estacio.webaula.com.br/cursos/ATU234/aula6/img/a04_t07b.png
http://pos.estacio.webaula.com.br/cursos/ATU234/aula6/img/11tiposMensagens.jpg
Um bom exemplo de uso de mensagens assíncronas se dá em sistemas que necessitem de
processamento concorrente, e por isso devem permitir representar mensagens
concorrentes assíncronas (mensagens que são processadas em paralelo sem um tempo
definido para a sua realização e sem esperar o retorno da mensagem para prosseguir).
A figura a seguir mostra um exemplo de mensagem assíncrona (seta vazia), representada
pela chamada ao método Message1(), que sai do Objeto 1 para o Objeto 2. Mostramos, logo
abaixo, a Message2(), síncrona (seta cheia), para que se perceba a diferença.
Figura 12 – Mensagem assíncrona
Autor: elaborado pelo autor
Uma das questões de relevância que surge ao modelarmos classes é: qual classe deve ser
responsável por um determinado método, ou seja, em qual classe devemos alocar esse
método. Para tal decisão devemos levar em consideração volume, desempenho, segurança
e outros aspectos físicos inerentes à implementação.
Existe um conjunto de critérios que devem ser avaliados, e nosso foco aqui não é nos
estendermos nesse assunto, mas alertar da preocupação. Apenas para citar: devemos
alocar os métodos de forma que tenhamos baixo acoplamento e alta coesão entre as
classes.
Existe um padrão (solução já dada, estudada e adaptada) que diz que:
- O método deve ser colocado na classe queconhece a informação (tratada pelo método).
Esse padrão chama-se “padrão especialista”.
Padrão é uma solução já usada em projetos anteriores, que deve ser usada e ajuda a dar
soluções eficientes em nossos projetos. Existem outros padrões classificados em diferentes
tipos a serem considerados, que podem ser objeto de uma pesquisa para expansão dos
conhecimentos nesse sentido.
Os diagramas de interação, em que o diagrama de sequência é um deles, ajudam a clarear
essa questão, e, muitas vezes, perceberemos que fizemos uma escolha equivocada da
classe onde inicialmente alocamos determinados métodos. A seguir, faça a atividade
proposta, relacionada ao conteúdo visto até aqui.
Considere o diagrama de casos de uso, a especificação (descrição textual) do caso de uso
“Registrar Locação”, e o diagrama de classes a seguir.
Clique aqui [../downloads/a04_t10a.pdf] para visualizar os diagramas.
Responsabilidade das classes
Atividade proposta
http://pos.estacio.webaula.com.br/cursos/ATU234/aula6/img/a04_t08a.png
http://pos.estacio.webaula.com.br/cursos/ATU234/downloads/a04_t10a.pdf
Com base nessa documentação apresentada, elabore o diagrama de sequência para o
cenário principal do caso de uso “Registrar Locação”.
Clique aqui [../downloads/a04_t10b.pdf] para visualizar uma das possíveis
respostas, incluindo as alterações propostas para o diagrama de classes.
O diagrama de máquina de estados representa os possíveis estados de um objeto:
demonstram, por meio das transições, os eventos que geram a mudança.
Esse tipo também é chamado de diagrama de transição de estados, que chamaremos de
DTE doravante.
Figura 13 – Diagrama de máquina de estados
Autor: Urupong/istock
O Diagrama de Máquina de Estados representa os possíveis estados de um objeto,
demonstram, por meio das transições, os eventos que geram a mudança.
O estado de um objeto é uma condição específica de um objeto, em algum momento em
que o mesmo esta sendo usado no sistema. Segundo a definição de UML Guia de
Usuário[Booch, Rumbauch e Jaconson, 2006], estado é uma condição ou situação na vida
de um objeto durante o qual o objeto satisfaz alguma condição, realiza alguma atividade ou
aguarda um evento. Um objeto permanece em um estado por um tempo finito.
Um evento é a ocorrência de um estímulo gerado para o objeto, capaz de mudar o
seu estado atual.
Uma transição indica um movimento de um estado para o outro.
Vamos identificar os elementos do Diagrama de Estados, analisando a figura abaixo que
apresenta o diagrama de estado de uma Classe QUARTO de um Sistema de Hotel.
O diagrama de máquina de estados
Estados, evento e transição
http://pos.estacio.webaula.com.br/cursos/ATU234/downloads/a04_t10b.pdf
http://pos.estacio.webaula.com.br/cursos/ATU234/aula6/img/13diagramaMaquina.png
Figura 14 – Estados, evento e transição
Autor: gorodenkoff/istock.com
1. O inicio ocorre no pseudo estado inicial que é a bola preta cuja seta aponta para o
estado DISPONíVEL, efetivamente o estado que fica o quarto inicialmente;
2. Estando no estado de Disponível o quarto pode mudar para o estado de Reservado
quando ocorre o evento “Cliente faz Reserva”;
3. Estando no estado de Reservado podem haver 2 transições
De volta para o estado de Disponível se ocorrer o evento “Reserva é cancelada”
Para o estado de Ocupado , se ocorrer o evento “Cliente faz checkin”;
4. Do estado Ocupado, vai haver a mudança para o estado Em Limpeza, na medida em
que ocorre o evento “Cliente faz checkout”;
5. Estando no estado Em Limpeza, o quarto voltará ao estado de Disponível na ocorrência
do evento “Atendente libera Quarto”;
6. Estando no estado Disponível, o Quarto pode mudar também para o estado Final,
quando o mesmo for excluído do sistema (evento);
A figura a seguir, um diagrama simples de estados, mostra os elementos básicos que foram
aplicados no exemplo anterior.
Figura 15 – Diagrama de estados
Autor: elaborado pelo autor.
O estado inicial indica o estado quando o objeto é criado, por isso citou-se como
pseudoestado; pois, na verdade, ainda não é um estado propriamente. Um diagrama de
transição de estados (DTE) somente pode ter estado inicial.
estados cíclicos, como as estações do ano, os sinais de trânsito e até mais de um, no DTE.
O diagrama de estados e seus elementos básicos
http://pos.estacio.webaula.com.br/cursos/ATU234/aula6/img/a04_t12a.png
http://pos.estacio.webaula.com.br/cursos/ATU234/aula6/img/a04_t13a.png
A transição, em um diagrama de estados, indica um movimento de um estado para outro.
Cada transição possui um rótulo que possui três partes: Assinatura do gatilho [sentinela] /
atividade, onde:
1. Assinatura do gatilho, via de regra, é um único evento que demanda a mudança de
estado. No exemplo inicial, sobre os estados do QUARTO de hotel, usamos apenas
assinatura do gatilho, ou seja, o evento que ocasiona a transição de estado. É raro que
esteja ausente, mas pode ocorrer e denota que a transição é feita imediatamente.
2. Sentinela, se estiver presente, é uma condição que deve ser verdadeira para que a
transição ocorra. Se ausente, indica que a transição sempre acontece.
3. Atividade é um comportamento executado durante a transição. A ausência de atividade
diz que nada é feito durante a transição.
Um evento pode denotar mais de uma transição, e, nesse caso, as sentinelas devem
expressar condições que sejam mutuamente exclusivas, por motivos óbvios. O estado final
indica que ciclo do objeto está encerrado e sua máquina de estados completa.
Ações de Entrada e Saída
São ações que são realizadas dentro do estado, assim que entra no estado (entrada) e antes
de sair do estado (saída), independente da transição. A cláusula ENTRY denomina uma ação
de entrada no estado, assim como a cláusula EXIT é usada para ações de saída.
Transição interna
Os estados pode reagir a eventos, que não ocasionam transição, usando atividades internas.
Ou seja, são eventos que precisam ser tratados, mas que não ocasionam transição de
estado. As atividades internas não disparam ações de entrada e saída, na medida em que
não saem e entram do objeto, em decorrência do evento.
Atividades
Em geral, objeto fica ocioso em um estado até que um evento ocorra. Porém, pode ser que
você deseje que um objeto permaneça realizando uma tarefa até que determinado evento
ocorra. Ou seja, executa uma atividade enquanto está nesse estado. A cláusula DO indica
que há uma atividade naquele estado.
Retomando ao exemplo do DTE referente à classe QUARTO do sistema de hotel,
poderíamos eliminar o estado EM LIMPEZA, fazendo com que a LIMPEZA seja uma ação de
saída (Exit) do estado OCUPADO, e, assim, reduziremos o número de estados. Em outras
palavras: quando o cliente fizer o checkin, evento que ocasiona a transição de OCUPADO,
em vez de ir para o estado EM LIMPEZA, iria direto para DISPONÍVEL, e acrescentaríamos
uma ação de saída (EXIT) de nome limpeza ao estado OCUPADO.
Veja um exemplo de como declarar no estado, ações de entrada (ENTRY), de saída (EXIT) e
atividades (DO).
A continuidade do exemplo, acrescentando-se uma transição interna.
O evento que demanda a ação;
A condição de guarda para a execução da atividade;
A atividade interna que será realizada.
Detalhando a transição
Ações de entrada e saída, transições internas e atividades
Um superestado ajuda a simplificar a modelagem de comportamentos complexos, sendo
composto de vários estados . Um superestado é composto de subestados e é chamado de
estado composto. Um estado composto pode ser sequencial ou concorrente. Abaixo o
exemplo de um superestado sequencial, ilustrado em 2 imagens.
Figura 19 – Superestados
Autor: elaborado pelo autor
O primeiro diagrama é o principal e tem 1 superestado, de nome ATIVO. Observe que ele
tem um símbolo dentro, que mostra que contém em si outros estados.
A segunda imagem mostra o desdobramento do estado ATIVO, compostos dos subestados
SOLICITADO, EM PRODUÇãO, EMBALANDO e ENTREGUE.
Figura 20 – Desdobramentos do estado ATIVO
Autor: elaborado pelo autor
O Estado CANCELADO tem uma transição doestado ATIVO, denotando que pode haver
uma transição de qualquer estado do superestado ATIVO para o estado CANCELADO. Se
não fosse assim haveria 1 transição de cada estado para CANCELADO, o que não estaria
errado, mas tornaria o desenho mais complexo.
O DTE (diagrama de transição de estado) deve ser elaborado para classes cujos objetos
tenham 2 ou mais estados.
1. Identifique todos estados relevantes para a classe.
2. Analise os possíveis eventos que ocasionam mudança de estado.
Para cada evento, identifique qual a transição que ele ocasiona.
Superestados
Passo a passo para construção do DTE
http://pos.estacio.webaula.com.br/cursos/ATU234/aula6/img/a04_t16a.png
http://pos.estacio.webaula.com.br/cursos/ATU234/aula6/img/a04_t16b.png
3. Para cada estado:
Identifique as transições possíveis quando um evento ocorre;
Identifique os eventos internos e ações correspondentes.
4. Para cada transição:
Verifique se há fatores que influenciam no seu disparo (definição de condições
de guarda e ações).
5. Para cada condição de guarda e para cada ação, identifique os atributos e ligações
eenvolvidos.
6. Defina o estado inicial e os eventuais estados finais.
7. Desenhe o diagrama.
O DTE pode ser construído com base nas especificações de casos de uso, nos diagramas
de interação e nos diagramas de classes.
Novas propriedades (atributos e métodos) podem ser descobertos, ao elaboramos
o DTE, e devem ser incorporados ao diagrama de classes.
Pode ser necessária a atualização de um ou mais métodos de uma classe para refletir o
comportamento do objetos nos respectivos estados.
Por exemplo, o comportamento do método sacar() da classe ContaBancária varia
em função do estado no qual essa classe se encontra. E saques não podem ser
realizados em uma conta que esteja no estado bloqueada.
Para saber mais sobre as versões da UML, acesse o link.
Versões UML - Mind Map.
Clique aqui [https://www.mindomo.com/pt/mindmap/versoes-%20uml-
164c4e92e9c8458ca29cd8e569b1511f]
Para saber mais sobre UML, acesse o site Unified Modeling Language (UML) Resource Page.
Clique aqui [http://www.uml.org/]
Contribuições do DTE ao diagrama de classes
Aprenda mais
Exercícios de fixação
Questão 1 - (Eletrobrás) Com relação ao diagrama de sequência, assinale a resposta correta.
Mostra a temporalidade dos eventos que afetam o sistema.
Ajuda na identificação de novos casos de uso.
https://www.mindomo.com/pt/mindmap/versoes-%20uml-164c4e92e9c8458ca29cd8e569b1511f
http://www.uml.org/
Mostra a sequência temporal das mensagens trocadas entre os objetos na realização
de um cenário de uso.
Mostra como as classes se relacionam, indicando quantos objetos participam do
relacionamento.
Mostra o relacionamento entre os casos de uso.
Questão 2 - Com relação ao relacionamento entre os diagramas de caso de uso mais
especificação dos casos de uso, diagrama de classe e de sequência, analise as assertivas
abaixo.
I. O diagrama de sequência se baseia no diagrama de classes para obter os cenários de
uso.
II. O diagrama de sequência retorna ao diagrama de classe os novos métodos
descobertos em sua elaboração.
III. O diagrama de sequência usa a especificação de caso de uso para ver o passo a passo
das mensagens, a ordem de suas ocorrências e os cenários de uso.
IV. O diagrama de sequência usa o diagrama de classes para identificar as classes que
contêm os objetos que interagem.
Com base em sua análise, assinale a opção correta:
Estão corretas apenas as opções II, III e IV.
Estão corretas apenas as assertivas II e IV.
Estão corretas apenas as assertivas I, II e IV.
Estão corretas apenas as assertivas I e IV.
Estão corretas apenas as assertivas II e III.
Questão 3 - O diagrama de sequência é fundamental, uma vez que relaciona dois outros
diagramas de suma relevância: classes e casos de uso. Sobre os conceitos e elementos do
diagrama de sequência, analise as assertivas que se seguem:
I. O diagrama de sequência mostra quais as classes, e como (através de que método) elas
realizam as funcionalidades de um determinado caso de uso.
II. Uma das limitações do diagrama de sequência é a impossibilidade de representar
mensagens disparadas sob alguma condição.
III. Iterações podem ser representadas no diagrama de sequência, e facilmente podemos
identificar o conjunto de mensagens que se repetem por um retângulo envolvendo tais
mensagens.
IV. Uma das limitações do diagrama de sequência é a impossibilidade de representar
chamadas de métodos da própria classe.
Com base em sua análise das assertivas, assinale a opção que indica as alternativas
corretas.
Estão corretas apenas as assertivas I e III.
Estão corretas apenas as assertivas II, III e IV.
Estão corretas apenas as assertivas III e IV.
Estão corretas apenas as assertivas II e III.
Estão corretas as assertivas I, II, III e IV.
Questão 4 - (IBGE) Sobre os diagramas de sequência e comunicação, é correto afirmar:
Não se destinam ao mesmo objetivo.
Destinam-se ao mesmo objetivo, mas devemos sempre usar os dois juntos.
Destinam-se ao mesmo objetivo, e o de sequência evidencia a colaboração entre os
objetos.
Destinam-se ao mesmo objetivo, e o de comunicação evidencia o tempo de envio das
mensagens.
Destinam-se ao mesmo objetivo, e o de sequência mostra a ordem sequencial, no
tempo, em que as mensagens são trocadas entre os objetos.
Questão 5 - Observe o diagrama de sequência a seguir.
Analise as assertivas a seguir relativas ao diagrama de sequência.
I. Msg1(), Msg2() e Msg3() são enviadas incondicionalmente.
II. Msg3() sempre será enviada.
III. Msg1() somente será enviada se opção = A.
IV. Msg2() somente será executada se Opção = B.
Com base em sua análise, assinale a única opção correta.
Estão corretas apenas III e IV.
Estão corretas apenas II, III e IV.
Estão corretas I, II, III e IV.
Nenhuma assertiva é correta.
Está correta apenas II.
Questão 6 - (TRE): O diagrama de estados:
Mostra o fluxo de informações do sistema.
Mostra apenas os estados de uma classe.
Mostra cada estado e as respectivas transições de estado de um objeto.
http://pos.estacio.webaula.com.br/cursos/ATU234/aula6/img/a04_obj01_q05.png
Mostra as atividades de um classe.
Mostra os estados de um caso de uso.
Questão 7 - Quando devemos modelar o diagrama de estado de uma classe?
Para toda classe do modelo de negócios.
Para toda classe cujo objeto tenha no mínimo 3 estados.
Para toda classe cujo objeto tenha pelo menos 2 estados.
Para toda classe cujos métodos forem complexos.
Para toda classe de diagrama de projeto.
Questão 8 - (Eletrobras) Observe o diagrama de transição de estados a seguir. Suponha que,
num dado momento, o sistema se encontra no Estado0 e que ocorra a seguinte sequência
de eventos: a, b, c, b, b, b, c, a.
O estado do sistema após a ocorrência desses eventos será:
Estado0
Estado3
Estado1
Estado4
Estado2
Questão 9 - No que se refere às características avançadas do diagrama de transição de
estados, assinale a única opção errada.
Uma ação de entrada de um estado é executada sempre que entra naquele estado.
Uma ação de saída de um estado é executada durante todo o tempo em que o objeto
encontra-se naquele objeto.
Uma atividade interna é executada até que um evento ocorra.
http://pos.estacio.webaula.com.br/cursos/ATU234/aula6/img/a04_obj02_q03.png
Nesta aula, você:
Compreendeu a integração dos modelos de casos de uso, de classes e sequência
que formam o tripé da análise num conjunto mínimo de modelos que podem ser
usados nas fases de análise de requisitos e de sistemas;
Identificou os elementos do diagrama de sequência da UML;
Aprendeu a elaborar um diagrama de sequência;
Identificou os elementos do diagrama de estados da UML;
Aprendeu a elaborar um diagrama de estados.
BEZERRA, Eduardo. Princípios de análise e projeto de sistemas com UML, 2/E. 2. ed.
Campus, 2006. Capítulo 1.
BOOCH, G.; JACOBSON, I.; RUMBAUGH, J. UML - guia do usuário. 2. ed. Rio de Janeiro:
Campus, 2006.
FOWLER, M. UML Essencial: um breve guia para a linguagem-padrão de modelagem de
objetos. 3.ed. Porto Alegre: Artmed, 2005.
LARMAN, C. Utilizando UML e padrões: uma introdução à análise e ao projeto orientados a
objetos e ao desenvolvimento interativo. 3. ed. Bookman, 2008.
PRESSMAN, R. S. Engenharia de Software: uma abordagem profissional. 7. ed. McGraw Hill
Brasil – Grupo A, 2011.
SOMMERVILLE, I. Engenharia de Software. 8. ed. Pearson, 2007.
Um superestado é composto de outros estados.
E possível haver uma transição de um superestado para um estado X, indicando que de
qualquer estado do superestado poderá haver a transição para o estado X.
Questão 10 - Como se chama a seta que indica, no Diagrama de Transição de Estados, a
mudança de um estado X para um estado Y?
Transição
Evento
Ação interna
Atividade externa
Ação de EXIT
Síntese
Referências

Continue navegando