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.

Back to top button