1 Diagrama de estado Higo Vale Kleber Baingo
2 O que representam? O comportamento interno das classes, ou seja, permitem a especificação da sua dinamica. Correspondem a uma especificação de como as classes devem ser implementadas.
3 Como construir Constrói-se um diagrama descrevendo o comportamento de cada classe (geralmente para o sistema todo, ou seja para todos os casos de uso. Eventuais diagramas complementares de certos módulos.
4 Estado Um momento ou situação na vida do objeto. Ele passa, ao longo de sua vida, por vários momentos: momento em que foi criado momento em que fez uma inicialização momento em que fez uma certa solicitação momento de seu desaparecimento, etc.
5 Notação de estado
6 Identificação dos EstadosOs estados são identificados através dos valores dos atributos
7 Transição de Estado Avanço de uma situação (estado) para outraCaminhos no diagrama representam os fluxos de execução de um objeto. Notação: Evento(argumentos) [Condição]/Ação
8 Evento Indica o nome de um sinal, mensagem, ou notificação recebida pelo objeto e que torna a transição habilitada Exemplos: – o recebimento de uma mensagem encaminhada pelo sistema operacional, – o recebimento de uma notificação (timer, interrupção, entrada de dados) gerada pelo sistema operacional – a chamada de uma função feita por outro objeto.
9 Argumentos, Condição, AçãoArgumentos : são valores recebidos junto com o evento; Condição : (ou guarda) expressão lógica, avaliada quando o evento, associado a uma ransição ocorrer; Uma transição só ocorre se o evento acontecer e a condição associada for verdadeira; Ação: ação (cálculo, atribuição, envio de mensagem, etc) executada durante a transição de um estado a outro;
10 Exemplo: Transições e Estados
11 Exemplo: Condições
12 Exemplo: Ações
13 Estruturas no Diagrama de EstadosSequência: fluxo de estados representados por encadeamentos de um estado e uma transição. Bifurcação: representa duas ou mais transições partindo de um mesmo estado Junção: representa duas ou mais transições conduzindo a um mesmo estado. Repetição: um encadeamento cíclico de estados (laço)
14 Exemplo de sequência
15 Exemplo de bifurcação/junção
16 Exemplo de repetição
17 Cláusula de envio Representa o envio de uma mensagem (ação no diagrama de estado) do objeto que se está modelando para algum outro objeto; Notação: nome-do-objeto.nome-da-mensagem
18 Exemplo: Cláusula de envioDiagrama de estados da classe CCtrl:
19 Atividades nos estadosAções associadas a um estado; podem levar um certo tempo para serem executadas e também serem interrompidas;
20 Atividades nos estadosEntrada: ação realizada no momento em que se alcança o estado ; - Realizadas antes de qualquer outra; – Devem estar nas transições que conduzem a certo estado e, são executadas antes de se alcançar efetivamente o estado.
21 Ações de entrada
22 Ações de Saída Saída: ação realizada exatamente no momento de abandonar um estado; Devem estar em todas as transições que partem de um determinado estado.
23 Ações de Saída
24 Ações nos estados Fazer (do) atividade não atômica (não composta por mais de uma instrução) realizada no interior do estado. Executada quando o objeto alcançar o estado e tiver concluído as eventuais ações de entrada e enquanto ele permanecer neste estado; Evento: realizada quando o objeto estiver no estado correspondente e ocorrer o evento indicado sem mudanca de estado – transição reflexiva com ações.
25 Estado Composto Um estado constituído de um conjunto de sub-estados;Aparece em visões expandidas do diagrama de estados. Em uma visão normal, o estado composto é mostrado sem seus subestados.
26 Exemplo estado composto
27 Diagrama de estados – Cláusulas de envio, comunicação entre objetosLembram DFD, fluxograma, diagrama de ações São mais poderosos pois incluem: – Cláusulas de envio, comunicação entre objetos – Sincronização e concorrência – Diferentes níveis de abstração
28 Referência Www.inf.ufpr.br/silvia/ESNovo/UML/pdf/DiagE stadosAI.pdfpt.wikipedia.org/wiki/Diagrama_de_transição_de_estado s stadosAI.pdf