Projeto Orientada a Objetos Diagrama de Estado Projeto Orientada a Objetos
Diagramas da UML Instalação Casos de Uso Scenario Diagrams Sequência UML 1.x Casos de Uso Scenario Diagrams Sequência State Estados Component Componentes Modelos Objetos Colaboração Atividades Classes Timing UML 2.0 Interações Visão Geral Composite Structure Pacotes Modelo Comportamental Modelo Estrutural
Introdução
Introdução
Introdução Estado: vermelho Identidade: semáforo da rua x no cruzamento x e y Comportamento:
Objetivos da Modelagem de Estado Prover todas as possíveis operações realizadas em função de eventos ocorridos; Descrever o ciclo de vida de objetos de uma classe, os eventos que causam a transição de um estado para outro e a realização de operações resultantes.
Estado É uma situação no ciclo de vida de um objeto durante a qual ele satisfaz alguma condição ou realiza alguma atividade. Normalmente determinado pelos valores dos seus atributos.
Estado Exemplo: O atributo reservado do objeto livro tem valor verdadeiro ou falso. Objeto Livro
Notação UML Estado Estado Inicial Estado Final
Exemplo =>
Transições Os estados estão associados a outros pelas transições. Uma transição pode ser rotulada com uma expressão. evento (lista-parâmetros) [guarda] / ação (lista-parâmetros)
Evento Um evento é algo que acontece em algum ponto no tempo de vida do objeto e que pode modificar o seu estado. Em sistemas de Software Em processos de negócio Mouse pressionado Leu em código de barras Pedido realizado Fatura paga Cheque devolvido
Evento Relevantes Evento de chamada: recebimento de uma mensagem de outro objeto (chamada de método) Evento de mudança: Quando uma condição se torna verdadeira (when()) Evento temporal: passagem de um intervalo de tempo predefinido. Usa-se a cláusula after (depois/após).
Exemplo => Evento Temporal
Evento Relevantes Evento de mudança: Quando uma condição se torna verdadeira. É representada por uma condição de valor lógico (verdade ou falso) utilizando-se a clausula when (quando). Exemplo: when(horário = 00:00h) significa que a transição e disparada quando o valor do atributo horário for verdadeiro.
Exemplo => Evento de Mudança
Condição de guarda Uma condição de guarda é uma expressão de valor lógico. Uma transição na qual foi definida uma condição de guarda é disparada somente se o evento associado ocorre e a condição de guarda é verdadeira. A expressão condicional de uma condição de guarda é sempre apresentada entre colchetes. evento (lista-parâmetros) [guarda] / ação (lista-parâmetros)
Exemplo => Evento com condição de guarda
Ação Uma ação normalmente corresponde à execução de uma operação (método), é representada na linha da transição e deve ser precedida por uma barra ( / ). evento (lista-parâmetros) [guarda] / ação (lista-parâmetros)
Exemplo =>
Utilização do Diagrama de Estados A utilização do diagrama de gráfico de estado é propicia para classes que tenham algum comportamento dinâmico. Se houver um atributo que define um “Status” isso deve ser um indicador de vários estados. Relacionamentos que tenham zero entre os múltiplos.
Exercício 1 Construa um diagrama de estado para uma classe mensagem, que representa uma mensagem de correio eletrônico. Considere os estados apresentados a seguir: Recebida: este é o estado inicial. A mensagem acabou de entrar na caixa de correio e permanece nesse estado até ser lida. Lida: a mensagem é lida pelo usuário. Respondida: o usuário responde à mensagem. Na lixeira: usuário remove a mensagem da caixa de correio
Exercício 2