Ciclo de Vida de Desenvolvimento de Software

O Ciclo de Vida de Desenvolvimento de Software, para abreviar SDLC, é uma sequência bem definida e estruturada de estágios em engenharia de software para desenvolver o produto de software pretendido.

Atividades SDLC

SDLC fornece uma série de etapas a serem seguidas para projetar e desenvolver um produto de software com eficiência. A estrutura SDLC inclui as seguintes etapas:

Comunicação

Esta é a primeira etapa em que o usuário inicia a solicitação de um produto de software desejado. Ele entra em contato com o provedor de serviços e tenta negociar os termos. Ele submete o seu pedido por escrito à organização prestadora de serviços.

Recolha de requisitos

A partir dessa etapa, a equipe de desenvolvimento de software trabalha para dar continuidade ao projeto. A equipe mantém discussões com várias partes interessadas do domínio do problema e tenta trazer o máximo de informações possível sobre seus requisitos. Os requisitos são contemplados e segregados em requisitos de usuário, requisitos de sistema e requisitos funcionais. Os requisitos são coletados usando uma série de práticas conforme fornecidas -

  • estudar o sistema e software existente ou obsoleto,
  • conduzindo entrevistas de usuários e desenvolvedores,
  • referindo-se ao banco de dados ou
  • coleta de respostas dos questionários.

Estudo de viabilidade

Após a coleta de requisitos, a equipe apresenta um plano preliminar do processo de software. Nesta etapa a equipe analisa se um software pode ser feito para atender a todos os requisitos do usuário e se existe alguma possibilidade de o software não ser mais útil. Verifica-se se o projeto é viável financeira, prática e tecnologicamente para a organização. Existem muitos algoritmos disponíveis que ajudam os desenvolvedores a concluir a viabilidade de um projeto de software.

Análise de sistema

Nesta etapa, os desenvolvedores decidem um roteiro de seu plano e tentam trazer o melhor modelo de software adequado para o projeto. A análise do sistema inclui a compreensão das limitações do produto de software, problemas relacionados ao sistema de aprendizagem ou mudanças a serem feitas em sistemas existentes com antecedência, identificando e abordando o impacto do projeto na organização e pessoal, etc. A equipe do projeto analisa o escopo do projeto e planeja o cronograma e recursos em conformidade.

Design de software

O próximo passo é trazer todo o conhecimento dos requisitos e análises para a mesa e projetar o produto de software. As entradas dos usuários e as informações coletadas na fase de coleta de requisitos são as entradas desta etapa. A saída desta etapa vem na forma de dois designs; design lógico e design físico. Os engenheiros produzem metadados e dicionários de dados, diagramas lógicos, diagramas de fluxo de dados e, em alguns casos, pseudocódigos.

Codificação

Esta etapa também é conhecida como fase de programação. A implementação do design de software começa em termos de escrever o código do programa na linguagem de programação adequada e desenvolver programas executáveis ​​sem erros de forma eficiente.

Testando

Uma estimativa diz que 50% de todo o processo de desenvolvimento de software deve ser testado. Erros podem arruinar o software do nível crítico até sua própria remoção. O teste de software é feito durante a codificação pelos desenvolvedores e o teste completo é conduzido por especialistas em testes em vários níveis de código, como teste de módulo, teste de programa, teste de produto, teste interno e teste do produto no final do usuário. A descoberta antecipada de erros e sua solução é a chave para um software confiável.

Integração

O software pode precisar ser integrado às bibliotecas, bancos de dados e outro (s) programa (s). Este estágio do SDLC está envolvido na integração do software com entidades do mundo externo.

Implementação

Isso significa instalar o software nas máquinas dos usuários. Às vezes, o software precisa de configurações pós-instalação no final do usuário. O software é testado quanto à portabilidade e adaptabilidade e os problemas relacionados à integração são resolvidos durante a implementação.

Operação e manutenção

Esta fase confirma a operação do software em termos de mais eficiência e menos erros. Se necessário, os usuários são treinados ou auxiliados com a documentação sobre como operar o software e como mantê-lo operacional. O software é mantido em tempo hábil, atualizando o código de acordo com as mudanças que ocorrem no ambiente ou tecnologia final do usuário. Esta fase pode enfrentar desafios de bugs ocultos e problemas não identificados do mundo real.

Disposição

Conforme o tempo passa, o software pode declinar no desempenho. Pode ficar completamente obsoleto ou precisar de uma atualização intensa. Portanto, surge uma necessidade premente de eliminar uma parte importante do sistema. Esta fase inclui o arquivamento de dados e os componentes de software necessários, encerrando o sistema, planejando a atividade de disposição e encerrando o sistema no momento apropriado de final de sistema.

Paradigma de Desenvolvimento de Software

O paradigma de desenvolvimento de software ajuda o desenvolvedor a selecionar uma estratégia para desenvolver o software. Um paradigma de desenvolvimento de software possui seu próprio conjunto de ferramentas, métodos e procedimentos, que são expressos de forma clara e definem o ciclo de vida de desenvolvimento de software. Alguns dos paradigmas de desenvolvimento de software ou modelos de processo são definidos da seguinte forma:

Modelo de Cachoeira

O modelo em cascata é o modelo mais simples de paradigma de desenvolvimento de software. Ele diz que todas as fases do SDLC funcionarão uma após a outra de maneira linear. Ou seja, quando a primeira fase for concluída, apenas a segunda fase terá início e assim por diante.

Este modelo parte do pressuposto de que tudo se desenrola e decorre perfeitamente conforme planeado na fase anterior e não há necessidade de pensar nas questões do passado que podem surgir na fase seguinte. Este modelo não funcionará perfeitamente se houver alguns problemas deixados na etapa anterior. A natureza sequencial do modelo não nos permite voltar e desfazer ou refazer nossas ações.

Este modelo é mais adequado quando os desenvolvedores já projetaram e desenvolveram software semelhante no passado e estão cientes de todos os seus domínios.

Modelo Iterativo

Este modelo conduz o processo de desenvolvimento de software em iterações. Ele projeta o processo de desenvolvimento de maneira cíclica repetindo cada etapa após cada ciclo do processo SDLC.

O software é desenvolvido inicialmente em uma escala muito pequena e todas as etapas são seguidas e levadas em consideração. Então, em cada iteração seguinte, mais recursos e módulos são projetados, codificados, testados e adicionados ao software. Cada ciclo produz um software completo em si mesmo e com mais recursos e capacidades do que o anterior.

Após cada iteração, a equipe de gerenciamento pode trabalhar no gerenciamento de riscos e se preparar para a próxima iteração. Como um ciclo inclui uma pequena parte de todo o processo de software, é mais fácil gerenciar o processo de desenvolvimento, mas consome mais recursos.

Modelo Espiral

O modelo espiral é uma combinação de ambos, o modelo iterativo e um do modelo SDLC. Pode ser visto como se você escolhesse um modelo SDLC e o combinasse com o processo cíclico (modelo iterativo).

Este modelo considera o risco, que muitas vezes passa despercebido pela maioria dos outros modelos. O modelo começa com a determinação de objetivos e restrições do software no início de uma iteração. A próxima fase é a prototipagem do software. Isso inclui a análise de risco. Em seguida, um modelo SDLC padrão é usado para construir o software. Na quarta fase do plano de próxima iteração é preparado.

V - modelo

A principal desvantagem do modelo em cascata é que passamos para o próximo estágio somente quando o anterior estiver concluído e não havia chance de voltar se algo fosse encontrado errado nos estágios posteriores. O V-Model fornece meios de testar o software em cada estágio de maneira reversa.

Em cada etapa, são criados planos de teste e casos de teste para verificar e validar o produto de acordo com a exigência daquela etapa. Por exemplo, no estágio de coleta de requisitos, a equipe de teste prepara todos os casos de teste em correspondência com os requisitos. Posteriormente, quando o produto for desenvolvido e estiver pronto para teste, os casos de teste dessa etapa verificam o software em relação à validade dos requisitos dessa etapa.

Isso faz com que a verificação e a validação ocorram em paralelo. Este modelo também é conhecido como modelo de verificação e validação.

Modelo big bang

Este modelo é o modelo mais simples em sua forma. Requer pouco planejamento, muita programação e muitos fundos. Este modelo é conceituado em torno do big bang do universo. Como dizem os cientistas, após o big bang, muitas galáxias, planetas e estrelas evoluíram apenas como um evento. Da mesma forma, se juntarmos muita programação e fundos, você poderá obter o melhor produto de software.

Para este modelo, é necessária uma quantidade muito pequena de planejamento. Não segue nenhum processo, ou às vezes o cliente não tem certeza sobre os requisitos e necessidades futuras. Portanto, os requisitos de entrada são arbitrários.

Este modelo não é adequado para grandes projetos de software, mas é bom para aprender e experimentar.

Para uma leitura aprofundada sobre SDLC e seus vários modelos, clique aqui.