Artigo

Engenharia de Software em Destaque: Metodologias de Desenvolvimento de Software.

No artigo de hoje, vamos falar de mais um tópico quente de Engenharia de Software, uma das áreas mais populares de Tecnologia da Informação (TI). Metodologias de desenvolvimento de software parece “batido” e fácil, mas o fato é que as bancas adoram cobrá-lo e ele nunca sai das provas.

Em poucos minutos de leitura, você terá a oportunidade de conhecer os conceitos associados às principais metodologias de desenvolvimento de software, de uma forma bem reduzida. Essa é a missão de hoje. Veja só o que teremos pela frente:

  • Importância da Escolha da Metodologia
  • Metodologias de Desenvolvimento de Software Prescritivas X Ágeis
  • Principais Metodologias Prescritivas de Desenvolvimento de Software
  • Principais Metodologias Ágeis de Desenvolvimento de Software
  • Mapa Mental

Embora a leitura não tenha pré-requisitos oficiais, você vai absorver melhor os conceitos se tiver algum conhecimento ou visão de como o software é produzido.

Este é mais um artigo elaborado em formato reduzido, a fim de que você tenha bastante informação em pouco tempo. Sendo assim, não tem desculpa para não ler. A gente se encontra na próxima seção então.

Tempo de leitura aproximada: 5 a 10 minutos

Primeiramente, antes de começar a desenvolver o software, é importante que seja definida uma metodologia. De forma bem simples, a metodologia de desenvolvimento de software é a orientação de como você vai criar o seu produto.

Pense em um aplicativo de GPS (por exemplo, Waze, Google Maps etc.). Há diversas formas de chegar a um destino. Normalmente, as pessoas tendem a percorrer um caminho mais curto, mas podem trilhar o mais longo, por razões variadas.

A metodologia de desenvolvimento de software é como um GPS. Há muitas formas de construir um software. A diferença é o percurso. O software pode ficar pronto em mais ou menos tempo, dependendo da metodologia escolhida.

O melhor é o mais rápido? Nem sempre. Você aceita passar por um caminho rápido que entra em uma zona de risco? Ou prefere fazer um caminho mais longo e mais seguro?

A escolha da metodologia depende de várias questões, desde a necessidade do negócio à experiência da equipe. Não existe o certo e o errado: existe o que é mais conveniente no momento, com as possibilidades que a situação oferece.

As metodologias de desenvolvimento de software podem ser divididas em metodologias prescritivas e ágeis.

Inicialmente, as metodologias prescritivas são mais presas a etapas. Ou seja, o software passa por alguns estágios acordados entre a equipe até ficar pronto.

As metodologias ágeis surgiram e ganharam espaço no mercado porque os usuários demoravam muito a receber o produto pelas metodologias prescritivas. Além disso, nem sempre o software tinha o comportamento desejado pelo cliente.

Com a metodologia ágil, as entregas tornaram-se mais flexíveis. O cliente consegue validar o produto durante o desenvolvimento. Além disso, as documentações tendem a ser reduzidas. Isso traz um grau de dinamismo absurdo para o desenvolvimento do sistema.

Se você quiser um pouco mais sobre o seu surgimento, incluindo o Manifesto Ágil, então sugerimos que leia o nosso outro artigo: https://www.estrategiaconcursos.com.br/blog/engenharia-software-manifesto-agil/.

Antes de mais nada, selecionamos 5 metodologias prescritivas mais cobradas em prova e vamos explicar brevemente a você, de forma bem sucinta:

Modelo em Cascata (Waterfall): este é o modelo mais clássico, a base de tudo. O software passa por uma série de etapas sequenciais até ficar pronto. A validação ocorre somente no final. Ou seja, se alguma coisa sai errada no meio do caminho, o erro persiste até o final.

Figura 1 – Modelo em Cascata, segundo Sommerville (visão mais cobrada em provas que contenham metodologias de desenvolvimento de software).
Figura 1 – Modelo em Cascata, segundo Sommerville (visão mais cobrada em provas que contenham metodologias de desenvolvimento de software).

Modelo em V (V-Model): evolução do modelo em cascata, onde a validação ocorre ao longo de todo o desenvolvimento. Cada etapa da esquerda corresponde a uma validação na direita. Veja que o fluxo é um enorme V, fazendo jus ao nome.

Figura 2 – Modelo em V (Fonte: Adaptação de questão do Cebraspe com conceitos de metodologias de desenvolvimento de software - Prova do TRE-PR (2009) – Análise de Sistemas).
Figura 2 – Modelo em V (Fonte: Adaptação de questão do Cebraspe com conceitos de metodologias de desenvolvimento de software – Prova do TRE-PR (2009) – Análise de Sistemas).

Modelo Rational Unified Process (RUP): trabalha essencialmente com fases e disciplinas. Embora não seja considerado ágil, foi uma das primeiras tentativas de dividir as entregas do projeto, por meio das iterações. Conhecido pelo gráfico das baleias, conforme figura abaixo.

Figura 3 – Modelo RUP (Fonte: Research Gate. Disponível em: https://www.researchgate.net/figure/Figura-1-Ciclo-de-vida-do-Processo-Unificado-Rational-Adaptado-de-The-Rational-Unified_fig1_309405789/ . Acesso em: 05 mar. 2024).
Figura 3 – Modelo RUP (Fonte: Research Gate. Disponível em: https://www.researchgate.net/figure/Figura-1-Ciclo-de-vida-do-Processo-Unificado-Rational-Adaptado-de-The-Rational-Unified_fig1_309405789/ . Acesso em: 05 mar. 2024).

Se você quiser aprofundar os conceitos sobre o Processo Unificado, então sugerimos que dê uma olhada em mais este artigo: https://www.estrategiaconcursos.com.br/blog/engenharia-software-processo-unificado-rup/.

Modelo Incremental: o produto é dividido em incrementos, que são partes do software. Eles são desenvolvidos sequencialmente, sendo entregues ao cliente conforme forem sendo finalizados.  Esse desenvolvimento lembra um pouco o modelo em cascata, em razão da sucessão de etapas.

Figura 4 – Modelo Incremental (Fonte: Medium. Disponível em: https://medium.com/contexto-delimitado/o-modelo-incremental-b41fc06cac04. Acesso em: 06 mar. 2024).
Figura 4 – Modelo Incremental (Fonte: Medium. Disponível em: https://medium.com/contexto-delimitado/o-modelo-incremental-b41fc06cac04. Acesso em: 06 mar. 2024).

Modelo Evolucionário: ao contrário do modelo incremental, o desenvolvimento do software ocorre integralmente aos poucos, como em uma espécie de evolução. Divide-se em Prototipagem (criação do protótipo ajuda na validação do cliente) ou Espiral (iteração repetida, de maneira circular).

Figura 5 – Modelo Evolucionário, sendo representado pela Prototipagem e Espiral (imagens à esquerda e à direita, respectivamente, conforme adaptação de Pressman para metodologias de desenvolvimento de software).
Figura 5 – Modelo Evolucionário, sendo representado pela Prototipagem e Espiral (imagens à esquerda e à direita, respectivamente, conforme adaptação de Pressman para metodologias de desenvolvimento de software).

Vamos ver brevemente 5 metodologias ágeis que caem bastante nas provas:

Modelo Extreme Programming (XP): um dos primeiros modelos ágeis. Leva ao extremo um conjunto de boas práticas, em ciclos curtos de entregas, com a participação e envolvimento do cliente. Caso mudanças sejam necessárias, é mais fácil adaptar a solução.  

Figura 6 – Modelo XP.
Figura 6 – Modelo XP.

Modelo Scrum: framework leve e simples, que proporciona soluções adaptativas para problemas complexos. A construção do produto ocorre por meio de sprints, que são eventos mensais que contêm as entregas. A sprint possui 4 etapas, cuja responsabilidade é do time Scrum.

Figura 7 – Modelo Scrum (Fonte: EunaTI. Disponível em: https://www.eunati.com.br/2017/03/scrum-em-5-minutos-visao-geral.html. Acesso em: 07 mar. 2024).
Figura 7 – Modelo Scrum (Fonte: EunaTI. Disponível em: https://www.eunati.com.br/2017/03/scrum-em-5-minutos-visao-geral.html. Acesso em: 07 mar. 2024).

Aguarde, pois em breve faremos um artigo exclusivo aqui no Blog do Estratégia Concursos, a fim de aprofundar todos os detalhes do Guia Scrum para você.

Modelo Lean: inspirado na filosofia criada pela Toyota, este método é focado em gestão para evitar desperdícios e buscar a eficiência. Indicado para projetos com menor escopo.

Figura 8 – Modelo Lean (Fonte: FIEMG Lab. Disponível em: https://fiemglab.com.br/metodologias-ageis-na-inovacao-aberta/. Acesso em: 07 mar. 2024).
Figura 8 – Modelo Lean (Fonte: FIEMG Lab. Disponível em: https://fiemglab.com.br/metodologias-ageis-na-inovacao-aberta/. Acesso em: 07 mar. 2024).

Modelo Test Driven Development (TDD): como o próprio nome diz, é um ciclo de desenvolvimento orientado a testes, que surgiu com o advento do XP. Baseia-se em escrever testes antes do próprio código, de forma a estimular a melhoria do código.

Figura 9 – Modelo TDD (Fonte: MICREIROS.COM. Disponível em: https://micreiros.com/tdd-test-driven-development-2/. Acesso em: 07 mar. 2024).
Figura 9 – Modelo TDD (Fonte: MICREIROS.COM. Disponível em: https://micreiros.com/tdd-test-driven-development-2/. Acesso em: 07 mar. 2024).

Modelo DevOps: conjunto de práticas colaborativas para interligar o desenvolvimento (Dev) e a infraestrutura ou operação (Ops). Estruturado nos estágios de integração, entrega e implantação contínuas (CI/CD).

Figura 10 – Modelo DevOps.
Figura 10 – Modelo DevOps.

Se você quiser aprofundar os conceitos sobre DevOps, sugerimos que dê uma olhada em mais este artigo: https://www.estrategiaconcursos.com.br/blog/temas-especiais-tecnologia-informacao-devops/.

O artigo de hoje já é sintético, mas vamos fechar o conteúdo com um mapa mental. Aproveite bastante, pois é o resumo do resumo dos conceitos abordados.

Figura 11 – Mapa mental de metodologias de desenvolvimento de software.
Figura 11 – Mapa mental de metodologias de desenvolvimento de software.

Por fim, se você achou que o mapa mental ficou pequeno, nós temos uma solução para isso também: experimente baixar a imagem ou dar um zoom diretamente no seu navegador.

Chegamos ao final do artigo de hoje. Se você ficou conosco até agora, teve a oportunidade de aprender os principais pontos relacionados às metodologias de desenvolvimento de software, um tópico fundamental em qualquer prova de Engenharia de Software da área de TI.

Calma, pois não acabou. O artigo foi concluído, mas a sua preparação ainda não. Sabe o que falta? Se você nos acompanha de outros carnavais, já sabe: fazer questões sobre o tema.

Concurseiro, não deixe de fazer exercícios. Nós repetimos isso em todos os artigos porque isso é realmente essencial para colocá-lo dentro das vagas. O acesso ao Sistema de Questões do Estratégia é feito pelo link: https://concursos.estrategia.com/.   

Por fim, caso você sinta necessidade de aprofundar o conteúdo, convidamos a buscar o material do Estratégia Concursos. Nós oferecemos diversos cursos em pdf, videoaulas e áudios para você ouvir onde quiser. Descubra tudo no link http://www.estrategiaconcursos.com.br/cursos/.

Bons estudos e até a próxima!

Cristiane Selem Ferreira Neves é Bacharel em Ciência da Computação e Mestre em Sistemas de Informação pela Universidade Federal do Rio de Janeiro (UFRJ), além de possuir a certificação Project Management Professional pelo Project Management Institute (PMI). Já foi aprovada nos seguintes concursos: ITERJ (2012), DATAPREV (2012), VALEC (2012), Rioprevidência (2012/2013), TJ-RJ (2022), TCE-RJ (2022) e CGE-SC (2022/2023). Atualmente exerce o cargo efetivo de Auditora de Controle Externo – Tecnologia da Informação no TCE-RJ, além de ser produtora de conteúdo dos Blogs do Estratégia Concursos, OAB e Carreiras Jurídicas.

Concursos Abertos

Quer Saber Tudo de Concursos Previstos?

Confira Nossos Artigos

Concursos 2024

Deixe seu comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Veja os comentários
  • Excelente Artigo! O Mapa mental vai ser muito util!
    Luis Daniel em 28/03/24 às 07:57
    • Obrigada! Fique ligado porque em breve teremos mais conteúdos de qualidade por aqui!
      Cristiane Selem Ferreira Neves em 01/04/24 às 20:17