sdlc phases
O que é Ciclo de Vida de Desenvolvimento de Software (SDLC)? Aprenda as fases, metodologias, processos e modelos do SDLC
O Ciclo de Vida de Desenvolvimento de Software (SDLC) é um framework que define as etapas envolvidas no desenvolvimento de software em cada fase. Ele cobre o plano detalhado de construção, implantação e manutenção do software.
SDLC define o ciclo completo de desenvolvimento, ou seja, todas as tarefas envolvidas no planejamento, criação, teste e implantação de um produto de software.
O que você aprenderá:
- Processo de Ciclo de Vida de Desenvolvimento de Software
- Ciclo SDLC
- Fases SDLC
- Modelos de ciclo de vida de desenvolvimento de software
- Conclusão
Processo de Ciclo de Vida de Desenvolvimento de Software
SDLC é um processo que define as várias etapas envolvidas no desenvolvimento de um software para a entrega de um produto de alta qualidade. Os estágios SDLC cobrem o ciclo de vida completo de um software, ou seja, desde o início até a retirada do produto.
A adesão ao processo SDLC leva ao desenvolvimento do software de forma sistemática e disciplinada.
Propósito:
O objetivo do SDLC é fornecer um produto de alta qualidade que atenda aos requisitos do cliente.
SDLC definiu suas fases como, coleta de requisitos, projeto, codificação, teste e manutenção. É importante seguir as fases para fornecer o Produto de maneira sistemática.
Por exemplo, Um software deve ser desenvolvido e uma equipe é dividida para trabalhar em um recurso do produto e pode trabalhar como quiser. Um dos desenvolvedores decide projetar primeiro, enquanto o outro decide codificar primeiro e o outro na parte da documentação.
Isso levará ao fracasso do projeto, por isso é necessário ter um bom conhecimento e compreensão entre os membros da equipe para entregar o produto esperado.
Ciclo SDLC
Ciclo SDLC representa o processo de desenvolvimento de software.
Abaixo está a representação esquemática do ciclo SDLC:
Fases SDLC
Dada a seguir estão as várias fases:
- Coleta e análise de requisitos
- Projeto
- Implementação ou codificação
- Testando
- Desdobramento, desenvolvimento
- Manutenção
# 1) Coleta e Análise de Requisitos
Durante esta fase, todas as informações relevantes são coletadas do cliente para desenvolver um produto conforme sua expectativa. Quaisquer ambigüidades devem ser resolvidas apenas nesta fase.
O analista de negócios e o gerente de projetos marcam uma reunião com o cliente para reunir todas as informações, como o que o cliente deseja construir, quem será o usuário final, qual é o propósito do produto. Antes de construir um produto, é muito importante ter um entendimento ou conhecimento básico do produto.
Por exemplo, Um cliente deseja ter um aplicativo que envolva transações financeiras. Neste caso, o requisito deve ser claro como que tipo de transações serão feitas, como serão feitas, em que moeda serão feitas, etc.
Feita a coleta de requisitos, é feita uma análise para verificar a viabilidade de desenvolvimento de um produto. Em caso de ambiguidade, uma chamada é feita para uma discussão mais aprofundada.
Uma vez que o requisito é claramente entendido, o documento SRS (Especificação de Requisito de Software) é criado. Este documento deve ser totalmente compreendido pelos desenvolvedores e também deve ser revisado pelo cliente para referência futura.
# 2) Design
Nesta fase, o requisito reunido no documento SRS é usado como uma entrada e a arquitetura de software usada para implementar o desenvolvimento do sistema é derivada.
# 3) Implementação ou codificação
A implementação / codificação começa assim que o desenvolvedor obtém o documento de design. O design do software é traduzido em código-fonte. Todos os componentes do software são implementados nesta fase.
qual programa abre um arquivo json
# 4) Teste
O teste começa quando a codificação é concluída e os módulos são liberados para teste. Nesta fase, o software desenvolvido é testado exaustivamente e quaisquer defeitos encontrados são atribuídos aos desenvolvedores para corrigi-los.
Testando novamente, o teste de regressão é feito até o ponto em que o software está de acordo com a expectativa do cliente. Os testadores consultam o documento SRS para se certificar de que o software está de acordo com o padrão do cliente.
# 5) Implantação
Depois que o produto é testado, ele é implantado no ambiente de produção ou primeiro UAT (teste de aceitação do usuário) é feito dependendo da expectativa do cliente.
No caso do UAT, uma réplica do ambiente de produção é criada e o cliente junto com os desenvolvedores faz o teste. Se o cliente encontrar o aplicativo conforme o esperado, a assinatura será fornecida pelo cliente para entrar no ar.
# 6) Manutenção
Após a implantação de um produto no ambiente de produção, a manutenção do produto, ou seja, se algum problema surgir e precisar ser corrigido ou qualquer melhoria for feita, é feita pelos desenvolvedores.
Modelos de ciclo de vida de desenvolvimento de software
Um modelo de ciclo de vida de software é uma representação descritiva do ciclo de desenvolvimento de software. Os modelos SDLC podem ter uma abordagem diferente, mas as fases e atividades básicas permanecem as mesmas para todos os modelos.
# 1) Modelo de cachoeira
Modelo em cascata é o primeiro modelo usado no SDLC. É também conhecido como modelo sequencial linear.
Neste modelo, o resultado de uma fase é a entrada para a próxima fase. O desenvolvimento da próxima fase começa apenas quando a fase anterior é concluída.
- Primeiro, é feita a coleta e análise de requisitos. Assim que o requisito for congelado, apenas o Design do Sistema pode ser iniciado. Aqui, o documento SRS criado é a saída para a fase de Requisito e atua como uma entrada para o Desenho do Sistema.
- Na arquitetura e design de software de design de sistema, os documentos que atuam como uma entrada para a próxima fase são criados, ou seja, implementação e codificação.
- Na fase de implementação, a codificação é feita e o software desenvolvido é a entrada para a próxima fase, ou seja, o teste.
- Na fase de testes, o código desenvolvido é testado exaustivamente para detectar os defeitos do software. Os defeitos são registrados na ferramenta de rastreamento de defeitos e testados novamente depois de corrigidos. O registro de bugs, o reteste e o teste de regressão continuam até o momento em que o software entra no estado de ativação.
- Na fase de implantação, o código desenvolvido é movido para a produção após a aprovação do cliente.
- Quaisquer problemas no ambiente de produção são resolvidos pelos desenvolvedores que estão em manutenção.
Vantagens do modelo em cascata:
- O modelo em cascata é o modelo simples de fácil compreensão e é aquele em que todas as fases são executadas passo a passo.
- As entregas de cada fase são bem definidas, o que não leva a nenhuma complexidade e torna o projeto facilmente gerenciável.
Desvantagens do modelo em cascata:
- O modelo em cascata é demorado e não pode ser usado em projetos de curta duração, pois neste modelo uma nova fase não pode ser iniciada até que a fase em andamento seja concluída.
- O modelo em cascata não pode ser usado para os projetos que têm requisitos incertos ou nos quais o requisito continua mudando, pois este modelo espera que o requisito seja claro na própria fase de coleta e análise de requisitos e qualquer mudança nas fases posteriores levaria a um custo mais alto, pois mudanças seriam necessárias em todas as fases.
# 2) Modelo em forma de V
V- Model também é conhecido como modelo de verificação e validação. Neste modelo, a Verificação e a Validação andam de mãos dadas, ou seja, o desenvolvimento e o teste seguem em paralelo. O modelo V e o modelo em cascata são os mesmos, exceto que o planejamento e os testes de teste começam em um estágio inicial no V-Model.
a) Fase de verificação:
(i) Análise de Requisitos:
Nesta fase, todas as informações necessárias são coletadas e analisadas. As atividades de verificação incluem a revisão dos requisitos.
(ii) Projeto do Sistema:
Uma vez que o requisito está claro, um sistema é projetado, ou seja, arquitetura, os componentes do produto são criados e documentados em um documento de design.
(iii) Design de alto nível:
O design de alto nível define a arquitetura / design dos módulos. Ele define a funcionalidade entre os dois módulos.
(iv) Design de baixo nível:
O design de baixo nível define a arquitetura / design de componentes individuais.
(v) Codificação:
O desenvolvimento do código é feito nesta fase.
b) Fase de validação:
(i) Teste de Unidade:
Teste de unidade é executado usando os casos de teste de unidade que são projetados e são feitos na fase de projeto de baixo nível. O teste de unidade é realizado pelo próprio desenvolvedor. É realizado em componentes individuais que levam à detecção precoce de defeitos.
(ii) Teste de integração:
Teste de integração é executado usando casos de teste de integração na fase de design de alto nível. O teste de integração é o teste que é feito em módulos integrados. É executado por testadores.
(iii) Teste de Sistema:
Teste de sistema é executado na fase de design do sistema. Nesta fase, o sistema completo é testado, ou seja, toda a funcionalidade do sistema é testada.
(iv) Teste de Aceitação:
O teste de aceitação está associado à fase de Análise de Requisitos e é feito no ambiente do cliente.
Vantagens do V - Modelo:
- É um modelo simples e de fácil compreensão.
- A abordagem de modelo V é boa para projetos menores em que o requisito é definido e congela no estágio inicial.
- É um modelo sistemático e disciplinado que resulta em um produto de alta qualidade.
Desvantagens do V-Model:
- O modelo em forma de V não é bom para projetos em andamento.
- A mudança de requisitos na fase posterior custaria muito alto.
# 3) Modelo de protótipo
O modelo de protótipo é um modelo no qual o protótipo é desenvolvido antes do software real.
Modelos de protótipo têm recursos funcionais limitados e desempenho ineficiente quando comparados ao software real. Funções fictícias são usadas para criar protótipos. Este é um mecanismo valioso para compreender as necessidades dos clientes.
Os protótipos de software são construídos antes do software real para obter feedback valioso do cliente. Feedbacks são implementados e o protótipo é revisado novamente pelo cliente para qualquer alteração. Esse processo continua até que o modelo seja aceito pelo cliente.
Uma vez que a coleta de requisitos é feita, o design rápido é criado e o protótipo que é apresentado ao cliente para avaliação é construído.
O feedback do cliente e o requisito refinado são usados para modificar o protótipo e são novamente apresentados ao cliente para avaliação. Depois que o cliente aprova o protótipo, ele é usado como um requisito para a construção do software real. O software real é construído usando a abordagem do modelo em cascata.
Vantagens do modelo de protótipo:
- O modelo de protótipo reduz o custo e o tempo de desenvolvimento, pois os defeitos são encontrados muito antes.
- Funcionalidade ou recurso ausente ou uma mudança no requisito podem ser identificados na fase de avaliação e podem ser implementados no protótipo refinado.
- O envolvimento de um cliente desde o estágio inicial reduz qualquer confusão no requisito ou compreensão de qualquer funcionalidade.
Desvantagens do modelo de protótipo:
- Uma vez que o cliente está envolvido em todas as fases, o cliente pode alterar a exigência do produto final, o que aumenta a complexidade do escopo e pode aumentar o tempo de entrega do produto.
# 4) Modelo Espiral
O Modelo Espiral inclui abordagem iterativa e de protótipo.
As fases do modelo espiral são seguidas nas iterações. Os loops no modelo representam a fase do processo SDLC, ou seja, o loop mais interno é de coleta e análise de requisitos que segue o planejamento, análise de risco, desenvolvimento e avaliação. O próximo ciclo é o projeto, seguido pela implementação e, em seguida, o teste.
O Modelo Espiral tem quatro fases:
- Planejamento
- Análise de risco
- Engenharia
- Avaliação
(i) Planejamento:
A fase de planejamento inclui a coleta de requisitos em que todas as informações necessárias são coletadas do cliente e documentadas. O documento de especificação de requisitos de software é criado para a próxima fase.
(ii) Análise de Risco:
Nesta fase, é selecionada a melhor solução para os riscos envolvidos e a análise é feita através da construção do protótipo.
Por exemplo , o risco envolvido no acesso aos dados de um banco de dados remoto pode ser que a taxa de acesso aos dados pode ser muito lenta. O risco pode ser resolvido construindo um protótipo do subsistema de acesso a dados.
(iii) Engenharia:
Uma vez que a análise de risco é feita, a codificação e o teste são feitos.
(iv) Avaliação:
O cliente avalia o sistema desenvolvido e planeja a próxima iteração.
Vantagens do modelo espiral:
- A análise de risco é feita extensivamente usando os modelos de protótipo.
- Qualquer aprimoramento ou mudança na funcionalidade pode ser feito na próxima iteração.
Desvantagens do modelo espiral:
- O modelo em espiral é mais adequado apenas para grandes projetos.
- O custo pode ser alto, pois pode levar um grande número de iterações, o que pode levar a muito tempo para chegar ao produto final.
# 5) Modelo Incremental Iterativo
O modelo incremental iterativo divide o produto em pequenos pedaços.
Por exemplo , O recurso a ser desenvolvido na iteração é decidido e implementado. Cada iteração passa por fases, ou seja, Análise de Requisitos, Projeto, Codificação e Teste. O planejamento detalhado não é necessário nas iterações.
Assim que a iteração for concluída, um produto é verificado e entregue ao cliente para avaliação e feedback. O feedback do cliente é implementado na próxima iteração junto com o recurso recém-adicionado.
Conseqüentemente, os incrementos do produto em termos de recursos e, uma vez que as iterações são concluídas, a compilação final mantém todos os recursos do produto.
Fases do modelo de desenvolvimento iterativo e incremental:
- Fase de iniciação
- Fase de Elaboração
- Fase de construção
- Fase de Transição
(i) Fase de Iniciação:
A fase de iniciação inclui o requisito e o escopo do projeto.
(ii) Fase de Elaboração:
Na fase de elaboração, é entregue a arquitetura de trabalho de um produto que cobre o risco identificado na fase de iniciação e também atende aos requisitos não funcionais.
(iii) Fase de construção:
Na fase de construção, a arquitetura é preenchida com o código que está pronto para ser implantado e é criado por meio da análise, projeto, implementação e teste do requisito funcional.
(iv) Fase de Transição:
Na fase de transição, o produto é implantado no ambiente de produção.
Vantagens do modelo iterativo e incremental:
- Qualquer mudança no requisito pode ser feita facilmente e não teria custo, pois há um escopo de incorporar o novo requisito na próxima iteração.
- O risco é analisado e identificado nas iterações.
- Os defeitos são detectados em um estágio inicial.
- Como o produto é dividido em pedaços menores, é fácil gerenciá-lo.
Desvantagens do Modelo Iterativo e Incremental:
- Requisitos completos e compreensão de um produto são necessários para decompor e construir de forma incremental.
# 6) Modelo Big Bang
O modelo do Big Bang não possui nenhum processo definido. Dinheiro e esforços são reunidos à medida que a entrada e a saída vêm como um produto desenvolvido que pode ser ou não o mesmo que o que o cliente precisa.
O modelo do Big Bang não requer muito planejamento e programação. O desenvolvedor faz a análise de requisitos e codificação e desenvolve o produto de acordo com seu entendimento. Este modelo é usado apenas para pequenos projetos. Não há equipe de teste e nenhum teste formal é feito, e isso pode ser a causa do fracasso do projeto.
Vantagens do modelo do Big Bang:
- É um modelo muito simples.
- Menos planejamento e programação são necessários.
- O desenvolvedor tem flexibilidade para construir o software por conta própria.
Desvantagens do modelo do Big Bang:
- Os modelos do Big Bang não podem ser usados para projetos grandes, em andamento e complexos.
- Alto risco e incerteza.
# 7) Modelo Ágil
O modelo ágil é uma combinação do modelo iterativo e incremental. Este modelo se concentra mais na flexibilidade durante o desenvolvimento de um produto, em vez de no requisito.
No Agile, um produto é dividido em pequenas compilações incrementais. Não é desenvolvido como um produto completo de uma só vez. Cada construção é incrementada em termos de recursos. A próxima construção é baseada na funcionalidade anterior.
Em iterações ágeis, são denominadas sprints. Cada sprint dura de 2 a 4 semanas. Ao final de cada sprint, o product owner verifica o produto e após sua aprovação, ele é entregue ao cliente.
O feedback do cliente é levado para melhoria e suas sugestões e melhorias são trabalhadas no próximo sprint. O teste é feito em cada sprint para minimizar o risco de falhas.
Vantagens do modelo ágil:
- Ele permite mais flexibilidade para se adaptar às mudanças.
- O novo recurso pode ser adicionado facilmente.
- A satisfação do cliente na medida em que os feedbacks e sugestões são atendidos em todas as fases.
Desvantagens:
- Falta de documentação.
- O Agile precisa de recursos experientes e altamente qualificados.
- Se um cliente não tiver certeza de como exatamente deseja que o produto seja, o projeto fracassará.
Conclusão
A adesão a um ciclo de vida adequado é muito importante para a conclusão bem-sucedida do Projeto. Isso, por sua vez, facilita o gerenciamento.
Diferentes modelos de ciclo de vida de desenvolvimento de software têm seus próprios prós e contras. O melhor modelo para qualquer projeto pode ser determinado por fatores como Requisito (seja claro ou pouco claro), Complexidade do Sistema, Tamanho do Projeto, Custo, Limitação de Habilidade, etc.
Exemplo, no caso de um requisito pouco claro, os modelos Spiral e Agile são melhores para serem usados, pois a mudança necessária pode ser acomodada facilmente em qualquer estágio.
O modelo em cascata é um modelo básico e todos os outros modelos SDLC são baseados apenas nele.
Espero que você tenha adquirido imenso conhecimento sobre SDLC.
Leitura recomendada
- Modelo espiral - O que é modelo espiral SDLC?
- O que é SDLC Waterfall Model?
- O que é o ciclo de vida do teste de software (STLC)?
- Trabalho de assistente de controle de qualidade de teste de software
- 10 MELHORES empresas e serviços de desenvolvimento de software personalizado em 2021
- Teste prático de software - Novo e-book GRATUITO (Download)
- No local - Modelo Offshore de Projetos de Teste de Software (e como fazer funcionar para você)
- Por que o software tem bugs?