SlideShare uma empresa Scribd logo
1 de 9
Baixar para ler offline
Engenharia de Programação




        Modelo Cascata ou Clássico

INTRODUÇÃO
O modelo clássico ou cascata, que também é conhecido por
abordagem “top-down”, foi proposto por Royce em 1970. Até meados
da década de 1980 foi o único modelo com aceitação geral. Esse
modelo foi derivado de modelos de actividade de engenharia com o fim
de estabelecer ordem no desenvolvimento de grandes produtos de
software. Comparado com outros modelos de desenvolvimento de
software, este é mais rígido e menos administrativo.
O modelo cascata é um dos mais importantes modelos, e é referência
para muitos outros modelos, servindo de base para muitos projectos
modernos. A versão original deste modelo foi melhorada e retocada ao
longo do tempo e continua sendo muito utilizado hoje em dia.
Grande parte do sucesso do modelo cascata está no facto dele ser
orientado para documentação. No entanto deve salientar-se que a
documentação abrange mais do que arquivo de texto, abrange
representações gráficas ou mesmo simulação.
Uma abordagem incorporando processos, métodos e ferramentas deve
ser utilizada pelos criadores de software. Esta abordagem é muitas vezes
designada de Abordagem do Processo de Desenvolvimento. Existem três
abordagens de modelos de processo de desenvolvimento de software.
Elas tentem colocar ordem numa actividade inerentemente caótica.
Uma vez definido o modelo de ciclo de desenvolvimento, existem três
abordagens para implementá-lo:
      Cascata pura;


                                                                      1
Engenharia de Programação


      Incremental;
      Evolucionária.
      Toda esta secção constitui uma interpretação do disposto na
referência [FAI96].




Descrição do modelo




O modelo Cascata é um modelo de engenharia projectado para ser
aplicado no desenvolvimento do software. A ideia principal que o dirige
é que as diferentes etapas de desenvolvimento seguem uma sequência:


                                                                      2
Engenharia de Programação


a saída da primeira etapa “fluí” para a segunda etapa e a saída da
segunda etapa “fluí” para a terceira e assim por diante. As actividades a
executar são agrupadas em tarefas, executadas sequencialmente, de
forma que uma tarefa só poderá ter início quando a anterior tiver
terminado.


O modelo em cascata tem a vantagem que só avança para a tarefa
seguinte quando o cliente valida e aceita os produtos finais da tarefa
actual. O modelo pressupõe que o cliente participa activamente no
projecto e que sabe muito bem o que quer. Este modelo minimiza o
impacto da compreensão adquirida no decurso de um projecto, uma
vez que se um processo não pode voltar atrás de modo a alterar os
modelos e as conclusões das tarefas anteriores, é normal que as novas
ideias sobre o sistema não sejam aproveitadas. Numa tentativa de
resolver este tipo de problema foi definido um novo tipo de processo
baseado no clássico em cascata, designado por modelo em cascata
revisto, cuja principal diferença consiste em prever a possibilidade de a
partir de qualquer tarefa do ciclo se poder regressar a uma tarefa
anterior de forma a contemplar alterações funcionais e/ou técnicas que
entretanto tenham surgido, em virtude de um maior conhecimento que
entretanto se tenha obtido. O risco desta abordagem é que, na
ausência de um processo de gestão do projecto e de controlo das
alterações bem definido, podemos passar o tempo num ciclo infinito,
sem nunca se atingir o objectivo final, ou seja disponibilizar o sistema a
funcionar.




                                                                        3
Engenharia de Programação




As Diferentes Etapas de Desenvolvimento
Análise e definição dos requisitos

Nesta etapa, estabelecem-se os requisitos do produto que se deseja
desenvolver, o que consiste usualmente nos serviços que se devem
fornecer, limitações e objetivos do software. Sendo isso estabelecido, os
requisitos devem ser definidos de uma maneira apropriada para que
sejam   úteis   na   etapa   seguinte.   Esta   etapa   inclui   também   a
documentação e o estudo da facilidade e da viabilidade do projecto
com o fim de determinar o processo de início de desenvolvimento do
projecto do sistema; pode ser vista como uma concepção de um
produto de software e também como o início do seu ciclo de vida.


Projecto do sistema




                                                                          4
Engenharia de Programação


O projecto do sistema é um processo de vários passos que se centraliza
em   quatro   atributos     diferentes   do   sistema:   estrutura   de   dados,
arquitectura do software, detalhes procedais e caracterização das
interfaces. O processo de projecto representa os requisitos de uma forma
que permita a codificação do produto (é uma prévia etapa de
codificação). Da mesma maneira que a análise dos requisitos, o projecto
é documentado e transforma-se em uma parte do software.


Implementação

Esta é a etapa em que são criados os programas. Se o projecto possui
um   nível   de detalhe elevado, a etapa de codificação pode
implementar-se automaticamente. A princípio, sugere-se incluir um teste
unitário dos módulos nesta etapa; nesse caso, as unidades de código
produzidas são testadas individualmente antes de passar a etapa de
integração e teste global.


Teste do sistema

Concluída a codificação, começa a fase de teste do sistema. O
processo de teste centraliza-se em dois pontos principais: as lógicas
internas do software e as funcionalidades externas. Esta fase decide se
foram solucionados erros de “comportamento” do software e assegura
que as entradas definidas produzam resultados reais que coincidam com
os requisitos especificados.


Manutenção

Essa etapa consiste na correcção de erros que não foram previamente
detectados, em melhorias funcionais e de preferência e outros tipos de
suporte. A etapa de manutenção à parte do ciclo de vida do produto
de software e não pertence estritamente ao seu desenvolvimento.


                                                                               5
Engenharia de Programação


Melhorias e correcções podem ser consideradas como parte do
desenvolvimento.
As etapas descritas são as principais, porém existem sub-etapas dentro
de cada etapa, as quais diferem muito de um projecto para outro.
Também é possível que certos projectos de software exijam a
incorporação de uma etapa extra ou a separação de uma etapa em
outras etapas.
Com certeza, todas essas variações do modelo Cascata possuem o
mesmo conceito básico: a ideia de que uma etapa fornece saída que
serão usadas como entradas para a etapa seguinte. Portanto, o
processo de desenvolvimento de um produto de software de acordo
com o modelo Cascata é simples de conhecer e controlar.
Outras actividades que também são levadas em consideração em cada
uma das etapas de desenvolvimento do software: a documentação, a
verificação e a administração das etapas serem documentos. A
verificação, por sua vez, é necessária para que uma etapa forneça os
dados correctos para a etapa seguinte. Já a administração, efectua a
gestão e o controle da etapa.




                                                                     6
Engenharia de Programação




Problemas
O ciclo de vida Cascata é o paradigma mais visto e mais amplamente
empregue na engenharia de software, porém sua aplicabilidade, em
muitos campos, tem sido questionada.
Entre os problemas que surgem quando se aplica o modelo são:


   ·   Na realidade, os projectos raramente seguem o fluxo sequencial
       que o modelo propõe. A interacção é sempre necessária e está
       presente, criando problemas na aplicação do modelo;
   ·   Em princípio, é difícil para o cliente especificar os requisitos
       explicitamente, o que acarreta a incerteza natural do início de
       qualquer projecto;
   ·   O cliente deve ser paciente, pois uma versão funcional não estará
       disponível até o final do desenvolvimento. Qualquer erro ou mal-
       entendido, se não for detectado até que o software seja revisado,
       pode ser desastroso.


Apesar desses problemas, o modelo Cascata tem um lugar bem definido
e importante nos trabalhos de engenharia de software. Ele fornece um
padrão do qual se encaixam métodos para a análise, projecto,
codificação e manutenção.




Domínio de aplicações
O modelo Cascata aplica-se bem em situações em que o software a ser
desenvolvido é simples, os requisitos são bem conhecidos, a tecnologia


                                                                       7
Engenharia de Programação


usada é bem acessível e os recursos para o desenvolvimento estão
disponíveis.




CONCLUSÃO

Vantagens do modelo

∙ Torna o processo de desenvolvimento estruturado. Tem uma ordem
sequencial de fases. Cada fase cai em cascata na próxima e cada fase
deve     estar    terminada    antes    do    início  da    seguinte;
∙ Todas as actividades identificadas nas fases do modelo são
fundamentais e estão na ordem certa;
∙ Esta abordagem é actualmente a norma e provavelmente
permanecerá como tal nos próximos tempos.


Desvantagens do modelo

∙ Não fornece feedback entre as fases e não permite a actualização ou
redefinição             das                fases           anteriores;
∙ Não suporta modificações nos requisitos;
∙Não prevê a manutenção;
∙Não permite a reutilização;
∙É excessivamente sincronizado;
∙Se ocorrer um atraso todo o processo é afectado;
∙ Faz aparecer o software muito tarde.




                                                                     8
Engenharia de Programação



∙O modelo conduz a uma rígida divisão de trabalho (analistas,
arquitectos,   programadores,      controladores     de   qualidade,
programadores de manutenção);
∙Só o chefe do projecto tem uma visão global do problema;
∙Quando algo corre mal, a culpa é dos outros... Ninguém se sente
realmente responsável.




                                                                   9

Mais conteúdo relacionado

Mais procurados

Desenvolvimento Iterativo-Incremental
Desenvolvimento Iterativo-IncrementalDesenvolvimento Iterativo-Incremental
Desenvolvimento Iterativo-IncrementalRuan Carvalho
 
Ciclo de Vida Clássico da Engenharia de Software
Ciclo de Vida Clássico da Engenharia de SoftwareCiclo de Vida Clássico da Engenharia de Software
Ciclo de Vida Clássico da Engenharia de SoftwareEduardo Santos
 
Ciclo de vida de software
Ciclo de vida de softwareCiclo de vida de software
Ciclo de vida de softwarediha36
 
Ciclo de vida de software
Ciclo de vida de software Ciclo de vida de software
Ciclo de vida de software caricati
 
Modelo Incremental - Engenharia de Software
Modelo Incremental - Engenharia de SoftwareModelo Incremental - Engenharia de Software
Modelo Incremental - Engenharia de SoftwareDaniela Franciosi
 
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane Fidelix
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane FidelixModelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane Fidelix
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane FidelixCris Fidelix
 
Processo de software individual
Processo de software individualProcesso de software individual
Processo de software individualAdivaldo_badinho
 
03 Modelo de processo de software
03 Modelo de processo de software03 Modelo de processo de software
03 Modelo de processo de softwareWaldemar Roberti
 
Gestão de Projetos (25/08/2014)
Gestão de Projetos (25/08/2014)Gestão de Projetos (25/08/2014)
Gestão de Projetos (25/08/2014)Alessandro Almeida
 

Mais procurados (19)

Os 12 Princípios Ágeis
Os 12 Princípios ÁgeisOs 12 Princípios Ágeis
Os 12 Princípios Ágeis
 
Desenvolvimento Iterativo-Incremental
Desenvolvimento Iterativo-IncrementalDesenvolvimento Iterativo-Incremental
Desenvolvimento Iterativo-Incremental
 
Ciclo de Vida Clássico da Engenharia de Software
Ciclo de Vida Clássico da Engenharia de SoftwareCiclo de Vida Clássico da Engenharia de Software
Ciclo de Vida Clássico da Engenharia de Software
 
Ciclo de vida de software
Ciclo de vida de softwareCiclo de vida de software
Ciclo de vida de software
 
Processos de software
Processos de softwareProcessos de software
Processos de software
 
Modelo V
Modelo VModelo V
Modelo V
 
Ciclo de vida de software
Ciclo de vida de software Ciclo de vida de software
Ciclo de vida de software
 
Modelo Incremental - Engenharia de Software
Modelo Incremental - Engenharia de SoftwareModelo Incremental - Engenharia de Software
Modelo Incremental - Engenharia de Software
 
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane Fidelix
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane FidelixModelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane Fidelix
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane Fidelix
 
Processo de software individual
Processo de software individualProcesso de software individual
Processo de software individual
 
Modelos de processos de software
Modelos de processos de softwareModelos de processos de software
Modelos de processos de software
 
Eng.ª do Software - 4. Processos de software
Eng.ª do Software - 4. Processos de softwareEng.ª do Software - 4. Processos de software
Eng.ª do Software - 4. Processos de software
 
Rup e metodos ágies
Rup e metodos ágiesRup e metodos ágies
Rup e metodos ágies
 
Aula 2 - Processos de Software
Aula 2 - Processos de SoftwareAula 2 - Processos de Software
Aula 2 - Processos de Software
 
Capitulo 02 sommerville
Capitulo 02 sommervilleCapitulo 02 sommerville
Capitulo 02 sommerville
 
Desenvolvimento incremental e iterativo
Desenvolvimento incremental e iterativoDesenvolvimento incremental e iterativo
Desenvolvimento incremental e iterativo
 
03 Modelo de processo de software
03 Modelo de processo de software03 Modelo de processo de software
03 Modelo de processo de software
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
Gestão de Projetos (25/08/2014)
Gestão de Projetos (25/08/2014)Gestão de Projetos (25/08/2014)
Gestão de Projetos (25/08/2014)
 

Destaque

Modelo cascata apresentação
Modelo cascata apresentaçãoModelo cascata apresentação
Modelo cascata apresentaçãoerysonsi
 
Engenharia de Software - Unimep/Pronatec - Aula 4
Engenharia de Software - Unimep/Pronatec - Aula 4Engenharia de Software - Unimep/Pronatec - Aula 4
Engenharia de Software - Unimep/Pronatec - Aula 4André Phillip Bertoletti
 
Engenharia de Software - Desenvolvimento Iterativo e Incremental
Engenharia de Software - Desenvolvimento Iterativo e IncrementalEngenharia de Software - Desenvolvimento Iterativo e Incremental
Engenharia de Software - Desenvolvimento Iterativo e IncrementalGustavo Neves
 
Es capítulo 2 - processos de software
Es   capítulo 2  - processos de softwareEs   capítulo 2  - processos de software
Es capítulo 2 - processos de softwareFelipe Oliveira
 
UnP Eng. Software - Aula 3
UnP Eng. Software - Aula 3UnP Eng. Software - Aula 3
UnP Eng. Software - Aula 3Hélio Medeiros
 
01- Introdução a programação e modelo RAD v1.0
01- Introdução a programação e modelo RAD v1.001- Introdução a programação e modelo RAD v1.0
01- Introdução a programação e modelo RAD v1.0César Augusto Pessôa
 
Cap 6 O Processo De Design De InteraçãO
Cap 6 O Processo De Design De InteraçãOCap 6 O Processo De Design De InteraçãO
Cap 6 O Processo De Design De InteraçãOMarcelo Bitencourt
 
Apresentação - Uniararas - JEE e Desenvolvimento Ágil
Apresentação - Uniararas - JEE e Desenvolvimento ÁgilApresentação - Uniararas - JEE e Desenvolvimento Ágil
Apresentação - Uniararas - JEE e Desenvolvimento ÁgilMarcio Garcia
 
Disciplina_Análise de Projeto de Sistema I - Metodologia Cascata e Processos ...
Disciplina_Análise de Projeto de Sistema I - Metodologia Cascata e Processos ...Disciplina_Análise de Projeto de Sistema I - Metodologia Cascata e Processos ...
Disciplina_Análise de Projeto de Sistema I - Metodologia Cascata e Processos ...Rogério Almeida
 
Projeto de Sistemas - Aula002
Projeto de Sistemas - Aula002Projeto de Sistemas - Aula002
Projeto de Sistemas - Aula002Cláudio Amaral
 
Introdução a engenharia de software aula 01
Introdução a engenharia de software   aula 01Introdução a engenharia de software   aula 01
Introdução a engenharia de software aula 01Franklin Matos Correia
 

Destaque (20)

Modelo cascata apresentação
Modelo cascata apresentaçãoModelo cascata apresentação
Modelo cascata apresentação
 
Engenharia de Software - Unimep/Pronatec - Aula 4
Engenharia de Software - Unimep/Pronatec - Aula 4Engenharia de Software - Unimep/Pronatec - Aula 4
Engenharia de Software - Unimep/Pronatec - Aula 4
 
Scrum fundamentos basicos
Scrum   fundamentos basicosScrum   fundamentos basicos
Scrum fundamentos basicos
 
Engenharia de Software - Desenvolvimento Iterativo e Incremental
Engenharia de Software - Desenvolvimento Iterativo e IncrementalEngenharia de Software - Desenvolvimento Iterativo e Incremental
Engenharia de Software - Desenvolvimento Iterativo e Incremental
 
Aula 3
Aula 3Aula 3
Aula 3
 
Es capítulo 2 - processos de software
Es   capítulo 2  - processos de softwareEs   capítulo 2  - processos de software
Es capítulo 2 - processos de software
 
UnP Eng. Software - Aula 3
UnP Eng. Software - Aula 3UnP Eng. Software - Aula 3
UnP Eng. Software - Aula 3
 
Aula2 processos sw
Aula2 processos swAula2 processos sw
Aula2 processos sw
 
Mesopredadores
MesopredadoresMesopredadores
Mesopredadores
 
Under engineer
Under engineerUnder engineer
Under engineer
 
Métodos Ágeis
Métodos ÁgeisMétodos Ágeis
Métodos Ágeis
 
01- Introdução a programação e modelo RAD v1.0
01- Introdução a programação e modelo RAD v1.001- Introdução a programação e modelo RAD v1.0
01- Introdução a programação e modelo RAD v1.0
 
Cap 6 O Processo De Design De InteraçãO
Cap 6 O Processo De Design De InteraçãOCap 6 O Processo De Design De InteraçãO
Cap 6 O Processo De Design De InteraçãO
 
Apresentação - Uniararas - JEE e Desenvolvimento Ágil
Apresentação - Uniararas - JEE e Desenvolvimento ÁgilApresentação - Uniararas - JEE e Desenvolvimento Ágil
Apresentação - Uniararas - JEE e Desenvolvimento Ágil
 
Disciplina_Análise de Projeto de Sistema I - Metodologia Cascata e Processos ...
Disciplina_Análise de Projeto de Sistema I - Metodologia Cascata e Processos ...Disciplina_Análise de Projeto de Sistema I - Metodologia Cascata e Processos ...
Disciplina_Análise de Projeto de Sistema I - Metodologia Cascata e Processos ...
 
1 introdução
1  introdução1  introdução
1 introdução
 
Modelo Espiral
Modelo EspiralModelo Espiral
Modelo Espiral
 
Projeto de Sistemas - Aula002
Projeto de Sistemas - Aula002Projeto de Sistemas - Aula002
Projeto de Sistemas - Aula002
 
Introdução a engenharia de software aula 01
Introdução a engenharia de software   aula 01Introdução a engenharia de software   aula 01
Introdução a engenharia de software aula 01
 
Prototipação
PrototipaçãoPrototipação
Prototipação
 

Semelhante a Modelo Cascata de Engenharia de Programação

Modelo cascata apresentação
Modelo cascata apresentaçãoModelo cascata apresentação
Modelo cascata apresentaçãoerysonsi
 
Engenharia De Software
Engenharia De SoftwareEngenharia De Software
Engenharia De SoftwareCursoSENAC
 
vantagens e desvantagens do ciclo de vida de software
vantagens e desvantagens do ciclo de vida de softwarevantagens e desvantagens do ciclo de vida de software
vantagens e desvantagens do ciclo de vida de softwarejwniezzy
 
Aula 7 - Modelos de Ciclo de Vida.pptx
Aula 7 - Modelos de Ciclo de Vida.pptxAula 7 - Modelos de Ciclo de Vida.pptx
Aula 7 - Modelos de Ciclo de Vida.pptxALEXANDRELISBADASILV
 
Engenharia de-software-1217199594686494-9
Engenharia de-software-1217199594686494-9Engenharia de-software-1217199594686494-9
Engenharia de-software-1217199594686494-9wilsonguns
 
O_Ciclo_de_Vida_do_Desenvolvimento_de_Sistemas.pdf
O_Ciclo_de_Vida_do_Desenvolvimento_de_Sistemas.pdfO_Ciclo_de_Vida_do_Desenvolvimento_de_Sistemas.pdf
O_Ciclo_de_Vida_do_Desenvolvimento_de_Sistemas.pdfAthena542429
 
Aula - Modelos de Processos de Desenvolvimento de Software / Mobile App
Aula - Modelos de Processos de Desenvolvimento de Software / Mobile AppAula - Modelos de Processos de Desenvolvimento de Software / Mobile App
Aula - Modelos de Processos de Desenvolvimento de Software / Mobile AppCloves da Rocha
 
Desenvolvimento ágil de software: análise sintética a partir de KANBAN
Desenvolvimento ágil de software: análise sintética a partir de KANBANDesenvolvimento ágil de software: análise sintética a partir de KANBAN
Desenvolvimento ágil de software: análise sintética a partir de KANBANFernando Palma
 
Aula Modelos de Processos Tradicionais para Desenvolvimento de Software
Aula Modelos de Processos Tradicionais para Desenvolvimento de Software Aula Modelos de Processos Tradicionais para Desenvolvimento de Software
Aula Modelos de Processos Tradicionais para Desenvolvimento de Software Cloves da Rocha
 
FES_SENAIPR_Processos.pdf
FES_SENAIPR_Processos.pdfFES_SENAIPR_Processos.pdf
FES_SENAIPR_Processos.pdfFChico2
 
Aula 2 modelo de processo de software1
Aula 2   modelo de processo de software1Aula 2   modelo de processo de software1
Aula 2 modelo de processo de software1Tiago Vizoto
 
Aula 03 de engenharia de software uespi 2011-1
Aula 03 de engenharia de software uespi 2011-1Aula 03 de engenharia de software uespi 2011-1
Aula 03 de engenharia de software uespi 2011-1Erivelton Silva Rocha
 
Metodologia de Desenvolvimento de Softwares
Metodologia de Desenvolvimento de SoftwaresMetodologia de Desenvolvimento de Softwares
Metodologia de Desenvolvimento de SoftwaresAragon Vieira
 
Aula 01 e 02 - Engenharia de Software.pdf
Aula 01 e 02 - Engenharia de Software.pdfAula 01 e 02 - Engenharia de Software.pdf
Aula 01 e 02 - Engenharia de Software.pdfJadna Almeida
 
Apresentação estrela vs cmmi nivel 2
Apresentação estrela vs cmmi nivel 2Apresentação estrela vs cmmi nivel 2
Apresentação estrela vs cmmi nivel 2Fernando Vargas
 

Semelhante a Modelo Cascata de Engenharia de Programação (20)

Modelo cascata apresentação
Modelo cascata apresentaçãoModelo cascata apresentação
Modelo cascata apresentação
 
Engenharia De Software
Engenharia De SoftwareEngenharia De Software
Engenharia De Software
 
vantagens e desvantagens do ciclo de vida de software
vantagens e desvantagens do ciclo de vida de softwarevantagens e desvantagens do ciclo de vida de software
vantagens e desvantagens do ciclo de vida de software
 
Aula 7 - Modelos de Ciclo de Vida.pptx
Aula 7 - Modelos de Ciclo de Vida.pptxAula 7 - Modelos de Ciclo de Vida.pptx
Aula 7 - Modelos de Ciclo de Vida.pptx
 
Analise aula2
Analise aula2Analise aula2
Analise aula2
 
IBM Rational Unified Process
IBM Rational Unified ProcessIBM Rational Unified Process
IBM Rational Unified Process
 
Engenharia de-software-1217199594686494-9
Engenharia de-software-1217199594686494-9Engenharia de-software-1217199594686494-9
Engenharia de-software-1217199594686494-9
 
O_Ciclo_de_Vida_do_Desenvolvimento_de_Sistemas.pdf
O_Ciclo_de_Vida_do_Desenvolvimento_de_Sistemas.pdfO_Ciclo_de_Vida_do_Desenvolvimento_de_Sistemas.pdf
O_Ciclo_de_Vida_do_Desenvolvimento_de_Sistemas.pdf
 
Rational Unified Process (RUP)
Rational Unified Process (RUP)Rational Unified Process (RUP)
Rational Unified Process (RUP)
 
Aula - Modelos de Processos de Desenvolvimento de Software / Mobile App
Aula - Modelos de Processos de Desenvolvimento de Software / Mobile AppAula - Modelos de Processos de Desenvolvimento de Software / Mobile App
Aula - Modelos de Processos de Desenvolvimento de Software / Mobile App
 
Desenvolvimento ágil de software: análise sintética a partir de KANBAN
Desenvolvimento ágil de software: análise sintética a partir de KANBANDesenvolvimento ágil de software: análise sintética a partir de KANBAN
Desenvolvimento ágil de software: análise sintética a partir de KANBAN
 
ES4.ppt
ES4.pptES4.ppt
ES4.ppt
 
Aula Modelos de Processos Tradicionais para Desenvolvimento de Software
Aula Modelos de Processos Tradicionais para Desenvolvimento de Software Aula Modelos de Processos Tradicionais para Desenvolvimento de Software
Aula Modelos de Processos Tradicionais para Desenvolvimento de Software
 
FES_SENAIPR_Processos.pdf
FES_SENAIPR_Processos.pdfFES_SENAIPR_Processos.pdf
FES_SENAIPR_Processos.pdf
 
Analise sistemas 05
Analise sistemas 05Analise sistemas 05
Analise sistemas 05
 
Aula 2 modelo de processo de software1
Aula 2   modelo de processo de software1Aula 2   modelo de processo de software1
Aula 2 modelo de processo de software1
 
Aula 03 de engenharia de software uespi 2011-1
Aula 03 de engenharia de software uespi 2011-1Aula 03 de engenharia de software uespi 2011-1
Aula 03 de engenharia de software uespi 2011-1
 
Metodologia de Desenvolvimento de Softwares
Metodologia de Desenvolvimento de SoftwaresMetodologia de Desenvolvimento de Softwares
Metodologia de Desenvolvimento de Softwares
 
Aula 01 e 02 - Engenharia de Software.pdf
Aula 01 e 02 - Engenharia de Software.pdfAula 01 e 02 - Engenharia de Software.pdf
Aula 01 e 02 - Engenharia de Software.pdf
 
Apresentação estrela vs cmmi nivel 2
Apresentação estrela vs cmmi nivel 2Apresentação estrela vs cmmi nivel 2
Apresentação estrela vs cmmi nivel 2
 

Modelo Cascata de Engenharia de Programação

  • 1. Engenharia de Programação Modelo Cascata ou Clássico INTRODUÇÃO O modelo clássico ou cascata, que também é conhecido por abordagem “top-down”, foi proposto por Royce em 1970. Até meados da década de 1980 foi o único modelo com aceitação geral. Esse modelo foi derivado de modelos de actividade de engenharia com o fim de estabelecer ordem no desenvolvimento de grandes produtos de software. Comparado com outros modelos de desenvolvimento de software, este é mais rígido e menos administrativo. O modelo cascata é um dos mais importantes modelos, e é referência para muitos outros modelos, servindo de base para muitos projectos modernos. A versão original deste modelo foi melhorada e retocada ao longo do tempo e continua sendo muito utilizado hoje em dia. Grande parte do sucesso do modelo cascata está no facto dele ser orientado para documentação. No entanto deve salientar-se que a documentação abrange mais do que arquivo de texto, abrange representações gráficas ou mesmo simulação. Uma abordagem incorporando processos, métodos e ferramentas deve ser utilizada pelos criadores de software. Esta abordagem é muitas vezes designada de Abordagem do Processo de Desenvolvimento. Existem três abordagens de modelos de processo de desenvolvimento de software. Elas tentem colocar ordem numa actividade inerentemente caótica. Uma vez definido o modelo de ciclo de desenvolvimento, existem três abordagens para implementá-lo: Cascata pura; 1
  • 2. Engenharia de Programação Incremental; Evolucionária. Toda esta secção constitui uma interpretação do disposto na referência [FAI96]. Descrição do modelo O modelo Cascata é um modelo de engenharia projectado para ser aplicado no desenvolvimento do software. A ideia principal que o dirige é que as diferentes etapas de desenvolvimento seguem uma sequência: 2
  • 3. Engenharia de Programação a saída da primeira etapa “fluí” para a segunda etapa e a saída da segunda etapa “fluí” para a terceira e assim por diante. As actividades a executar são agrupadas em tarefas, executadas sequencialmente, de forma que uma tarefa só poderá ter início quando a anterior tiver terminado. O modelo em cascata tem a vantagem que só avança para a tarefa seguinte quando o cliente valida e aceita os produtos finais da tarefa actual. O modelo pressupõe que o cliente participa activamente no projecto e que sabe muito bem o que quer. Este modelo minimiza o impacto da compreensão adquirida no decurso de um projecto, uma vez que se um processo não pode voltar atrás de modo a alterar os modelos e as conclusões das tarefas anteriores, é normal que as novas ideias sobre o sistema não sejam aproveitadas. Numa tentativa de resolver este tipo de problema foi definido um novo tipo de processo baseado no clássico em cascata, designado por modelo em cascata revisto, cuja principal diferença consiste em prever a possibilidade de a partir de qualquer tarefa do ciclo se poder regressar a uma tarefa anterior de forma a contemplar alterações funcionais e/ou técnicas que entretanto tenham surgido, em virtude de um maior conhecimento que entretanto se tenha obtido. O risco desta abordagem é que, na ausência de um processo de gestão do projecto e de controlo das alterações bem definido, podemos passar o tempo num ciclo infinito, sem nunca se atingir o objectivo final, ou seja disponibilizar o sistema a funcionar. 3
  • 4. Engenharia de Programação As Diferentes Etapas de Desenvolvimento Análise e definição dos requisitos Nesta etapa, estabelecem-se os requisitos do produto que se deseja desenvolver, o que consiste usualmente nos serviços que se devem fornecer, limitações e objetivos do software. Sendo isso estabelecido, os requisitos devem ser definidos de uma maneira apropriada para que sejam úteis na etapa seguinte. Esta etapa inclui também a documentação e o estudo da facilidade e da viabilidade do projecto com o fim de determinar o processo de início de desenvolvimento do projecto do sistema; pode ser vista como uma concepção de um produto de software e também como o início do seu ciclo de vida. Projecto do sistema 4
  • 5. Engenharia de Programação O projecto do sistema é um processo de vários passos que se centraliza em quatro atributos diferentes do sistema: estrutura de dados, arquitectura do software, detalhes procedais e caracterização das interfaces. O processo de projecto representa os requisitos de uma forma que permita a codificação do produto (é uma prévia etapa de codificação). Da mesma maneira que a análise dos requisitos, o projecto é documentado e transforma-se em uma parte do software. Implementação Esta é a etapa em que são criados os programas. Se o projecto possui um nível de detalhe elevado, a etapa de codificação pode implementar-se automaticamente. A princípio, sugere-se incluir um teste unitário dos módulos nesta etapa; nesse caso, as unidades de código produzidas são testadas individualmente antes de passar a etapa de integração e teste global. Teste do sistema Concluída a codificação, começa a fase de teste do sistema. O processo de teste centraliza-se em dois pontos principais: as lógicas internas do software e as funcionalidades externas. Esta fase decide se foram solucionados erros de “comportamento” do software e assegura que as entradas definidas produzam resultados reais que coincidam com os requisitos especificados. Manutenção Essa etapa consiste na correcção de erros que não foram previamente detectados, em melhorias funcionais e de preferência e outros tipos de suporte. A etapa de manutenção à parte do ciclo de vida do produto de software e não pertence estritamente ao seu desenvolvimento. 5
  • 6. Engenharia de Programação Melhorias e correcções podem ser consideradas como parte do desenvolvimento. As etapas descritas são as principais, porém existem sub-etapas dentro de cada etapa, as quais diferem muito de um projecto para outro. Também é possível que certos projectos de software exijam a incorporação de uma etapa extra ou a separação de uma etapa em outras etapas. Com certeza, todas essas variações do modelo Cascata possuem o mesmo conceito básico: a ideia de que uma etapa fornece saída que serão usadas como entradas para a etapa seguinte. Portanto, o processo de desenvolvimento de um produto de software de acordo com o modelo Cascata é simples de conhecer e controlar. Outras actividades que também são levadas em consideração em cada uma das etapas de desenvolvimento do software: a documentação, a verificação e a administração das etapas serem documentos. A verificação, por sua vez, é necessária para que uma etapa forneça os dados correctos para a etapa seguinte. Já a administração, efectua a gestão e o controle da etapa. 6
  • 7. Engenharia de Programação Problemas O ciclo de vida Cascata é o paradigma mais visto e mais amplamente empregue na engenharia de software, porém sua aplicabilidade, em muitos campos, tem sido questionada. Entre os problemas que surgem quando se aplica o modelo são: · Na realidade, os projectos raramente seguem o fluxo sequencial que o modelo propõe. A interacção é sempre necessária e está presente, criando problemas na aplicação do modelo; · Em princípio, é difícil para o cliente especificar os requisitos explicitamente, o que acarreta a incerteza natural do início de qualquer projecto; · O cliente deve ser paciente, pois uma versão funcional não estará disponível até o final do desenvolvimento. Qualquer erro ou mal- entendido, se não for detectado até que o software seja revisado, pode ser desastroso. Apesar desses problemas, o modelo Cascata tem um lugar bem definido e importante nos trabalhos de engenharia de software. Ele fornece um padrão do qual se encaixam métodos para a análise, projecto, codificação e manutenção. Domínio de aplicações O modelo Cascata aplica-se bem em situações em que o software a ser desenvolvido é simples, os requisitos são bem conhecidos, a tecnologia 7
  • 8. Engenharia de Programação usada é bem acessível e os recursos para o desenvolvimento estão disponíveis. CONCLUSÃO Vantagens do modelo ∙ Torna o processo de desenvolvimento estruturado. Tem uma ordem sequencial de fases. Cada fase cai em cascata na próxima e cada fase deve estar terminada antes do início da seguinte; ∙ Todas as actividades identificadas nas fases do modelo são fundamentais e estão na ordem certa; ∙ Esta abordagem é actualmente a norma e provavelmente permanecerá como tal nos próximos tempos. Desvantagens do modelo ∙ Não fornece feedback entre as fases e não permite a actualização ou redefinição das fases anteriores; ∙ Não suporta modificações nos requisitos; ∙Não prevê a manutenção; ∙Não permite a reutilização; ∙É excessivamente sincronizado; ∙Se ocorrer um atraso todo o processo é afectado; ∙ Faz aparecer o software muito tarde. 8
  • 9. Engenharia de Programação ∙O modelo conduz a uma rígida divisão de trabalho (analistas, arquitectos, programadores, controladores de qualidade, programadores de manutenção); ∙Só o chefe do projecto tem uma visão global do problema; ∙Quando algo corre mal, a culpa é dos outros... Ninguém se sente realmente responsável. 9