Diagrama de Estados
18 Slides234.97 KB
Diagrama de Estados
Introdução Cada objeto participante de um software orientado a objetos se encontra em um estado particular. – Um objeto muda de estado quando acontece algum evento interno ou externo ao sistema. Quando um objeto transita de um estado para outro, significa que o sistema no qual ele está inserido também está mudando de estado.
Diagrama de Transição de Estados A UML tem um conjunto rico de notações para desenhar um DTE - diagrama de transição de estado. – Estados – Transições – Evento – Ação – Atividade – Transições internas – Estados aninhados – Estados concorrentes
Definição de Estado Situação na vida de um objeto em que ele satisfaz a alguma condição ou realiza alguma atividade. É função dos valores dos atributos e (ou) das ligações com outros objetos. Exs: – O atributo reservado deste objeto livro tem valor verdadeiro. – Uma conta bancária passa para o vermelho quando o seu saldo fica negativo. – Um tanque está na reserva quando o nível está abaixo de 20%. Estados podem ser vistos como uma abstração dos atributos e associações de um objeto.
Estado Inicial e Final O estado inicial indica o estado de um objeto quando ele é criado. O estado final indica o fim do ciclo de vida de um objeto. Normalmente verbos no gerúndio (esperando, cadastrando) ou representando uma condição (ligado)
Definição de evento Ocorrência em um determinado momento do tempo – Usuário pressiona um botão – Carro é ligado – Ação é comprada Por definição, um evento é instantâneo Eventos não relacionados de modo causal são considerados concorrentes.
Definição de transição Os estados estão associados a outros pelas transições. Uma transição – indica mudança de estados. – é mostrada como uma linha conectando estados, com uma seta apontando para um dos estados. Quando uma transição entre estados ocorre, diz-se que a transição foi disparada.
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ção Ao transitar de um estado para outro, um objeto pode realizar uma ou mais ações. A ação associada a uma transição é executada se e somente se a transição for disparada.
Exemplo (Conta Bancária)
Exemplo (Oferta de disciplinas)
Cláusulas No compartimento adicional de um retângulo de estado podem-se especificar ações ou atividades a serem executadas. Sintaxe geral: evento / [ação atividade]
Cláusulas Cláusula entry – Pode ser usada para especificar uma ação a ser realizada no momento em que o objeto entra em um estado. Cláusula exit – Declarar ações que são executadas sempre que o objeto sai de um estado. Cláusula do – Usada para definir alguma atividade a ser executada em um determinado estado. – Especifica uma atividade, em vez de uma ação.
Entry e exit - exemplo
Identificação de elementos no DTE Cada operação com visibilidade pública de uma classe pode ser vista como um evento em potencial. Outra fonte para identificação de eventos associados a transições é analisar as regras de negócio. – “Um cliente do banco não pode retirar mais de R 1.000 por dia de sua conta”. – “O número máximo de alunos por curso é igual a 30”.
Um DTE para cada classe Os diagramas de estados são desenhados por classe. Desvantagens: – dificuldade na visualização do estado do sistema como um todo. – Essa desvantagem é parcialmente compensada pelos diagramas de interação. Nem todas as classes de um sistema precisam de um DTE. – Somente classes que exibem um comportamento dinâmico relevante. – Objetos cujo histórico precisa ser rastreado.
Modelagem de estados em um processo Os DTEs podem ser construídos com base nos diagramas de interação e nos diagramas de classes. Durante a construção do DTE para uma classe, novos atributos e operações podem surgir. – Essas novas propriedades devem ser adicionadas ao modelo de classes. A construção de um DTE freqüentemente leva à descoberta de novos atributos para uma classe – Este processo de construção permite identificar novas operações na classe
Exercício Desenvolva um diagrama de estados para o módulo de locação de DVDs, com foco nos estados do objeto da classe Locação, de acordo com os outros modelos e os seguintes dados: Deve-se verificar se não há locações pendentes. Caso não haja pendências, deve-se iniciar o registro da nova locação, bem como de cada item locado. Após selecionar todas as cópias desejadas para a locação, esta deve ser finalizada.