monografia: porting more methodologies sections (without refs)

Pedro Lucas Porcellis porcellis@eletrotupi.com 18 days ago 3c4663c2d8ca263914cc1fcc6547f043c1aef311
Parents: b65e9d8
1 file(s) changed
  • monografia/chapters/methodologies.tex +83 -1
monografia/chapters/methodologies.tex
@@ -12,7 +12,89 @@ desenvolvimento de software utilizado no projeto.
12 12
13 13 \section{Metodologia de Desenvolvimento de Software}
14 14
15 - \lipsum[1-2]
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 software sejam atendidos, que os membros envolvidos no
19 + 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 software: desenvolvimento incremental e desenvolvimento
30 + de software ágil. O IEEE define que a engenharia de software é:
31 +
32 + \begin{quote}
33 + Engenharia de software: A aplicação de uma abordagem sistemática, disciplinada
34 + e quantificável no desenvolvimento, na operação e na manutenção de software;
35 + isto é, a aplicação de engenharia ao software. (INSTITUTE OF ELECTRICAL AND
36 + ELECTRONICS ENGINEERS, 1990, p. 421, tradução do autor)
37 + \end{quote}
38 +
39 + Portanto, a engenharia de software propõe estruturar a criação de software de
40 + forma mais organizada e eficiente. Pressman vai destacar os modelos de
41 + desenvolvimento de software sequenciais e incrementais que moldam boa parte das
42 + práticas de engenharia de software nas últimas décadas.
43 +
44 + O modelo em cascata (waterfall) é um modelo sequencial, dos mais tradicionais e
45 + antigos a existirem, cujo qual necessita que cada etapa – levantamento de
46 + requisitos, projeto, implementação, testes – estejam concluídos antes da
47 + próxima etapa começar. Embora forneça uma estrutura rígida e lógica, é
48 + frequentemente criticado pela baixa adaptabilidade em relação às mudanças
49 + durante o processo de desenvolvimento.
50 +
51 + Em outro âmbito, o modelo incremental, trabalha com a premissa de um
52 + desenvolvimento feito em pequenas partes, que se agrupam para totalizar o
53 + projeto em si, trabalhando com a concepção de incrementos funcionais, cujo qual
54 + permite maior flexibilidade com as mudanças no processo. Também ajuda a iterar
55 + rapidamente em cima do desenvolvimento do sistema, criando um produto mínimo
56 + viável que possa preencher a proposta usando o mínimo de tempo, reduzindo as
57 + funcionalidades ao seu estado basal. Essa metodologia também ajuda a reduzir
58 + custos e riscos, já que necessita que as funcionalidades estejam em seu estado
59 + mais reduzido, porém funcionais.
60 +
61 + Outros modelos tradicionais citados por Pressman incluem o modelo de
62 + prototipação e o modelo em espiral, o primeiro trabalhando na ideia de
63 + elaboração de protótipos pequenos que validem a hipótese, e depois passe para a
64 + implementação final; e o modelo em espiral une a natureza iterativa da
65 + prototipação com os aspectos sistemáticos do modelo em cascata, sendo que acaba
66 + por ser um modelo geralmente usado para desenvolvimento de aplicações em larga
67 + escala, visto que oferece mais segurança ao processo de desenvolvimento. Apesar
68 + da influência histórica, tais modelos acabam por serem um tanto quanto
69 + burocráticos e em um projeto com um escopo de equipe reduzida e onde necessita
70 + um nível de flexibilidade maior, como este, portanto, uma adoção de uma
71 + metodologia mais flexível se faz necessária.
72 +
73 + Pressman, comenta que, por meados de 2001, um grupo de desenvolvedores
74 + deflagrou o “Manifesto Ágil”, um documento desenhando uma nova metodologia de
75 + desenvolvimento, destacando a satisfação dos patrocinadores do sistema,
76 + entregas mais rápidas, flexibilidade durante o desenvolvimento do software de
77 + forma a evitar que os desenvolvedores ficaram empacados e reduzisse rigidez. Os
78 + principais destaques da abordagem ágil é a proposta de que a mesma não é
79 + escrita em pedra, ou seja, permite flexibilidade no como aplicá-la. Nesse
80 + cenário, existem algumas abordagens sobre ela, como o Kanban e o Scrum, que dão
81 + um pouco mais de forma a ideia apresentada com o desenvolvimento ágil o que
82 + casa relativamente bem com o modelo de desenvolvimento incremental.
83 +
84 + Com base nesse panorama, o presente trabalho adota uma abordagem baseada na
85 + filosofia ágil, estruturada por meio da utilização de um quadro de Kanban,
86 + adaptado à realidade de um desenvolvimento individual. Diferentemente de
87 + modelos tradicionais que envolvem um maior formalismo, o Kanban permite
88 + visualizar e gerenciar o fluxo de trabalho de forma contínua, com foco na
89 + entrega incremental de funcionalidades. Por ser um método não prescritivo, o
90 + Kanban oferece liberdade para que as tarefas possam ser priorizadas, ajustadas
91 + ou redefinidas conforme a evolução do desenvolvimento, característica
92 + especialmente útil quando há apenas um desenvolvedor responsável por todas as
93 + etapas do processo. Vale ressaltar também, que a metodologia adotada acaba por
94 + ajudar a manter o fluxo de desenvolvimento contínuo sem sobrecarga, já que
95 + limita a quantidade de tarefas em progresso, gerando um movimento de maior
96 + produtividade e entregas.
97 +
16 98
17 99 \section{Metodologia de Pesquisa}
18 100