Engenharia de Software em Destaque: Metodologias de Desenvolvimento de Software.
Introdução
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
Importância da Escolha da Metodologia
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.
Metodologias de Desenvolvimento de Software Prescritivas X Ágeis
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/.
Principais Metodologias Prescritivas de Desenvolvimento de Software
Antes de mais nada, selecionamos 5 metodologias prescritivas mais cobradas em prova e vamos explicar brevemente a você, de forma bem sucinta:
Modelos em Cascata, V e RUP
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.
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.
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.
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/.
Modelos Incremental e Evolucionário
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.
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).
Principais Metodologias Ágeis 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.
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.
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.
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.
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).
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/.
Mapa Mental
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.
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.
Conclusão
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.