Você está na página 1de 5

Bibliografia

Diagramas de Estado ! LARMAN, Graig. Utilizando UML e


Padroes:Uma introdução a análise e ao
projeto orientados a objetos. Porto
Alegre: Bookman, 2a Edição, 2004.
capítulo 29
Prof. Maria Augusta Vieira Nelson ! BEZERRA, Eduardo. Principios de
PUC Minas analise e projeto de sistemas com
UML.Rio de Janeiro: Campus, 2003.
Adaptado de Eduardo Bezerra
capítulo 10

1 2

Introdução Introdução
! Objetos do mundo real se encontram em ! Durante a transição de um estado para
estados particulares a cada momento. outro, um objeto normalmente realiza
! uma jarra está cheia de líquido
determinadas ações dentro do sistema.
! uma pessoa está cansada.
! Da mesma forma, cada objeto participante de ! Quando um objeto transita de um estado
um sistema de software orientado a objetos se para outro, significa que o sistema no
encontra em um estado particular. qual ele está inserido também está
! Um objeto muda de estado quando acontece mudando de estado.
algum evento interno ou externo ao sistema.

3 4

Introdução Estado
! Através da análise das transições entre ! Situação na vida de um objeto em determinado
estados dos objetos de um sistema de momento no tempo em que ele satisfaz a
alguma condição ou realiza alguma atividade.
software, podem-se prever todas as
! Cada estado de um objeto é determinado pelos
possíveis operações realizadas, em
valores dos seus atributos e (ou) pelas suas
função de eventos que possam ocorrer. ligações com outros objetos.
! O diagrama da UML que é utilizado para ! Por exemplo: “o atributo reservado deste objeto livro
realizar esta análise é o diagrama de tem valor verdadeiro”.
! Outro exemplo: “uma conta bancária passa para o
transição de estado (DTE). vermelho quando o seu saldo fica negativo”.

5 6
Estados inicial e final Estados
! O estado inicial indica o estado de um ! Notação para representar estados na
objeto quando ele é criado. Só pode UML.
haver um estado inicial em um DTE.
! Essa restrição serve para definir a partir de
que ponto um DTE deve começar a ser lido.
! O estado final é representado como um
círculo “eclipsado” e indica o fim do ciclo
de vida de um objeto.
! Este estado é opcional e pode haver mais de
um estado final em um DTE.
7 8

Transições Eventos
! Os estados estão associados a outros ! Uma transição possui um evento
pelas transições. associado.
! Uma transição é mostrada como uma ! Um evento é algo que acontece em
linha conectando estados, com uma seta algum ponto no tempo e que pode
apontando para um dos estados. modificar o estado de um objeto:
! Quando uma transição entre estados ! Pedido realizado
! Fatura paga
ocorre, diz-se que a transição foi ! Cheque devolvido
disparada. ! aparelho telefônico é tirado do gancho
! Uma transição pode ser rotulada com
uma expressão da seguinte forma:
evento(lista-parâmetros)[guarda]/ação
9 10

Exemplo - ContaBancária Condição de guarda


! É uma expressão de valor lógico que
condiciona o disparo de uma transição.
! A transição correspondente é disparada se e
somente se o evento associado ocorre e a
condição de guarda é verdadeira.
! Uma transição que não possui condição de guarda
é sempre disparada quando o evento ocorre.
! A condição de guarda pode ser definida
utilizando-se parâmetros passados no
evento e também atributos e referências
a ligações da classe em questão.

11 12
Ações Atividades
! Ao transitar de um estado para outro, ! Semelhantes a ações, atividades são algo
um objeto pode realizar uma ou mais que deve ser executado.
ações. ! No entanto, uma atividade pode ser
! Uma ação é uma expressão definida em interrompida (uma ação não pode).
termo dos atributos, operações,
! Por exemplo, enquanto a atividade estiver em
associações da classe ou dos parâmetros
execução, pode acontecer um evento que a
do evento também podem ser utilizados. interrompa.
! A ação associada a uma transição é
! Outra diferença: uma atividade sempre
executada se e somente se a transição
for disparada. está associada a um estado (ao
contrário, uma ação está associada a
13
uma transição). 14

Ponto de junção Cláusula predefinidas


! Pode ser que o próximo estado de um objeto ! No compartimento adicional de um
varie de acordo com uma condição. retângulo de estado podem-se
! Se o valor da condição for verdadeiro, o objeto vai especificar ações ou atividades a serem
para um estado E1; se o valor for falso, o objeto vai
para outro estado E2.
executadas.
! É como se a transição tivesse bifurcações, e cada ! Há três cláusulas predefinidas
transição de saída da bifurcação tivesse uma condição ! Entry
de guarda.
! Exit
! Essa situação pode ser representada em um
! Do
DTE através de um ponto de junção
! Sintaxe: evento / [ação | atividade]

15 16

Cláusula entry Cláusula exit


! Pode ser usada para especificar uma ! Serve para declarar ações que são
ação a ser realizada no momento em que executadas sempre que o objeto sai de
o objeto entra em um estado. um estado.
! A ação desta cláusula é sempre ! É sempre executada, independentemente
executada, independentemente do do estado para o qual o objeto vai.
estado do qual o objeto veio. ! É como se a ação especificada estivesse
! É como se a ação especificada estivesse associada a todas as transições de saída do
associada a todas as transições de entrada no estado.
estado.

17 18
Cláusula do Cláusula do - exemplo
!Usada para definir alguma atividade
a ser executada quando o objeto
passa para um determinado estado.
!Ao contrário da cláusula entry,
serve para especificar uma
atividade ao invés de uma ação.

19 20

Cláusulas entry e exit -


exemplo Cláusula do - exemplo

21 22

Exemplo (Despertador)

Identificação dos elementos


de um diagrama de estados
23 24
Identificação de estados Identificação de estados
! Estados podem ser vistos como uma ! Um bom ponto de partida para identificar
abstração dos atributos e associações de estados é analisar os possíveis valores de
um objeto. seus atributos e as ligações que ele pode
! Um professor está licenciado quando não está realizar com outros objetos.
ministrando curso algum durante o semestre.
! No entanto, a existência de atributos ou
ligações não é suficiente para justificar a
! Um tanque está na reserva quando o valor do
nível de óleo está abaixo de 20%.
criação de um DTE para uma classe.
! O comportamento de objetos dessa classe deve
depender de tais atributos ou ligações.
! Um pedido está atendido quando todos os seus
itens estão atendidos.

25 26

Identificação de transições Identificação de transições


! Já que transições dependem de eventos ! Os eventos encontrados na descrição dos casos
para ocorrer, devem-se identificar estes de uso são externos ao sistema.
eventos primeiramente. ! Contudo, uma transição pode também ser
! Além disso, deve-se examinar também disparada por um evento interno ao sistema.
se há algum fator que condicione o ! Para identificar os eventos internos, analise os
disparo da transição. diagramas de interação.
! Se existir, este fator deve ser modelado como ! mensagens podem ser vistas como eventos.
uma condição de guarda da transição. ! De uma forma geral, cada operação com
! Um bom ponto de partida para identificar visibilidade pública de uma classe pode ser vista
eventos é a descrição dos casos de uso. como um evento em potencial.

27 28

Você também pode gostar