Você está na página 1de 6

O que representam?

Diagrama de Estados
O comportamento interno das classes, ou seja, permitem a especificao da sua dinamica. Correspondem a uma especificao de como as classes devem ser implementadas.

Como construir
Constri-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 mdulos.

Estado:
Um momento ou situao na vida do objeto. Ele passa, ao longo de sua vida, por vrios momentos:
momento em que foi criado, momento em que fez uma inicializao, momento em que fez uma certa solicitao, momento de seu desaparecimento, etc.

Notao para estados


Nome do estado

Identificao dos Estados


Os estados so identificados atravs dos valores dos atributos.

Estado Inicial

Estado Final
Curso aberto Curso completo

Atributo numAlunos de Curso <10

Atributo numAlunos de Curso =10

Transio de estado
Avano de uma situao (estado) para outra Caminhos no diagrama representam os fluxos de execuo de um objeto. Notao: Evento(argumentos) [Condio]/Ao

Evento
Indica o nome de um sinal, mensagem, ou notificao recebida pelo objeto e que torna a transio habilitada Exemplos:
o recebimento de uma mensagem encaminhada pelo sistema operacional, o recebimento de uma notificao (timer, interrupo, entrada de dados) gerada pelo sistema operacional a chamada de uma funo feita por outro objeto.

Argumentos, Condio, Ao
Argumentos : so valores recebidos junto com o evento [Condio] : (ou guarda) expresso lgica, avaliada quando o evento, associado a uma ransio ocorrer. Uma transio s ocorre se o evento acontecer e a condio associada for verdadeira. / Ao: ao (clculo, atribuio, envio de mensagem, etc) executada durante a transio de um estado a outro.

Exemplo: Transies e Estados

matrculaEncerrada Curso aberto Curso completo

matricularAluno

Exemplo: Condies

Exemplo: Aes
matrculaEncerrada [numAlunos=10] Curso completo

Curso aberto

matrculaEncerrada [numAlunos=10]

Curso aberto Curso completo

matricularAluno [numAlunos<=10] / numAlunos++ matricularAluno [numAlunos<=10] Transiao reflexiva: parte de um estado e chega No mesmo estado de partida

Estruturas no Diagrama de Estados


Sequncia: fluxo de estados representados por encadeamentos de um estado e uma transio. Bifurcao: representa duas ou mais transies partindo de um mesmo estado Juno: representa duas ou mais transies conduzindo a um mesmo estado. Repetio: um encadeamento cclico de estados (lao)

Exemplo de sequncia
mostrando janela aguardando dados recebendo dados

Exemplo de bifurcao/juno
bifurcao

Exemplo de repetio
mostrando janela aguardando dados recebendo dados [x>10]

recebendo dados

juno

dados mostrando janela aguardando dados

[x<=10]/x++ fim imprimindo mensagem

Clusula de envio
Representa o envio de uma mensagem (ao no diagrama de estado) do objeto que se est modelando para algum outro objeto. Notao: ^nome-do-objeto.nome-da-mensagem

Exemplo: Clusula de envio


Diagrama de estados da classe CCtrl:
^interf.Iniciar()

iniciando comunicao

executando processo

^interf.Processar()

encerrando processo

Diagrama de sequncias:
:CCtrl
^interf.Iniciar() ^interf.Processar()

interf:Interf

Atividades nos estados


Aes associadas a um estado; podem levar um certo tempo para serem executadas e tambm serem interrompidas
curso completo do: relate que no h vagas

Atividades nos estados


Entrada: ao realizada no momento em que se alcana o estado
Realizadas antes de qualquer outra Devem estar nas transies que conduzem a certo estado e, so executadas antes de se alcanar efetivamente o estado.

Aes de entrada
recebendo dados

Aes de sada
Sada: ao realizada exatamente no momento de abandonar um estado. Devem estar em todas as transies que partem de um determinado estado.

imprimindo mensagem

recebendo dados

imprimindo mensagem

evento a/ x=0

evento b/ x=0

evento a processando

evento b

processando

Entrada: x=0

Aes de entrada
processando processando evento b/ x=0 evento a/ x=0 evento b/ x=0 imprimindo mensagem recebendo dados imprimindo mensagem Sada: x=0

Aes nos estados


Fazer (do) atividade no atmica (no composta por mais de uma instruo) realizada no interior do estado. Executada quando o objeto alcanar o estado e tiver concludo as eventuais aes 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 transio reflexiva com aes.

evento a/ x=0 recebendo dados

Estado composto
Um estado constitudo de um conjunto de sub-estados. Aparece em vises expandidas do diagrama de estados. Em uma viso normal, o estado composto mostrado sem seus subestados.

Exemplo estado composto


processando entrada de dados aguardando dados

incializando

recebendo dados

finalizando

Concorrncia
Representa dois ou mais encadeamentos de estados e transies que so percorridos simultaneamente Representa mais de um fluxo de controle implementado atravs de threads e utilizando servios de multitarefa ou multiprocessamento do sistema operacional.

Concorrncia
Quando um objeto alcana um estado composto, imediatamente abre-se a concorrncia alcanando-se igualmente os estados iniciais de todas as concorrncias. Aps isso, o estado composto s poder evoluir quando todas as suas concorrncias tiverem alcanado seus estados finais.

Concorrncia: representao
Estado composto

Concorrncia:sincronismo e dependncia de dados


Estado composto

estado 1a

estado 1b

estado 1c

estado 1a 1

estado 1b

estado 1c

estado 2a

estado 2b

estado 2c

estado 2a

estado 2b

estado 2c

Diagrama de estados
Lembram DFD, fluxograma, diagrama de aes So mais poderosos pois incluem:
Clusulas de envio, comunicao entre objetos Sincronizao e concorrncia Diferentes nveis de abstrao