Entendendo o Ciclo SDLC e Seus Modelos
Entendendo o Ciclo SDLC e Seus Modelos
com
Ciclo de Vida de Desenvolvimento de Software (SDLC) é um processo usado pela indústria de software
para projetar, desenvolver e testar softwares de alta qualidade. O SDLC visa produzir um software de alta
qualidade que atenda ou supere as expectativas do cliente, alcance a conclusão dentro dos prazos e
estimativas de custo.
SDLC é um processo seguido para um projeto de software, dentro de uma organização de software. Consiste
em um plano detalhado que descreve como desenvolver, manter, substituir e alterar ou aprimorar software
específico. O ciclo de vida define uma metodologia para melhorar a qualidade do software e o processo
geral de desenvolvimento.
Modelos SDLC
Existem vários modelos de ciclo de vida de desenvolvimento de software definidos e projetados que são
seguidos durante o processo de desenvolvimento de software. Esses modelos também são chamados de
Modelos de Processo de Desenvolvimento de Software. Cada modelo de processo segue uma série de etapas
exclusivas de seu tipo para garantir o sucesso no processo de desenvolvimento de software.
Modelo Cascata
Modelo Iterativo
Modelo espiral
Modelo V
Modelo Big Bang
Outras metodologias relacionadas são Modelo Ágil, Modelo RAD, Desenvolvimento Rápido de Aplicativos
e Modelos de Prototipagem.
SDLC - Visão geral
Ciclo de Vida de Desenvolvimento de Software (SDLC) é um processo usado pela indústria de software
para projetar, desenvolver e testar softwares de alta qualidade. O SDLC visa produzir um software de alta
qualidade que atenda ou supere as expectativas do cliente, alcance a conclusão dentro dos prazos e
estimativas de custo.
O que é SDLC?
SDLC é um processo seguido para um projeto de software, dentro de uma organização de software. Consiste
em um plano detalhado que descreve como desenvolver, manter, substituir e alterar ou aprimorar software
específico. O ciclo de vida define uma metodologia para melhorar a qualidade do software e o processo
geral de desenvolvimento.
A figura a seguir é uma representação gráfica dos vários estágios de um SDLC típico.
A análise de requisitos é a etapa mais importante e fundamental no SDLC. É realizado pelos membros
seniores da equipe com insumos do cliente, do departamento de vendas, pesquisas de mercado e
especialistas do setor. Essas informações são então utilizadas para planejar a abordagem do projeto básico e
realizar o estudo de viabilidade do produto nas áreas econômica, operacional e técnica.
O planejamento dos requisitos de garantia da qualidade e a identificação dos riscos associados ao projeto
também são feitos na fase de planejamento. O resultado do estudo de viabilidade técnica é definir as várias
abordagens técnicas que podem ser seguidas para implementar o projeto com sucesso com riscos mínimos.
Uma vez que a análise de requisitos é feita, o próximo passo é definir e documentar claramente os requisitos
do produto e obtê-los aprovados pelo cliente ou pelos analistas de mercado. Isso é feito por meio de um
documento SRS (Software Requirement Specification) que consiste em todos os requisitos do produto a
serem projetados e desenvolvidos durante o ciclo de vida do projeto.
O SRS é a referência para que arquitetos de produtos apresentem a melhor arquitetura para o produto a ser
desenvolvido. Com base nos requisitos especificados na SRS, geralmente mais de uma abordagem de
projeto para a arquitetura do produto é proposta e documentada em um DDS – Design Document
Specification.
Este DDS é revisado por todas as partes interessadas importantes e com base em vários parâmetros como
avaliação de risco, robustez do produto, modularidade do projeto, restrições de orçamento e tempo, a melhor
abordagem de projeto é selecionada para o produto.
Uma abordagem de design define claramente todos os módulos arquitetônicos do produto, juntamente com
sua comunicação e representação de fluxo de dados com os módulos externos e de terceiros (se houver). O
design interno de todos os módulos da arquitetura proposta deve ser claramente definido com os mínimos
detalhes no DDS.
Nesta fase do SDLC o desenvolvimento real começa e o produto é construído. O código de programação é
gerado conforme DDS durante esta etapa. Se o projeto for realizado de forma detalhada e organizada, a
geração de código pode ser realizada sem muita complicação.
Os desenvolvedores devem seguir as diretrizes de codificação definidas por sua organização e ferramentas
de programação como compiladores, interpretadores, depuradores, etc. são usadas para gerar o código.
Diferentes linguagens de programação de alto nível como C, C++, Pascal, Java e PHP são usadas para
codificação. A linguagem de programação é escolhida em relação ao tipo de software que está sendo
desenvolvido.
Este estágio geralmente é um subconjunto de todos os estágios, pois nos modelos modernos de SDLC, as
atividades de teste estão principalmente envolvidas em todos os estágios do SDLC. No entanto, esta etapa
refere-se apenas à etapa de teste do produto onde os defeitos do produto são relatados, rastreados, corrigidos
e retestados, até que o produto atinja os padrões de qualidade definidos na SRS.
Uma vez que o produto esteja testado e pronto para ser implantado, ele é lançado formalmente no mercado
apropriado. Às vezes, a implantação do produto acontece em etapas de acordo com a estratégia de negócios
dessa organização. O produto pode ser lançado primeiro em um segmento limitado e testado no ambiente
real de negócios (UAT-User accept testing).
Em seguida, com base no feedback, o produto pode ser lançado como está ou com melhorias sugeridas no
segmento de mercado-alvo. Após o lançamento do produto no mercado, é feita sua manutenção para a base
de clientes existente.
Modelos SDLC
Existem vários modelos de ciclo de vida de desenvolvimento de software definidos e projetados que são
seguidos durante o processo de desenvolvimento de software. Esses modelos também são chamados de
Modelos de Processo de Desenvolvimento de Software”. Cada modelo de processo segue uma série de
etapas exclusivas de seu tipo para garantir o sucesso no processo de desenvolvimento de software.
Modelo Cascata
Modelo Iterativo
Modelo espiral
Modelo V
Modelo Big Bang
Outras metodologias relacionadas são Modelo Ágil, Modelo RAD, Desenvolvimento Rápido de Aplicativos
e Modelos de Prototipagem.
SDLC - Modelo em Cascata
O Modelo Cascata foi o primeiro Modelo de Processo a ser introduzido. Também é referido como um
modelo de ciclo de vida linear-sequencial. É muito simples de entender e usar. Em um modelo em cascata,
cada fase deve ser concluída antes que a próxima fase possa começar e não há sobreposição nas fases.
O modelo em cascata ilustra o processo de desenvolvimento de software em um fluxo sequencial linear. Isso
significa que qualquer fase do processo de desenvolvimento começa apenas se a fase anterior estiver
concluída. Neste modelo em cascata, as fases não se sobrepõem.
A abordagem em cascata foi o primeiro modelo SDLC a ser amplamente utilizado na Engenharia de
Software para garantir o sucesso do projeto. Na abordagem “The Waterfall”, todo o processo de
desenvolvimento de software é dividido em fases separadas. Neste modelo Waterfall, normalmente, o
resultado de uma fase atua como entrada para a próxima fase sequencialmente.
Todas essas fases estão em cascata entre si, nas quais o progresso é visto como um fluxo constante para
baixo (como uma cachoeira) através das fases. A próxima fase é iniciada somente após o conjunto de metas
definido para a fase anterior ser alcançado e ela é assinada, por isso o nome “Modelo Cascata”. Neste
modelo, as fases não se sobrepõem.
Cada software desenvolvido é diferente e requer uma abordagem SDLC adequada a ser seguida com base
em fatores internos e externos. Algumas situações em que o uso do modelo Waterfall é mais adequado são −
O desenvolvimento vai desde o conceito, passando pelo design, implementação, teste, instalação, solução de
problemas e termina na operação e manutenção. Cada fase do desenvolvimento prossegue em ordem estrita.
A desvantagem do desenvolvimento em cascata é que ele não permite muita reflexão ou revisão. Uma vez
que um aplicativo está no estágio de teste, é muito difícil voltar e alterar algo que não foi bem documentado
ou pensado no estágio de conceito.
No modelo iterativo, o processo iterativo começa com uma implementação simples de um pequeno conjunto
de requisitos de software e aprimora iterativamente as versões em evolução até que o sistema completo
esteja implementado e pronto para ser implantado.
Um modelo de ciclo de vida iterativo não tenta começar com uma especificação completa dos requisitos. Em
vez disso, o desenvolvimento começa especificando e implementando apenas parte do software, que é então
revisado para identificar outros requisitos. Este processo é então repetido, produzindo uma nova versão do
software ao final de cada iteração do modelo.
O processo iterativo começa com uma implementação simples de um subconjunto dos requisitos de software
e aprimora iterativamente as versões em evolução até que o sistema completo seja implementado. A cada
iteração, são feitas modificações de design e novos recursos funcionais são adicionados. A ideia básica por
trás desse método é desenvolver um sistema por meio de ciclos repetidos (iterativo) e em porções menores
de cada vez (incremental).
Neste modelo incremental, todo o requisito é dividido em várias compilações. Durante cada iteração, o
módulo de desenvolvimento passa pelas fases de requisitos, design, implementação e teste. Cada versão
subsequente do módulo adiciona funções à versão anterior. O processo continua até que o sistema completo
esteja pronto de acordo com o requisito.
Assim como outros modelos SDLC, o desenvolvimento iterativo e incremental tem algumas aplicações
específicas na indústria de software. Este modelo é mais frequentemente usado nos seguintes cenários -
Os requisitos do sistema completo são claramente definidos e compreendidos.
Os requisitos principais devem ser definidos; no entanto, algumas funcionalidades ou melhorias
solicitadas podem evoluir com o tempo.
Há um tempo para a restrição do mercado.
Uma nova tecnologia está sendo usada e está sendo aprendida pela equipe de desenvolvimento
enquanto trabalha no projeto.
Os recursos com os conjuntos de habilidades necessários não estão disponíveis e estão planejados
para serem usados por contrato para iterações específicas.
Existem alguns recursos e objetivos de alto risco que podem mudar no futuro.
A vantagem deste modelo é que existe um modelo de funcionamento do sistema em um estágio muito inicial
de desenvolvimento, o que facilita encontrar falhas funcionais ou de design. Encontrar problemas em um
estágio inicial de desenvolvimento permite tomar medidas corretivas em um orçamento limitado.
A desvantagem desse modelo SDLC é que ele é aplicável apenas a projetos de desenvolvimento de software
grandes e volumosos. Isso ocorre porque é difícil quebrar um pequeno sistema de software em outros
pequenos incrementos/módulos úteis.
O modelo espiral combina a ideia de desenvolvimento iterativo com os aspectos sistemáticos e controlados
do modelo cascata. Este modelo espiral é uma combinação de modelo de processo de desenvolvimento
iterativo e modelo de desenvolvimento linear sequencial, ou seja, o modelo em cascata com uma ênfase
muito alta na análise de risco. Ele permite lançamentos incrementais do produto ou refinamento incremental
por meio de cada iteração ao redor da espiral.
O modelo espiral tem quatro fases. Um projeto de software passa repetidamente por essas fases em iterações
chamadas Espirais.
Identificação
Esta fase começa com a coleta dos requisitos de negócios na espiral da linha de base. Nas espirais
subsequentes, à medida que o produto amadurece, a identificação dos requisitos do sistema, requisitos do
subsistema e requisitos da unidade são feitos nesta fase.
Essa fase também inclui o entendimento dos requisitos do sistema por meio da comunicação contínua entre
o cliente e o analista do sistema. No final da espiral, o produto é implantado no mercado identificado.
Projeto
A fase de Projeto começa com o projeto conceitual na espiral da linha de base e envolve o projeto
arquitetônico, o projeto lógico dos módulos, o projeto físico do produto e o projeto final nas espirais
subsequentes.
Construir ou Construir
A fase de construção refere-se à produção do produto de software real em cada espiral. Na espiral da linha
de base, quando o produto é apenas pensado e o design está sendo desenvolvido, uma POC (Prova de
Conceito) é desenvolvida nesta fase para obter feedback do cliente.
Então, nas espirais subsequentes, com maior clareza sobre os requisitos e detalhes do projeto, um modelo de
trabalho do software chamado build é produzido com um número de versão. Essas compilações são enviadas
ao cliente para feedback.
A Análise de Risco inclui identificar, estimar e monitorar a viabilidade técnica e os riscos de gerenciamento,
como atrasos no cronograma e excesso de custos. Após testar a compilação, no final da primeira iteração, o
cliente avalia o software e fornece feedback.
A ilustração a seguir é uma representação do Modelo Espiral, listando as atividades em cada fase.
Com base na avaliação do cliente, o processo de desenvolvimento de software entra na próxima iteração e,
posteriormente, segue a abordagem linear para implementar o feedback sugerido pelo cliente. O processo de
iterações ao longo da espiral continua ao longo da vida do software.
O Modelo Espiral é amplamente utilizado na indústria de software por estar em sincronia com o processo
natural de desenvolvimento de qualquer produto, ou seja, aprendizado com maturidade que envolve risco
mínimo tanto para o cliente quanto para as empresas de desenvolvimento.
A vantagem do modelo de ciclo de vida em espiral é que ele permite que elementos do produto sejam
adicionados, quando se tornam disponíveis ou conhecidos. Isso garante que não haja conflito com os
requisitos e design anteriores.
Esse método é consistente com abordagens que possuem várias compilações e versões de software, o que
permite fazer uma transição ordenada para uma atividade de manutenção. Outro aspecto positivo deste
método é que o modelo espiral força um envolvimento precoce do usuário no esforço de desenvolvimento
do sistema.
Por outro lado, é preciso uma gestão muito rigorosa para completar tais produtos e corre-se o risco de rodar
a espiral em um loop indefinido. Portanto, a disciplina da mudança e a extensão de receber solicitações de
mudança são muito importantes para desenvolver e implantar o produto com sucesso.
O modelo V é um modelo SDLC onde a execução dos processos acontece de forma sequencial em forma de
V. Também é conhecido como modelo de Verificação e Validação.
O V-Model é uma extensão do modelo cascata e baseia-se na associação de uma fase de teste para cada fase
de desenvolvimento correspondente. Isso significa que para cada fase do ciclo de desenvolvimento, há uma
fase de teste diretamente associada. Este é um modelo altamente disciplinado e a próxima fase começa
somente após a conclusão da fase anterior.
Modelo V - Projeto
Existem várias fases de verificação no V-Model, cada uma delas é explicada em detalhes abaixo.
Esta é a primeira fase do ciclo de desenvolvimento em que os requisitos do produto são entendidos da
perspectiva do cliente. Esta fase envolve uma comunicação detalhada com o cliente para entender suas
expectativas e requisitos exatos. Esta é uma atividade muito importante e precisa ser bem gerenciada, pois a
maioria dos clientes não tem certeza do que exatamente eles precisam. O planejamento do projeto de teste de
aceitação é feito neste estágio, pois os requisitos de negócios podem ser usados como entrada para o teste de
aceitação.
Projeto de sistema
Depois de ter os requisitos do produto claros e detalhados, é hora de projetar o sistema completo. O projeto
do sistema terá o entendimento e detalhamento da configuração completa de hardware e comunicação para o
produto em desenvolvimento. O plano de teste do sistema é desenvolvido com base no projeto do sistema.
Fazer isso em um estágio anterior deixa mais tempo para a execução do teste real mais tarde.
Projeto arquitetônico
As especificações arquitetônicas são compreendidas e projetadas nesta fase. Geralmente mais de uma
abordagem técnica é proposta e com base na viabilidade técnica e financeira a decisão final é tomada. O
design do sistema é dividido em módulos que ocupam diferentes funcionalidades. Isso também é conhecido
como High Level Design (HLD).
A transferência de dados e comunicação entre os módulos internos e com o mundo externo (outros sistemas)
é claramente compreendida e definida nesta etapa. Com essas informações, os testes de integração podem
ser projetados e documentados durante esta etapa.
Projeto do Módulo
Nesta fase, é especificado o projeto interno detalhado de todos os módulos do sistema, denominado Low
Level Design (LLD). É importante que o projeto seja compatível com os demais módulos da arquitetura do
sistema e com os demais sistemas externos. Os testes unitários são uma parte essencial de qualquer processo
de desenvolvimento e ajudam a eliminar o máximo de falhas e erros em um estágio muito inicial. Esses
testes de unidade podem ser projetados nesta fase com base nos projetos dos módulos internos.
Fase de codificação
A codificação real dos módulos do sistema projetados na fase de projeto é retomada na fase de codificação.
A melhor linguagem de programação adequada é decidida com base no sistema e nos requisitos de
arquitetura.
A codificação é realizada com base nas diretrizes e padrões de codificação. O código passa por várias
revisões de código e é otimizado para melhor desempenho antes que a compilação final seja registrada no
repositório.
Fases de validação
Teste de unidade
Os testes de unidade projetados na fase de projeto do módulo são executados no código durante esta fase de
validação. O teste de unidade é o teste no nível do código e ajuda a eliminar bugs em um estágio inicial,
embora todos os defeitos não possam ser descobertos pelo teste de unidade.
Teste de integração
O teste de integração está associado à fase de projeto de arquitetura. Os testes de integração são realizados
para testar a coexistência e comunicação dos módulos internos dentro do sistema.
Teste do sistema
O teste do sistema está diretamente associado à fase de projeto do sistema. Os testes do sistema verificam
toda a funcionalidade do sistema e a comunicação do sistema em desenvolvimento com sistemas externos. A
maioria dos problemas de compatibilidade de software e hardware pode ser descoberta durante a execução
do teste do sistema.
Teste de aceitação
O teste de aceitação está associado à fase de análise de requisitos de negócios e envolve o teste do produto
no ambiente do usuário. Os testes de aceitação revelam os problemas de compatibilidade com os outros
sistemas disponíveis no ambiente do usuário. Ele também descobre os problemas não funcionais, como
defeitos de carga e desempenho no ambiente real do usuário.
V- Modelo ─ Aplicação
A aplicação do V-Model é quase igual ao modelo cascata, pois ambos os modelos são do tipo sequencial. Os
requisitos precisam estar muito claros antes do início do projeto, porque geralmente é caro voltar e fazer
alterações. Este modelo é usado no campo do desenvolvimento médico, pois é um domínio estritamente
disciplinado.
Os ponteiros a seguir são alguns dos cenários mais adequados para usar o aplicativo V-Model.
A vantagem do método V-Model é que é muito fácil de entender e aplicar. A simplicidade desse modelo
também facilita o gerenciamento. A desvantagem é que o modelo não é flexível a mudanças e caso haja uma
mudança de requisito, o que é muito comum no mundo dinâmico de hoje, torna-se muito caro fazer a
mudança.
Este é um modelo altamente disciplinado e as Fases são concluídas uma de cada vez.
Funciona bem para projetos menores onde os requisitos são muito bem compreendidos.
Simples e fácil de entender e usar.
Fácil de manusear devido à rigidez do modelo. Cada fase tem entregas específicas e um processo de
revisão.
O modelo Big Bang é um modelo SDLC onde não seguimos nenhum processo específico. O
desenvolvimento apenas começa com o dinheiro e os esforços necessários como entrada, e a saída é o
software desenvolvido que pode ou não estar de acordo com os requisitos do cliente. Este modelo do Big
Bang não segue um processo/procedimento e requer muito pouco planejamento. Mesmo o cliente não tem
certeza sobre o que exatamente ele quer e os requisitos são implementados em tempo real sem muita análise.
Normalmente este modelo é seguido para pequenos projetos onde as equipes de desenvolvimento são muito
pequenas.
O Modelo do Big Bang consiste em focar todos os recursos possíveis no desenvolvimento e codificação de
software, com muito pouco ou nenhum planejamento. Os requisitos são compreendidos e implementados à
medida que surgem. Quaisquer alterações necessárias podem ou não precisar renovar o software completo.
Este modelo é ideal para pequenos projetos com um ou dois desenvolvedores trabalhando juntos e também é
útil para projetos acadêmicos ou práticos. É um modelo ideal para o produto onde os requisitos não são bem
compreendidos e a data final de lançamento não é fornecida.
A vantagem deste modelo do Big Bang é que ele é muito simples e requer muito pouco ou nenhum
planejamento. Fácil de gerenciar e nenhum procedimento formal é necessário.
No entanto, o modelo do Big Bang é um modelo de risco muito alto e mudanças nos requisitos ou requisitos
incompreendidos podem até levar à reversão completa ou à eliminação do projeto. É ideal para projetos
repetitivos ou pequenos com riscos mínimos.
O modelo Agile SDLC é uma combinação de modelos de processos iterativos e incrementais com foco na
adaptabilidade do processo e na satisfação do cliente pela entrega rápida do produto de software em
funcionamento. Os métodos ágeis dividem o produto em pequenas compilações incrementais. Essas
compilações são fornecidas em iterações. Cada iteração normalmente dura cerca de uma a três semanas.
Cada iteração envolve equipes multifuncionais trabalhando simultaneamente em várias áreas, como −
Planejamento
Análise de Requisitos
Projeto
Codificação
Testes Unitários e
Teste de aceitação.
No final da iteração, um produto de trabalho é exibido para o cliente e partes interessadas importantes.
O que é Ágil?
O modelo ágil acredita que cada projeto precisa ser tratado de forma diferente e os métodos existentes
precisam ser adaptados para melhor atender aos requisitos do projeto. No Agile, as tarefas são divididas em
caixas de tempo (pequenos prazos) para entregar recursos específicos para uma versão.
A abordagem iterativa é adotada e a construção do software de trabalho é entregue após cada iteração. Cada
compilação é incremental em termos de recursos; a versão final contém todos os recursos exigidos pelo
cliente.
Os métodos ágeis mais populares incluem Rational Unified Process (1994), Scrum (1995), Crystal Clear,
Extreme Programming (1996), Adaptive Software Development, Feature Driven Development e Dynamic
Systems Development Method (DSDM) (1995). Estes são agora coletivamente referidos como Metodologias
Ágeis, depois que o Manifesto Ágil foi publicado em 2001.
O Agile é baseado nos métodos de desenvolvimento de software adaptativos, enquanto os modelos SDLC
tradicionais, como o modelo em cascata, são baseados em uma abordagem preditiva. As equipes preditivas
nos modelos SDLC tradicionais geralmente trabalham com planejamento detalhado e têm uma previsão
completa das tarefas e recursos exatos a serem entregues nos próximos meses ou durante o ciclo de vida do
produto.
O Agile usa uma abordagem adaptativa onde não há planejamento detalhado e há clareza nas tarefas futuras
apenas em relação a quais recursos precisam ser desenvolvidos. Há desenvolvimento orientado a recursos e
a equipe se adapta dinamicamente às mudanças nos requisitos do produto. O produto é testado com muita
frequência, por meio das iterações de lançamento, minimizando o risco de falhas maiores no futuro.
Interação com o clienteé a espinha dorsal desta metodologia Agile, e comunicação aberta com
documentação mínima são as características típicas do ambiente de desenvolvimento Agile. As equipes
ágeis trabalham em estreita colaboração umas com as outras e geralmente estão localizadas na mesma
localização geográfica.
Os métodos ágeis estão sendo amplamente aceitos no mundo do software recentemente. No entanto, este
método pode nem sempre ser adequado para todos os produtos. Aqui estão alguns prós e contras do modelo
Agile.
O que é RAD?
No modelo RAD, os módulos funcionais são desenvolvidos em paralelo como protótipos e são integrados
para tornar o produto completo para uma entrega mais rápida do produto. Como não há um planejamento
prévio detalhado, fica mais fácil incorporar as mudanças no processo de desenvolvimento.
Os projetos RAD seguem um modelo iterativo e incremental e possuem pequenas equipes compostas por
desenvolvedores, especialistas de domínio, representantes de clientes e outros recursos de TI trabalhando
progressivamente em seu componente ou protótipo.
O aspecto mais importante para o sucesso deste modelo é garantir que os protótipos desenvolvidos sejam
reutilizáveis.
O modelo RAD distribui as fases de análise, projeto, construção e teste em uma série de ciclos de
desenvolvimento curtos e interativos.
Modelagem de Negócios
Modelagem de dados
As informações coletadas na fase de Modelagem de Negócios são revisadas e analisadas para formar
conjuntos de objetos de dados vitais para os negócios. Os atributos de todos os conjuntos de dados são
identificados e definidos. A relação entre esses objetos de dados é estabelecida e definida em detalhes de
acordo com a relevância do modelo de negócios.
Modelagem de Processos
Os conjuntos de objetos de dados definidos na fase de Modelagem de Dados são convertidos para
estabelecer o fluxo de informações de negócios necessário para atingir objetivos de negócios específicos de
acordo com o modelo de negócios. O modelo de processo para quaisquer alterações ou aprimoramentos nos
conjuntos de objetos de dados é definido nesta fase. São fornecidas descrições de processos para adicionar,
excluir, recuperar ou modificar um objeto de dados.
Geração de aplicativos
O sistema real é construído e a codificação é feita usando ferramentas de automação para converter
processos e modelos de dados em protótipos reais.
O tempo total de teste é reduzido no modelo RAD, pois os protótipos são testados independentemente
durante cada iteração. No entanto, o fluxo de dados e as interfaces entre todos os componentes precisam ser
exaustivamente testados com cobertura de teste completa. Como a maioria dos componentes de
programação já foi testada, reduz o risco de problemas maiores.
O SDLC tradicional segue um modelo de processo rígido com grande ênfase na análise e coleta de requisitos
antes do início da codificação. Isso pressiona o cliente a aprovar os requisitos antes do início do projeto e o
cliente não sente o produto, pois não há construção disponível há muito tempo.
O cliente pode precisar de algumas alterações depois de ver o software. No entanto, o processo de mudança
é bastante rígido e pode não ser viável incorporar grandes mudanças no produto no SDLC tradicional.
O modelo RAD se concentra na entrega iterativa e incremental de modelos de trabalho para o cliente. Isso
resulta em entrega rápida ao cliente e envolvimento do cliente durante todo o ciclo de desenvolvimento do
produto, reduzindo o risco de não conformidade com os requisitos reais do usuário.
Modelo RAD - Aplicação
O modelo RAD pode ser aplicado com sucesso aos projetos em que a modularização clara é possível. Se o
projeto não puder ser dividido em módulos, o RAD poderá falhar.
Os ponteiros a seguir descrevem os cenários típicos em que o RAD pode ser usado -
O RAD deve ser usado somente quando um sistema pode ser modularizado para ser entregue de
maneira incremental.
Deve ser usado se houver alta disponibilidade de designers para Modelagem.
Deve ser usado somente se o orçamento permitir o uso de ferramentas automatizadas de geração de
código.
O modelo RAD SDLC deve ser escolhido somente se especialistas de domínio estiverem disponíveis
com conhecimento de negócios relevante.
Deve ser usado onde os requisitos mudam durante o projeto e os protótipos de trabalho devem ser
apresentados ao cliente em pequenas iterações de 2-3 meses.
O modelo RAD permite uma entrega rápida, pois reduz o tempo geral de desenvolvimento devido à
reutilização dos componentes e desenvolvimento paralelo. O RAD funciona bem somente se engenheiros
altamente qualificados estiverem disponíveis e o cliente também estiver comprometido em alcançar o
protótipo desejado no prazo determinado. Se houver falta de comprometimento de ambos os lados, o modelo
pode falhar.
A prototipagem de software está se tornando muito popular como modelo de desenvolvimento de software,
pois permite entender os requisitos do cliente em um estágio inicial de desenvolvimento. Ele ajuda a obter
feedback valioso do cliente e ajuda os designers e desenvolvedores de software a entender exatamente o que
é esperado do produto em desenvolvimento.
Protótipo é um modelo funcional de software com algumas funcionalidades limitadas. O protótipo nem
sempre contém a lógica exata usada na aplicação de software real e é um esforço extra a ser considerado na
estimativa de esforço.
A prototipagem é usada para permitir que os usuários avaliem as propostas dos desenvolvedores e as
experimentem antes da implementação. Também ajuda a entender os requisitos que são específicos do
usuário e podem não ter sido considerados pelo desenvolvedor durante o design do produto.
A seguir está uma abordagem passo a passo explicada para projetar um protótipo de software.
Esta etapa envolve a compreensão dos requisitos básicos do produto, especialmente em termos de interface
do usuário. Os detalhes mais intrincados do design interno e aspectos externos, como desempenho e
segurança, podem ser ignorados nesta fase.
O protótipo inicial é desenvolvido nesta etapa, onde os requisitos básicos são apresentados e as interfaces de
usuário são fornecidas. Esses recursos podem não funcionar exatamente da mesma maneira internamente no
software desenvolvido. Enquanto, as soluções alternativas são usadas para dar a mesma aparência ao cliente
no protótipo desenvolvido.
Revisão do protótipo
O protótipo desenvolvido é então apresentado ao cliente e aos demais stakeholders importantes do projeto. O
feedback é coletado de forma organizada e usado para melhorias adicionais no produto em desenvolvimento.
O feedback e os comentários de revisão são discutidos durante esta etapa e algumas negociações acontecem
com o cliente com base em fatores como – restrições de tempo e orçamento e viabilidade técnica da
implementação real. As alterações aceitas são novamente incorporadas no novo Protótipo desenvolvido e o
ciclo se repete até que as expectativas do cliente sejam atendidas.
Os protótipos podem ter dimensões horizontais ou verticais. Um protótipo horizontal exibe a interface de
usuário do produto e oferece uma visão mais ampla de todo o sistema, sem se concentrar em funções
internas. Por outro lado, um protótipo Vertical é uma elaboração detalhada de uma função específica ou de
um subsistema no produto.
A finalidade do protótipo horizontal e vertical é diferente. Os protótipos horizontais são usados para obter
mais informações sobre o nível de interface do usuário e os requisitos de negócios. Ele pode até ser
apresentado nas demonstrações de vendas para obter negócios no mercado. Os protótipos verticais são de
natureza técnica e são usados para obter detalhes do funcionamento exato dos subsistemas. Por exemplo,
requisitos de banco de dados, cargas de interação e processamento de dados em um determinado subsistema.
Existem diferentes tipos de protótipos de software usados na indústria. A seguir estão os principais tipos de
prototipagem de software amplamente utilizados -
Prototipagem descartável/rápida
Prototipagem Evolutiva
Prototipagem Incremental
A prototipagem incremental refere-se à construção de vários protótipos funcionais dos vários subsistemas e,
em seguida, à integração de todos os protótipos disponíveis para formar um sistema completo.
Prototipagem Extrema
A prototipagem extrema é usada no domínio do desenvolvimento web. Consiste em três fases sequenciais.
Primeiramente, um protótipo básico com todas as páginas existentes é apresentado no formato HTML. Em
seguida, o processamento de dados é simulado usando uma camada de serviços de protótipo. Por fim, os
serviços são implementados e integrados ao protótipo final. Esse processo é chamado de Extreme
Prototyping usado para chamar a atenção para a segunda fase do processo, onde uma interface do usuário
totalmente funcional é desenvolvida com muito pouca consideração pelos serviços reais.
A Prototipagem de Software é mais útil no desenvolvimento de sistemas com alto nível de interação com o
usuário, como sistemas online. Os sistemas que precisam que os usuários preencham formulários ou passem
por várias telas antes que os dados sejam processados podem usar a prototipagem de forma muito eficaz
para dar a aparência exata mesmo antes que o software real seja desenvolvido.
O software que envolve muito processamento de dados e a maior parte da funcionalidade é interna com
muito pouca interface de usuário geralmente não se beneficia da prototipagem. O desenvolvimento de
protótipos pode ser uma sobrecarga extra em tais projetos e pode exigir muitos esforços extras.
A prototipagem de software é utilizada em casos típicos e a decisão deve ser tomada com muito cuidado
para que os esforços despendidos na construção do protótipo agreguem valor considerável ao software final
desenvolvido. O modelo tem seus próprios prós e contras discutidos a seguir.
As vantagens do Modelo de Prototipagem são as seguintes −