Diagrama de Estado Projeto Orientada a Objetos Diagramas
Diagrama de Estado Projeto Orientada a Objetos
Diagramas da UML Casos de Uso UML 1. x State Diagrams Estados Diagrams UML 1. x State Diagrams Classes Diagrams UML 1. x State Diagrams Objetos Diagrams UML 1. x Atividades UML 1. x Component Diagrams Componentes Diagrams UML 1. x Scenario Diagrams Sequência Diagrams UML 1. x Modelos Instalação Scenario Diagrams Colaboração Diagrams UML 1. x Scenario Diagrams Timing Diagrams UML 2. 0 Scenario Interações Diagrams Visão Geral UML 2. 0 Modelo Comportamental Scenario Composite Diagrams Structure UML 2. 0 Modelo Estrutural Scenario Diagrams Pacotes Diagrams UML 2. 0
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 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: 00 h) 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
- Slides: 23