| 1 | \chapter{Metodologias}
|
| 2 |
|
| 3 | % TODO: Rewrite this thing, Jesus
|
| 4 | De forma a prosseguir e conseguir viabilizar construir um \textit{software} com
|
| 5 | qualidade, é necessário adotar algumas metodologias para fundamentar a ideia do
|
| 6 | projeto em si, como primeiro passo. Isso ajuda tanto em como priorizar
|
| 7 | funcionalidades quanto no aspecto de conseguir gerar dados para construir o
|
| 8 | mesmo de forma que entregue o que de fato é necessário para utilização do
|
| 9 | mesmo. Com esses elementos em mente, esse capítulo se debruça tanto na
|
| 10 | abordagem da metodologia de pesquisa do projeto quanto detalhar o método de
|
| 11 | desenvolvimento de \textit{software} utilizado no projeto.
|
| 12 |
|
| 13 | \section{Metodologia de Desenvolvimento de \textit{software}}
|
| 14 |
|
| 15 | Existem diversos métodos de desenvolvimento, cada um com seus respectivos prós
|
| 16 | e contras. Todos tentam, de sua forma, responder à necessidade de dar forma ao
|
| 17 | processo de desenvolvimento, de forma que ele tente fluir e assegurar que os
|
| 18 | requisitos daquele \textit{software} sejam atendidos, que os membros envolvidos
|
| 19 | no processo, tanto de desenvolvimento em si, quanto dos atores envolvidos e
|
| 20 | interessados no sistema tenham seus anseios respondidos de forma minimamente
|
| 21 | transparente e satisfatória.
|
| 22 |
|
| 23 | Além disso, a escolha de uma boa metodologia, adequada para as necessidades do
|
| 24 | sistema, permite que os prazos de entrega sejam melhor controlados e mais
|
| 25 | precisos \cite{pressman:2021}, minimizando a ocorrência de falhas e gestão do
|
| 26 | tempo.
|
| 27 |
|
| 28 | As ideias fundamentais que norteiam esse projeto são baseadas em dois conceitos
|
| 29 | chaves da engenharia de \textit{software}: desenvolvimento incremental e
|
| 30 | desenvolvimento de \textit{software} ágil. O IEEE define que a engenharia de
|
| 31 | \textit{software} é:
|
| 32 |
|
| 33 | \begin{quote}
|
| 34 | Engenharia de \textit{software}: A aplicação de uma abordagem sistemática,
|
| 35 | disciplinada e quantificável no desenvolvimento, na operação e na manutenção de
|
| 36 | \textit{software}; isto é, a aplicação de engenharia ao \textit{software}.
|
| 37 | \cite[p.~67]{ieee:1990}
|
| 38 | \end{quote}
|
| 39 |
|
| 40 | Portanto, a engenharia de \textit{software} propõe estruturar a criação de
|
| 41 | \textit{software} de forma mais organizada e eficiente. Pressman vai destacar
|
| 42 | os modelos de desenvolvimento de \textit{software} sequenciais e incrementais
|
| 43 | que moldam boa parte das práticas de engenharia de \textit{software} nas
|
| 44 | últimas décadas.
|
| 45 |
|
| 46 | O modelo em cascata (\textit{waterfall}) é um modelo sequencial, dos mais
|
| 47 | tradicionais e antigos a existirem, cujo qual necessita que cada etapa –
|
| 48 | levantamento de requisitos, projeto, implementação, testes – estejam concluídos
|
| 49 | antes da próxima etapa começar. Embora forneça uma estrutura rígida e lógica, é
|
| 50 | frequentemente criticado pela baixa adaptabilidade em relação às mudanças
|
| 51 | durante o processo de desenvolvimento.
|
| 52 |
|
| 53 | Em outro âmbito, o modelo incremental, trabalha com a premissa de que um
|
| 54 | desenvolvimento, feito em pequenas porções, agrupam-se para totalizar o projeto
|
| 55 | em si. Trabalho a concepção de incrementos funcionais, permitindo uma maior
|
| 56 | flexibilidade com as mudanças no processo ao todo. Também ajuda a iterar
|
| 57 | rápidamente em cima do desenvolvimento do sistemas, criando um produto mínimo
|
| 58 | viável, que possa preencher a proposta, usando o mínimo de tempo, reduzindo as
|
| 59 | funcionalidades ao seu estado basal. Essa metodologia também ajuda a reduzir
|
| 60 | custos e riscos, já que necessita que as funcionalidades estejam em seu estado
|
| 61 | mínimo, porém funcionais.
|
| 62 |
|
| 63 | Outros modelos tradicionais citados por Pressman incluem o modelo de
|
| 64 | prototipação e o modelo em espiral, o primeiro trabalhando na ideia de
|
| 65 | elaboração de protótipos pequenos que validem a hipótese, e depois passe para a
|
| 66 | implementação final; e o modelo em espiral une a natureza iterativa da
|
| 67 | prototipação com os aspectos sistemáticos do modelo em cascata, sendo que acaba
|
| 68 | por ser um modelo geralmente usado para desenvolvimento de aplicações em larga
|
| 69 | escala, visto que oferece mais segurança ao processo de desenvolvimento. Apesar
|
| 70 | da influência histórica, tais modelos acabam por serem um tanto quanto
|
| 71 | burocráticos e em um projeto com um escopo de equipe reduzida e onde necessita
|
| 72 | um nível de flexibilidade maior, como este, portanto, uma adoção de uma
|
| 73 | metodologia mais flexível se faz necessária.
|
| 74 |
|
| 75 | Pressman, comenta que, por meados de 2001, um grupo de desenvolvedores
|
| 76 | deflagrou o "Manifesto Ágil", um documento desenhando uma nova metodologia de
|
| 77 | desenvolvimento, destacando a satisfação dos patrocinadores do sistema,
|
| 78 | entregas mais rápidas, flexibilidade durante o desenvolvimento do
|
| 79 | \textit{software} de forma a evitar que os desenvolvedores ficaram empacados e
|
| 80 | reduzisse rigidez. Os principais destaques da abordagem ágil é a proposta de
|
| 81 | que a mesma não é escrita em pedra, ou seja, permite flexibilidade no como
|
| 82 | aplicá-la. Nesse cenário, existem algumas abordagens sobre ela, como o
|
| 83 | \texit{Kanban} e o \textit{Scrum}, que dão um pouco mais de forma a ideia
|
| 84 | apresentada com o desenvolvimento ágil o que casa relativamente bem com o
|
| 85 | modelo de desenvolvimento incremental.
|
| 86 |
|
| 87 | Com base nesse panorama, o presente trabalho adota uma abordagem baseada na
|
| 88 | filosofia ágil, estruturada por meio da utilização de um quadro de Kanban,
|
| 89 | adaptado à realidade de um desenvolvimento individual. Diferentemente de
|
| 90 | modelos tradicionais que envolvem um maior formalismo, o \textit{Kanban}
|
| 91 | permite visualizar e gerenciar o fluxo de trabalho de forma contínua, com foco
|
| 92 | na entrega incremental de funcionalidades. Por ser um método não prescritivo, o
|
| 93 | \textit{Kanban} oferece liberdade para que as tarefas possam ser priorizadas,
|
| 94 | ajustadas ou redefinidas conforme a evolução do desenvolvimento, característica
|
| 95 | especialmente útil quando há apenas um desenvolvedor responsável por todas as
|
| 96 | etapas do processo. Vale ressaltar também, que a metodologia adotada acaba por
|
| 97 | ajudar a manter o fluxo de desenvolvimento contínuo sem sobrecarga, já que
|
| 98 | limita a quantidade de tarefas em progresso, gerando um movimento de maior
|
| 99 | produtividade e entregas.
|
| 100 |
|
| 101 | A escolha pelo \textit{Kanban}, portanto, oferece um equilíbrio sustentável
|
| 102 | entre estrutura e flexibilidade, permitindo que o desenvolvimento avance de
|
| 103 | maneira organizada, e sem os entraves burocráticos dos modelos mais rígidos.
|
| 104 | Essa abordagem permite que o projeto se beneficie dos princípios ágeis, tais
|
| 105 | como a entrega contínua de valor, adaptação a mudanças e foco na simplicidade,
|
| 106 | ao mesmo tempo que mantém o controle sobre o progresso e a qualidade do produto
|
| 107 | final.
|
| 108 |
|
| 109 | \section{Metodologia de Pesquisa}
|
| 110 |
|
| 111 | Entende-se por pesquisa científica, a investigação de um fenômeno, de forma a
|
| 112 | encontrar a solução para algum problema \cite{Coelho:2020}. Portanto, a
|
| 113 | metodologia científica se torna o conjunto de procedimentos para esta
|
| 114 | investigação, cujo qual perpassa a coleta e análise de dados. Neste capítulo,
|
| 115 | abordaremos as metodologias adotadas e suas respectivas justificativas, para
|
| 116 | além dos dados encontrados para tal.
|
| 117 |
|
| 118 | \subsection{Tipo de Pesquisa}
|
| 119 |
|
| 120 | Segundo \cite{Lakatos:2022}, a a pesquisa científica pode ser classificada
|
| 121 | quanto aos seus objetivos como exploratória, descritiva ou explicativa. Este
|
| 122 | trabalho caracteriza-se principalmente como uma pesquisa aplicada de natureza
|
| 123 | exploratória, uma vez que busca investigar práticas, limitações e necessidades
|
| 124 | relacionadas a ferramentas digitais para acompanhamento emocional, com o
|
| 125 | objetivo de desenvolver uma solução tecnológica prática.
|
| 126 |
|
| 127 | Conforme Jung (2009), a pesquisa aplicada visa gerar conhecimento para
|
| 128 | aplicação direta em problemas específicos, com interesse prático e utilitário,
|
| 129 | sendo comum em projetos de desenvolvimento de \textit{software}, especialmente
|
| 130 | nas áreas de Sistemas de Informação e Ciência da Computação, nas quais o
|
| 131 | produto final visa resolver uma demanda concreta do público-alvo.
|
| 132 |
|
| 133 | \subsection{Instrumento de coleta de dados}
|
| 134 |
|
| 135 | \lipsum[1]
|
| 136 |
|
| 137 | \subsection{Análise de Similares}
|
| 138 |
|
| 139 | A metodologia trata-se de uma avaliação sobre os sistemas relacionados ao tema
|
| 140 | proposto, observando e levantando desafios e possibilidades, validação de
|
| 141 | \textit{softwares} e a satisfação dos usuários (Martins, 2018). Seguindo assim,
|
| 142 | foram pesquisados sistemas similares encontrados na internet com o objetivo de
|
| 143 | realizar uma revisão crítica-reflexiva, analisando os aplicativos que oferecem
|
| 144 | algum tipo de diário digital de humor, ou permite algum acompanhamento
|
| 145 | reflexivo de variações de emoções.
|
| 146 |
|
| 147 | Para realizar esse processo, de forma a simular também um usuário, foi
|
| 148 | pesquisado na Google Play Store \footnote{Google Play Store — Disponível em:
|
| 149 | https://play.google.com}, por \textit{mood tracker}, retornando centenas de
|
| 150 | resultados. Nesse quesito, estabeleceu os seguintes critérios objetivos: (1)
|
| 151 | pode ser um aplicativo em português ou inglês; (2) o aplicativo tem que
|
| 152 | apresentar algum tipo de gráfico das entradas feitas (3) tem que possuir
|
| 153 | entrada textual.
|
| 154 |
|
| 155 | \subsection{Relação entre os dados coletados e o desenvolvimento}
|
| 156 |
|
| 157 | \lipsum[1]
|