Esse artigo faz parte da revistaSQL Magazine edição 65. Clique aqui para ler todos os artigos desta edição

ta série, apresentaremos mais um dos 13 diagramas descritos na especificação 2.0 da UML. Em nosso último artigo tratamos do diagrama de seqüência, um dos diagramas responsáveis por apresentar os aspectos dinâmicos ou de comportamento dos objetos. Neste artigo, vamos tratar do diagrama de máquina de estados, utilizado na representação dos estados de uma instância de um determinado objeto durante sua existência, de um caso de uso ou mesmo de um subsistema ou sistema completo.

Uma das atividades mais importantes da etapa de desenvolvimento é a validação dos estados pelos quais um objeto deve passar. Compreender a ordem temporal e a seqüência com que as transições de estados acontecem, permite uma validação mais eficiente e um domínio da solução mais abrangente ao desenvolvedor.

Neste artigo, vamos abordar o diagrama de máquina de estados, um dos diagramas especificados pela UML para demonstrar o comportamento de um elemento por meio de um conjunto de transações de estados.

O Diagrama de Máquina de Estados

O diagrama de máquina de estados era conhecido nas versões anteriores como diagrama de estados, tendo então mudado para este novo nome após a versão 2.0 da UML. Este diagrama procura acompanhar as mudanças sofridas nos estados de uma instância de uma determinada classe.

Através de sua simbologia gráfica, ele procura demonstrar o comportamento de um elemento por meio de transições de estado. O elemento modelado muitas vezes é uma instância de uma classe, no entanto, pode se usar esse diagrama para modelar o comportamento de um caso de uso, o comportamento de um dado durante uma transação ou mesmo o comportamento de um sistema completo – neste caso estaremos considerando o caso de uso ou o sistema como objetos.

O diagrama de máquina de estados é um dos diagramas disponíveis na UML para a modelagem dos aspectos dinâmicos de sistemas. Assim como o diagrama de seqüência, o diagrama de máquina de estados muitas vezes baseia-se em um caso de uso descrito em um e apóia-se no diagrama de classes.

Estado

Um estado representa a situação em que um objeto se encontra em um determinado momento durante o período que este participa de um processo. Um objeto pode passar por diversos estados dentro de um mesmo processo. Um estado pode demonstrar:

· A espera pela ocorrência de um evento;

· A reação a um estímulo;

· A execução de uma atividade;

· A satisfação de alguma condição.

Um estado é representado por um retângulo com pontas arredondadas apresentando duas ou três divisões, sendo que a primeira divisão armazena a descrição do estado e a segunda, as possíveis ações ou atividades realizadas pelo objeto quando se encontra nesse estado. É possível existir uma terceira divisão para definir possíveis transições internas, que são transições que não provocam mudanças no estado do objeto. A Figura 1 ilustra um dos estados pelos quais passa uma instância da classe PessoaFísica em um sistema bancário, durante o processo de abertura de conta.

Figura 1. Exemplo de Estado de uma instância da classe PessoaFísica.

No exemplo apresentado na Figura 1, a instância da classe PessoaFísica encontra-se no estado Consultando Pessoa. Poderíamos tê-lo descrito como Consultando Pessoa Física, mas como o processo é idêntico para PessoaFísica e PessoaJuridica, sugiro mantermos a descrição do estado em forma mais abstrata, pois facilita a compreensão e o futuro reaproveitamento.

Note que a segunda divisão do estado encontra-se vazia, pois é opcional seu preenchimento. A segunda divisão representa ações ou atividades executadas por um objeto quando no estado em questão. As ações e atividades são muito semelhantes, mas as atividades possuem um tempo de execução muito maior. Normalmente as atividades representam métodos executados pelo objeto, enquanto as ações têm um tempo de execução muito pequeno, podendo representar a simples atribuição de um valor a um atributo ou a geração de uma saída. Segundo Guedes em seu livro “UML – Uma Abordagem Prática”, uma atividade está sempre associada a um estado, enquanto que uma ação está associada à transição, ou seja, quando o objeto assume um novo estado ou quando o objeto está mudando de estado.

A segunda divisão do retângulo pode possuir três clausulas:

...

Quer ler esse conteúdo completo? Tenha acesso completo