Comentários
Na elaboração do diagrama de máquina de estados, é fundamental identificar as regras de negócio aplicadas ao contexto dos objetos, a fim de auxiliar na definição dos seus estados e das suas transições.
Fonte: Shutterstock.
Deseja ouvir este material?
Áudio disponível no material digital.
Na descrição da situação-problema do módulo recepção de um sistema de hotelaria, você observou que a identificação dos requisitos funcionais, referentes aos cadastros e controles da reserva, check-in e check-out, está explícita na descrição e reflete diretamente na modelagem dos casos de uso do sistema. Assim, considerando que a UML foi adotada para modelagem do sistema, recomenda-se iniciar a modelagem comportamental da atividade de análise com o Modelo de Casos de Uso e a documentação de cada caso de uso. Na sequência, inicia-se a modelagem estrutural, elaborando o Diagrama de Classes, que é considerado a principal técnica de modelagem da UML, para especificar as classes e seus relacionamentos em diferentes perspectivas de visões e detalhes. A partir da identificação e definição das classes de objetos com os estados relevantes e diante da compreensão do contexto das regras do sistema, você deve evoluir com a modelagem comportamental de análise.
Na Figura 3.4, você conferiu a primeira versão do Diagrama de Classes com ênfase na listagem dos atributos, na qual se pode observar que as classes de objetos “Reserva”, “Hospede”, “Empresa” e CheckInOut” possuem estados relevantes, porque entre os atributos foi definido o atributo “situacao”, que consiste naquele que armazenará os valores correspondentes aos estados dos objetos dessas classes.
Considerando os estados (realizada, confirmada, cancelada ou efetivada) definidos para os objetos da classe “Reserva”, a Figura 3.5 apresenta o Diagrama de Máquina de Estados correspondente à classe “Reserva”. Para a solução proposta, foram definidas as seguintes regras de transição entre os estados:
Observe, na figura, que foi representado um estado composto para o estado reserva “Cancelada”, considerando a regra que uma reserva pode ser cancelada automaticamente pelo hóspede ou não, mediante o prazo estipulado.
Posteriormente, na implementação do sistema, os estados relevantes definidos para os objetos das classes, respeitando as condições de guarda especificadas nos eventos que ocasionam as transições de estados, bem como a definição das ações de estados indicadas pelas cláusulas “Do” e “Entry”, devem ser fielmente implementados para garantir a consistência e integridade das validações do sistema com sua modelagem.