Diagrama de Estados
1. Versionamento
Versão | Data | Descrição | Autor(es) |
---|---|---|---|
1.0 | 17/02/2022 | Criação do documento e introdução | Carlos Eduardo e Vitor Lamego |
1.1 | 17/02/2022 | Adição dos diagramas 3.2, 3.3 e 3.4 | Vitor Lamego |
1.2 | 18/02/2022 | Adição dos diagramas 3.1 e 3.5, incremento introdução | Carlos Eduardo |
1.2.1 | 18/02/2022 | Revisão por pares | Denniel e Brenno |
1.2.2 | 20/02/2022 | Adição do tópico de metodologia | Rafael e João Pedro |
2. Introdução
O diagrama de estados é bastante utilizado dentro da área de software, sendo também componente da modelagem dinâmica. O seu objetivo é demonstrar os diferentes estados que um objeto pode ter dentro da aplicação e explicitar justamente qual é o estado inicial de determinado objeto, os estados pelos quais ele pode passar, a transição, responsável pela mudança de estado, e o estado final.[1]
Os diagramas sempre iniciam com um círculo escuro, sendo este o estado inicial, passam por meio das setas, que representam as transições, para um novo estado até que chegue ao estado final que é representado por um círculo contornado. Apesar disso, o intuito principal não é a demonstração da progressão dos processos, mas os tipos específicos de comportamento que podemos encontrar em cada ocasião.[2]
Um diagrama de estado possuí os seguintes componentes, dentre eles [2] :
3. Metodologia
Para a confecção dos diagramas foi utilizada a ferramenta online LucidChart, em conjunto com o canal de comunicação principal da equipe (Discord) entre os integrantes Carlos Eduardo e Vitor Lamego durante uma hora do dia 17 de fevereiro de 2022 para definição dos temas dos diagramas e divisão das tarefas. Após isso, cada integrante focou em realizar o diagrama específico que ficou responsável.
4. Diagramas de Estados
Na ocasião do projeto, a metodologia de desenvolvimento dos diagramas de estado consistiu, basicamente, em definir quais são os processos chaves da aplicação e a partir disso discutir e desenvolver os estados que podemos encontrar do app dentro desses processos. Foram encontrados cinco principais projetos, sendo eles: Entrar no app, Cadastrar propriedade, Cadastrar plantio, Acompanhar plantio e Supervisionar propriedade. A seguir será explicado cada diagrama realizado assim como a apresentação da sua imagem.
4.1 Entrar no app
Para o diagrama de entrar no app foi pensado quais seriam os estados necessários para que fosse permitida a visualização da tela home do app por qualquer usuário. Assim o primeiro estado seria entrando no app, onde seguiria para uma divisão de fluxo entre usuário já logado e usuário não logado. Caso já logado existe uma transição para a visualização da tela home e assim termina o fluxo. Caso não logado existe uma divisão de fluxo onde o usuário pode escolher realizar login, redefinir senha ou realizar cadastro. Caso a redefinição de senha ocorra bem o fluxo segue para a tela de login, caso não a operação é descartada e o fluxo encerrado. Caso a escolha seja realizar cadastro o usuário segue para uma tela com um formulário para preenchimento, caso os dados de entrada sejam válidos o fluxo segue para a tela home, caso não a operação é descatada e o fluxo encerrado. Veja o diagrama referente a esse processo a seguir:
Figura 1: Diagrama de Estados - Entrar no app
Fonte: Autores
4.2 Cadastrar propriedade
Para o diagrama de cadastro de propriedade, foi identificado que primeiramente o app mostra todas as propriedade já cadastradas. A partir desse estado, existe uma divisão de fluxo em que o usuário pode escolher entre criar um novo registro, ou editar as informações já existentes. Em ambos os casos o aplicativo mostra as informações disponíveis para cada ocasião específica e depois as novas informações são enviadas ao servidor, chegando ao estado final do processo. Veja o diagrama referente a esse processo a seguir:
Figura 2: Diagrama de Estados - Cadastrar propriedade
Fonte: Autores
4.3 Cadastrar plantio
No processo de cadastrar um plantio, foi identificado que inialmente o aplicativo estará mostrando todos os talhões de uma determinada propriedade. Após esse estado existe uma divisão de fluxo onde o usuário pode entrar no fluxo de edição das informações de um determinado plantio ou então no fluxo de cadastro de um novo plantio, bem parecido com o fluxo de cadastro visto no processo anterior. Os dois fluxos se encontram futuramente no estado em que o aplicativo envia as novas informações para o servidor e então chegam ao estado final. Veja o diagrama referente a esse processo a seguir:
Figura 3: Diagrama de Estados - Cadastrar plantio
Fonte: Autores
4.4 Acompanhar plantio
O acompanhamento de plantio é um processo um pouco mais complexo, uma vez que engloba as principais funcionalidade do aplicativo. O processo, de maneira resumida, inicia-se com um estado inicial onde é mostrado todos os plantio cadastrados. A partir desse estado existe uma divisão de fluxo em que o usuário pode visualizar o histórico de um plantio já colhido ou visualizar as informações de um plantio que ainda não foi colhido. Para a primeira ocasião ele verifica as informações com detalhes e logo em seguida já encontra o estado final do aplicativo. Para a segunda ocasião, se o usuário for um produtor ele passa pelos estados referentes à avaliação de pendências enviadas pelo produtor, se o usuário não for um técnico então ele passa pelos estados de cadastro de agrotóxicos. Futuramente os dois fluxos se encontram na visualização dos detalhes e informações de um determinado plantio. Essa descrição está bastante resumida devido à complexidade deste diagrama, portanto verifique a imagem a seguir:
Figura 4: Diagrama de Estados - Acompanhar plantio
Fonte: Autores
4.5 Supervisionar propriedade
Para o processo de supervisionamento da propriedade pelo técnico foi criado um diagrama especificamente para isso, onde o estado inicial é a busca pela propriedade alvo. Com isso, existe uma divisão de fluxo entre propriedade já atribuida para o técnico e propriedade não atribuída, caso ela não esteja atribuída é feita uma transição para a atribuição de propriedade, que se for bem sucedida segue o fluxo para supervisionamento da propriedade e, caso não, segue para o fluxo de finalização da operação. Caso já esteja atribuída segue em transição para o estado de supervisionamento da propriedade, onde o fluxo é dividido entre informações corretas e informações que estão erradas. Caso as informações estejam corretas é feita uma transição para a finalização da operação e, caso não, uma transição para o estado de solicitando alterações, onde o fluxo é dividido entre demais informações corretas e existência de outra informação incorreta. Se demais informações estão corretas o fluxo de operação se encerra, já seguindo pela transição de outra informação incorreta acontece um fluxo cíclico com o estado de solicitando alteração. O diagrama em questão segue abaixo:
Figura 5: Diagrama de Estados - Supervisionar propriedade
Fonte: Autores
5. Referências
[1] SERRANO, Milene. 06c - VídeoAula - DSW - Modelagem - Diagrama de Atividades. Material apresentado para a disciplina de Arquitetura e Desenho de Software no curso de Engenharia de Software da Universidade de Brasília, FGA.
[2] O que é um diagrama de máquina de estados?. Lucidchart. Disponível em: Lucidchart - Diagrama de Estados. Acesso em: 17 de fevereiro de 2022.