Fases do SDLC [Explicado]: Como criar um ótimo software em 2021

Publicados: 2019-10-02
Índice
  • Compreendendo o processo SDLC

  • Estrutura do Processo de Desenvolvimento de Software

  • Modelos SDLC

  • Embrulhar

  • A indústria de desenvolvimento de software está crescendo. Continuamos produzindo grandes quantidades de código todos os anos.

    No centro da indústria está o ciclo de vida de desenvolvimento de software (SDLC) - o processo que orienta as equipes de software como estruturar e planejar seu trabalho.

    Portanto, vamos fazer uma jornada pelo terreno traiçoeiro do desenvolvimento de software.

    Veremos o que SDLC realmente é e rastrearemos sua evolução. Veremos quais são os principais modelos utilizados pela indústria.

    Vamos descobrir as fases do SDLC, pelas quais um software passa antes de ver a luz do dia - e os principais desempenhos em cada uma.

    Em última análise, daremos a você uma visão panorâmica de todo o processo.

    Compreendendo o processo SDLC

    Construir software é um processo. Como tal, necessita de um objetivo bem definido, meios para o cumprir e formas de medir, manter e melhorar os resultados. As diferentes abordagens para o desenvolvimento de software fornecem tudo isso. Não são todos feitos do mesmo tecido, no entanto. Dependendo das suas circunstâncias, pode ser necessário optar por abordagens totalmente diferentes.

    Isso depende de muitas variáveis, como:

    • indústria
    • tamanho da organização
    • equipe e projeto
    • prazo estimado
    • e o orçamento alocado.

    O comum é que cada software segue um determinado fluxo de processo SDLC .

    Esta estrutura dá conta das fases necessárias para a conclusão, os recursos necessários e as tarefas a serem realizadas ao longo do caminho.

    O processo SDLC é, em última análise, um cronograma bem estruturado do que precisa ser realizado. Ele decide sobre a melhor abordagem de desenvolvimento de software dentro das limitações de tempo e custo estimadas.

    O SDLC é frequentemente considerado um subconjunto do termo mais amplo “ciclo de vida de desenvolvimento de sistemas” - a estrutura mais antiga para o desenvolvimento de sistemas de informação.

    Ele surgiu no início da década de 1960 como uma resposta à necessidade de sistemas de negócios, capazes de processar grandes quantidades de dados. O primeiro framework SDLC bem documentado é o paradigma de programação estruturada de 1969.

    Uma variedade de metodologias de desenvolvimento de software surgiu na década de 1990. Alguns deles são programação orientada a objetos, Scrum e o Rational Unified Process. O Agile Unified Process surgiu em 2005.

    Estrutura do Processo de Desenvolvimento de Software

    O desenvolvimento de um produto de software é uma sequência de estágios bem coordenados. Dependendo da abordagem de desenvolvimento selecionada, o número de etapas SDLC pode variar.

    Vamos revisar os sabores de 5 e 7 estágios do SDLC.

    A versão de 5 estágios

    A versão de 5 estágios do processo de desenvolvimento de software é assim:

    Requisitos e Análise

    Esta é uma fase crucial onde a interação com o cliente e as partes interessadas é essencial. Eles precisam determinar o resultado esperado, ou seja, o objetivo do produto de software. Além dos requisitos do cliente, há todos os tipos de outros fatores a serem levados em consideração. Esses incluem:

    • Arquitetônico
    • Funcional
    • Não funcional
    • atuação
    • E os relacionados ao design

    Para completar esta etapa com sucesso, um documento denominado “especificação de requisitos de software” é desenvolvido. É a base de tudo o que acontecerá a partir deste momento.

    O sucesso de um projeto de desenvolvimento depende muito da análise de requisitos. O principal executor nesta fase é o Analista de Negócios (BA). Ele gerencia toda a comunicação para reunir os requisitos de negócios, para realizar uma análise completa e o mais importante - para traduzir essas informações entre as partes interessadas e os desenvolvedores.

    Projeto

    O design do software é baseado em requisitos estabelecidos. É aqui que descobrimos o ambiente de desenvolvimento, as linguagens de programação, a estrutura arquitetônica, o hardware, etc. É também a hora de determinar a estratégia de teste que será usada. A função do arquiteto do sistema é essencial aqui. Eles precisam considerar todos os pré-requisitos do documento de “especificação de requisitos” e fornecer um documento de design a ser usado na próxima etapa.

    Fase de codificação

    Até agora, os desenvolvedores já estão bem cientes das especificações de design. O trabalho é dividido em módulos e começa a codificação. O cliente também deve estar envolvido nesta fase. Eles garantem que todas as medidas sejam tomadas para que o produto atenda às suas expectativas. Produzir um software funcional é o resultado final nesta fase.

    Testando

    Agora que temos um produto viável, a fase de teste pode começar. Dependendo da estratégia de teste delineada no documento de especificação de design, isso pode acontecer de várias maneiras.

    Os objetivos, no entanto, permanecem os mesmos. Primeiro, verifique se todos os requisitos iniciais foram atendidos e, segundo, determine se há algum bug no código. Os testadores são os principais executores aqui. O resultado de seus esforços é um software totalmente funcional, pronto para ser lançado.

    Manutenção

    Não existe um produto de software perfeito. É por isso que o atendimento ao cliente desempenha um papel importante no processo de desenvolvimento. Uma vez entregue ao cliente final, surgem problemas em tempo real e precisam ser corrigidos. A manutenção contínua é obrigatória se você deseja ter clientes satisfeitos.

    A versão de 7 estágios

    Agora, o sabor de 7 estágios desse processo é um pouco diferente. Tem alguns estágios extras, que inevitavelmente também mudam a natureza dos outros. Vamos dar uma olhada:

    Planejamento

    Outra maneira de iniciar o processo SDLC é com uma fase de planejamento. Ele precede a coleta de requisitos e busca principalmente feedback. A contribuição das partes interessadas, parceiros de negócios, engenheiros e clientes finais molda o escopo do projeto. Esta fase responde a perguntas como:

    • O que deve ser feito?
    • Quais recursos são necessários?
    • Quanto tempo isso levaria?
    • Quanto vai custar?
    Requisitos e Análise

    Aqui, os analistas de negócios compilam uma lista de requisitos, com base no feedback do cliente. Em seguida, eles os fornecem aos engenheiros de software. A comunicação é essencial.

    Esta fase deve produzir um documento que descreve todos os requisitos - e serve como base para a próxima fase.

    Design de Sistemas

    Os requisitos de software agora encontram seu caminho na arquitetura do sistema. Neste ponto, podemos determinar os meios funcionais e as operações de que precisamos para entregar o projeto. Depois de preparado, o plano de design é apresentado à empresa. Incorporamos todo o feedback antes do início da programação propriamente dita.

    Desenvolvimento de software

    Uma vez que os requisitos estejam claros, os engenheiros de software podem começar a trabalhar. O objetivo nesta fase é um programa de trabalho, que esteja pronto para ser testado. Este também é o início da produção no processo SDLC .

    Testando

    A função da equipe de garantia de qualidade é descobrir se os requisitos comerciais iniciais foram atendidos. Eles inspecionam a qualidade do código do software. Bugs são corrigidos. Há uma lista completa de métodos de teste de software: funcional, integração, teste de desempenho e assim por diante.

    O teste de automação é uma forma de automatizar o processo de execução de testes repetitivos por meio do uso de software externo, como Bamboo e Jenkins.

    Implementação

    Depois que o código passa pela fase de teste, ele está pronto para ser implantado no ambiente de produção. Dependendo da política da empresa, esse processo pode exigir aprovação; entretanto, na maioria dos casos, é uma etapa automatizada no ciclo de vida de desenvolvimento de software .

    Manutenção e Operações

    Depois que o software é lançado em produção, todos os tipos de problemas podem surgir. Por meio do monitoramento, eles podem ser identificados e resolvidos. Novos recursos também podem ser inseridos no produto. Esta é a fase em que o desempenho pode ser medido e melhorado.

    Modelos SDLC

    O processo de desenvolvimento de um software é amplamente universal. Há espaço para adicionar mais estágios ou simplificar os existentes - mas é basicamente a mesma coisa.

    Isso não é verdade quando olhamos para os métodos de desenvolvimento . Embora todos observem o processo, eles o fazem de maneiras muito diferentes.

    Para escolher o mais adequado, existem vários fatores importantes a serem considerados. É sempre um equilíbrio entre as necessidades do cliente e os detalhes práticos de desenvolvimento de software. Existem fatores, como:

    • a complexidade do projeto
    • a tecnologia selecionada
    • e o tamanho da equipe.

    Tudo isso determina qual abordagem pode funcionar melhor. Faremos uma visão geral de algumas das metodologias SDLC mais amplamente conhecidas e usadas .

    Cascata

    O modelo em cascata é um processo de design sequencial linear. É a metodologia mais antiga conhecida usada em engenharia de software. Tem origem nas indústrias de manufatura e construção na década de 1970.

    O progresso de um projeto de desenvolvimento seguindo o modelo em cascata segue estritamente pelo duto SDLC. A progressão só é possível quando a fase anterior do SDLC foi concluída com sucesso. Não há um processo definido para retroceder.

    A cascata SDLC é uma abordagem muito estruturada. Funciona bem quando:

    • os requisitos e atividades são bem definidos e compreendidos
    • a tecnologia é confiável
    • a equipe de suporte está disponível e você estima um projeto de curto prazo

    A desvantagem do método está relacionada à falta de flexibilidade. Você não pode implementar requisitos emergentes ao longo do caminho. Como não há produto tangível produzido até o final do processo de desenvolvimento, o risco e a incerteza são altos. Pode ser uma abordagem muito cara, caso você decida modificar os requisitos ou o escopo do projeto imediatamente.

    Iterativo

    Esse método é baseado na noção de que o software pode ser construído por meio de uma sequência de ciclos repetitivos. Tudo começa com um conjunto simples de requisitos. Em cada rodada, os engenheiros aprendem com o comportamento das versões anteriores do software e são capazes de aprimorar sua funcionalidade.

    A maior vantagem dessa abordagem é que um protótipo funcional do software é produzido após a conclusão de cada ciclo. Isso facilita a implementação de mudanças e a identificação de riscos. O teste SDLC é relativamente mais fácil quando executado em cada iteração.

    As desvantagens do modelo iterativo de desenvolvimento de software se resumem aos recursos e ao custo. Aumentar o número de iterações consome mais recursos. O prazo de conclusão do projeto é indeterminado, assim como o risco. Portanto, para que esse método funcione, é necessário que especialistas altamente qualificados realizem a análise de risco.

    A metodologia não é adequada para projetos menores.

    Ágil

    A abordagem Agile para o desenvolvimento de software é relativamente nova. Ainda assim, ele rapidamente ganhou popularidade em todo o mundo.

    O ágil SDLC se baseia na entrega de pequenas porções de software funcional e na busca de feedback imediato do cliente. No centro desta abordagem está a forte colaboração e comunicação contínua entre as equipes. Cada ciclo dura cerca de uma a três semanas, momento em que o módulo / recurso de trabalho é entregue ao cliente. O processo então se repete.

    O teste é executado em cada iteração, o que permite resolver problemas desde o início. Ele incentiva a demonstração da funcionalidade do software e a obtenção de feedback. O modelo fornece visibilidade clara dos resultados. Ele defende o trabalho em equipe e dá flexibilidade aos engenheiros de software.

    Como não há requisitos para documentação pesada, existe o risco de dependência de certos indivíduos. Isso também pode ser um desafio quando se trata de transferência de conhecimento para novos membros da equipe.

    Magro

    A metodologia de desenvolvimento de software Lean é considerada uma parte do método de desenvolvimento de software Agile. O Processo SDLC seguindo a metodologia Lean consiste em sete princípios:

    • Eliminar desperdício
    • Amplifique a aprendizagem
    • Decida o mais tarde possível
    • Entregue o mais rápido possível
    • Capacite a equipe
    • Construir integridade
    • Veja o quadro geral

    A chave para entender esse modelo é por meio desses princípios. Isso levaria a transformá-los em práticas ágeis funcionais e sua implementação no processo de trabalho.

    Os princípios lean são organizados em torno da ideia de produzir o máximo valor agregado possível para os usuários finais - enquanto otimiza a qualidade, velocidade, custo e expectativas de negócios. Para tal, algumas tarefas são eliminadas (documentação pesada) e outras otimizadas (frequência das reuniões).

    DevOps

    O modelo DevOps é parcialmente baseado em Agile e Lean . É uma abordagem emergente que se conecta em estreita colaboração entre o desenvolvimento de software e as equipes de operações durante todo o ciclo de vida de desenvolvimento.

    O aspecto principal desta metodologia é a ênfase na automação do processo de desenvolvimento. O objetivo final é encurtar o SDLC e, ao mesmo tempo, entregar resultados inovadores e de alta qualidade, alinhados aos requisitos do negócio.

    Com essa abordagem, os desenvolvedores, equipes de operações e membros do controle de qualidade estão todos na mesma página. Eles usam as mesmas ferramentas e seguem os mesmos processos. Isso melhora a comunicação e leva a resultados melhores e mais oportunos.

    Espiral

    Esta é uma combinação de desenvolvimento iterativo e algumas das noções do modelo em cascata. Ele permite lançamentos parciais do software em cada ciclo iterativo.

    Os quatro estágios e as repetições são chamados de “espirais”. As fases do SDLC são: planejamento e levantamento de requisitos; Projeto; desenvolvimento e teste.

    A análise de risco tem um papel fundamental. Em cada espiral, uma análise de risco é realizada para que quaisquer riscos potenciais possam ser identificados e evitados ou superados. É adequado para grandes projetos, embora o gerenciamento e o processo em si possam ser complexos.

    Embrulhar

    Escolher a abordagem certa para o desenvolvimento de software requer uma pesquisa significativa. Ao definir o escopo, os requisitos e a meta de seu projeto, você pode determinar as fases SDLC pelas quais seu produto deve passar.

    Sua metodologia de escolha não é apenas um processo de desenvolvimento de um produto funcional. É uma forma de alinhar os valores da sua organização e das suas equipes para criar um ambiente de trabalho harmonioso.

    Perguntas frequentes

    Quais são as fases do ciclo de vida de desenvolvimento de software (SDLC)?

    Dependendo da metodologia escolhida, seu software passará por vários estágios. As seguintes atividades devem fazer parte dela de qualquer maneira:

    • Planejamento, levantamento de requisitos e análise
    • Concordar em um projeto ou arquitetura de sistema
    • Gerando código
    • Testando o código produzido
    • Implantação do código em um ambiente de produção
    • Manutenção e melhoria contínua
    Quais são as 7 fases do SDLC?

    Planejamento; Requisitos e análise; Projeto; Desenvolvimento; Teste; Implementação; Manutenção.

    Qual modelo SDLC é o melhor?

    Depende do seu projeto! Sua análise da indústria, o objetivo do projeto, as capacidades e recursos disponíveis, métricas de tempo e custo seriam os fatores orientadores na seleção da melhor metodologia SDLC.