eletrotupi / tcc/ monografia/chapters/methodologies.tex71fdb8f591445852b09aef1f212869a412d68eb3
8.8 KB | 157 lines Raw
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]