SlideShare uma empresa Scribd logo
Engenharia de Software
Unidade II – Processos de Software

Objetivo: Apresentar os principais paradigmas e modelos
de processos de software, demonstrando o ciclo de vida do
desenvolvimento de software e enfatizando os processos
de especificação de requisitos, projeto, implementação,
testes e mudanças
                                 Prof. Nécio de Lima Veras
Processos de Desenvolvimento de
Software
 Vimos anteriormente que os processos definem uma
  estrutura, que consiste em áreas de processos chave.
 Percebemos também que Sommerville subdivide em quatro
  atividades básicas:
    Especificação;
    Desenvolvimento;
    Validação; e
    Evolução.

 Partindo disso, muitos modelos já foram
  propostos...
Roteiro...
 Então para esta aula, veremos:
   Definições de processos e modelos de
    processos de software;
   Alguns modelos existentes:
         Cascata;
         Evolucionário;
         Desenvolvimento incremental;
         Espiral; e
         Prototipação.
Definições
 Processo de software:
     “É uma seqüência coerente de práticas que objetiva o
      desenvolvimento ou evolução de sistemas de
      software. Estas práticas englobam as atividades de
      especificação, projeto, implementação, testes e
      caracterizam-se pela interação de ferramentas,
      pessoas e métodos”.
 Modelo de processo de software:
     “Um modelo de processo de software é uma
      representação abstrata de um processo. Ele
      apresenta uma descrição de um processo a partir de
      uma perspectiva específica”.
O Modelo em Cascata
 Primeiro modelo publicado do processo de
  desenvolvimento de software;
 Originou-se de outros processos de
  engenharia;
 Retrata um desenvolvimento gradual e possui
  seqüência de passos em ordem que devem
  ser seguidos.
 Pode consumir um
  tempo estimado entre
  seis e dezoito meses;
O Modelo em Cascata:
Principais Estágios
   Análise e Definição de
    Requisitos: as funções, as
    restrições e os objetivos do
    sistema são estabelecidos
    por meio de consulta aos
    usuários do sistema. Em
    seguida, são definidos em
    detalhes e servem como
    uma especificação do
    sistema.
O Modelo em Cascata:
Principais Estágios
   Projeto de Sistemas e
    Software: o processo de
    projeto de sistemas agrupa
    os requisitos em sistemas
    de hardware e software.
    Envolve a identificação e a
    descrição das abstrações
    fundamentais do sistema de
    software e suas relações.
O Modelo em Cascata:
Principais Estágios
   Implementação e Testes de
    Unidade: Durante este
    estágio, o projeto do
    software é compreendido
    como um conjunto de
    programas ou unidades de
    programa. O teste de
    unidade envolve verificar se
    cada uma das unidades
    atendem à sua
    especificação.
O Modelo em Cascata:
Principais Estágios
   Integração e Teste de
    sistemas: as unidades de
    programa ou programas
    individuais são integrados e
    testados como um sistema
    completo a fim de garantir
    que os requisitos de
    software foram atendidos.
    Depois do teste, o software
    é entregue ao cliente.
O Modelo em Cascata:
Principais Estágios
   Operação e manutenção: O
    sistema é instalado e
    colocado em operação.
    Envolve corrigir erros que
    não foram descobertos em
    estágios anteriores,
    melhorando a implemen-
    tação e descobrindo novos
    requisitos
O Modelo em Cascata: Problemas
 Particionamento inflexível do projeto em
  fases distintas;
 Isso torna difícil responder a requisitos do
  usuário que mudam;
 Portanto, esse modelo é apropriado somente
  quando os requisitos são bem
  compreendidos;
O modelo Evolucionário
 Tem com base a ideia de desenvolver uma implementação
  inicial, expor o resultado ao comentário do usuário e fazer
  seu aprimoramento por meio de muitas versões, até que
  tenha sido desenvolvido;
 A especificação, desenvolvimento e validação são
  executados concorrentemente para gerar um retorno
  rápido;
O modelo Evolucionário
 Pode ser:
   Exploratório: tem como objetivo trabalhar
    com o cliente a fim de explorar seus requisitos
    e entregar um sistema final. São feitas partes
    inicias e acrescentadas novas de acordo com
    o desenvolvimento.
   Protótipos descartáveis: tenta compreender
    os melhor os requisitos a partir de protótipos e
    então desenvolver uma especificação de
    requisitos completa.
O modelo Evolucionário
 Problemas:
   O processo não é visível: como o sistema é
    desenvolvido rapidamente, não há tempo de
    documentar as versões;
   Os sistemas são mal-estruturados: mudanças
    constantes podem corromper a estrutura do
    software;
   Requer ferramentas e técnicas especiais: que
    nem sempre são disponíveis ou são
    aplicáveis ao caso.
O modelo Evolucionário
 Aplicabilidade:
   Para sistemas interativos pequenos ou de
    médio porte
   Para partes de sistemas grandes (p.ex., a
    interface com o usuário)
   Para sistemas de vida curta.
O modelo Desenvolvimento
Incremental
 É uma variação do modelo Cascata;
O modelo Desenvolvimento
Incremental
 A ideia é alargar pouco-a-pouco;
 Analogia à construção de uma mansão;
O modelo Desenvolvimento
Incremental
 Vantagens:
      Redução dos riscos envolvendo custos a um único incremento.
      Redução do risco de lançar o projeto no mercado fora da data
       planejada. Identificando os riscos numa fase inicial o esforço
       despendido para gerenciá-los ocorre cedo, quando as pessoas
       estão sob menos pressão do que numa fase final de projeto.
      Aceleração do tempo de desenvolvimento do projeto como um
       todo, porque os desenvolvedores trabalham de maneira mais
       eficiente quando buscam resultados de escopo pequeno e claro.
      Reconhecimento de uma realidade freqüentemente ignorada: as
       necessidades dos usuários e os requisitos correspondentes não
       podem ser totalmente definidos no início do processo.
      Este modelo de operação facilita a adaptação a mudanças de
       requisitos.
O modelo Desenvolvimento
Incremental
 Desvantagens:
      Dificuldade de gerenciamento. Isso ocorre porque as fases de do
       ciclo podem estar ocorrendo de forma simultânea.
      O usuário pode se entusiasmar excessivamente com a primeira
       versão do sistema e pensar que tal versão já corresponde ao
       sistema como um todo.
      Como todo modelo esta sujeito a riscos de projeto:
           O projeto pode não satisfazer aos requisitos do usuário.
           A verba do projeto pode acabar.
           O sistema de software pode não ser adaptável, manutenível ou
            extensível.
           O sistema de software pode ser entregue ao usuário tarde
            demais.
O modelo Espiral
 O processo é representado como uma espiral, em vez de
  uma seqüência de atividades com caminhos de retorno
 Cada volta na espiral representa uma fase no processo
 Não há fases fixas, tais como especificação ou projeto
      As voltas na espiral são escolhidas dependendo do que for
       exigido
 Os riscos são explicitamente avaliados e resolvidos
  durante todo o processo
 Para cada iteração temos:
      Envolvimento do cliente;
      Seis e vinte e quatro meses de duração
       (presumidamente);
      Prazo suficiente para que o cliente tenha um brainstorm;
O modelo Espiral
O modelo Espiral: Setores
 Definição do objetivo
     Identificam-se os objetivos específicos da fase
 Avaliação e redução de risco
     Os riscos são avaliados e são adotadas as atividades para
      reduzir os ricos principais
 Desenvolvimento e avaliação
     É escolhido um modelo de desenvolvimento para o
      sistema, que pode ser qualquer um dos modelos
      genéricos
 Planejamento
     O projeto é revisado e a próxima fase da espiral é
      planejada
O modelo Prototipação
 Busca, principalmente, velocidade no
  desenvolvimento;
 O cliente “enxerga” telas e relatórios resultantes do
  software, com os quais ele terá alguma pequena
  interação.
 O usuário deve ser envolvido para opinar sobre as
  telas e relatórios do software, de maneira que se
  consiga torná-lo quase que co-autor do
  desenvolvimento responsabilizando-o também, desta
  forma, pelo sucesso final do software, uma vez que
  terá tido participação ativa na montagem do mesmo.
O modelo Prototipação

   Análise de   Desenvolvimento
                                  Experimentação
   Requisitos     de Protótipo



                   Revisão



                                  Codificação e
                 Detalhamento
                                     Testes



  Manutenção      Implantação
O modelo Prototipação
 Perigos:
   Cliente “empolgar-se”;
   Pressão a fim de que concessões de
    implementações ocorram para a urgência da
    implantação, sugerindo-se que o protótipo
    seja evoluído e entre rapidamente em
    funcionamento.
Interseção entre os modelo?
 Longo período de tempo para o desenvolvimento;
 Volume muito grande de documentação e planejamento;
 Fases maiores ainda => Big Design Up Front (BDUF);
 Um software BDUF implica em:
      O planejamento é completado e aperfeiçoado antes
       mesmo de iniciar a codificação, o que praticamente
       inviabiliza uma mudança brusca de escopo [Fox e
       Patterson 2012].
 E agora, para onde vamos?
Agilidade
 Um grupo em fevereiro de 2001, chamado de Agile Alliance,
  começou a descobrir maneiras melhores e mais leves de
  desenvolver software valorizando:
      pessoas e interações ao invés de processos e ferramentas;
      softwares funcionando no lugar de documentações
       abrangentes;
      colaborações com clientes do que negociações de contratos
       e respostas à mudanças por planos fechados.
 Esses valores originaram o   Manifesto Ágil com outros
  DOZE princípios que regem a filosofia de criar softwares com
  agilidade [BECK, 2001]
Agilidade
 O modelo é baseado em    mudanças
  abrangentes;
 O desenvolvedor deve melhorar    continuamente
  um protótipo incompleto até que o cliente fique feliz com
  o resultado;
 Algumas práticas são enfatizadas:
   Test-Driven Development (TDD);
   User Stories; e
   Velocity.
Contraste com os outros
modelos

É tão rápido que novas versões são
disponibilizadas ao cliente a cada duas
semanas e novos recursos são adicionados
continuamente ao mesmo protótipo até que o
cliente esteja satisfeito [Fox e Patterson 2012].
Exercícios
Referências
 Beck, K., et al. (2001). "Manifesto for Agile Software
  Development". Agile Alliance. http://agilemanifesto.org/.
  Acessado em 18 de agosto de 2012.
 Fox, A., Patterson, D. (2012). “Engineering Long-Lasting
  Software: An Agile Approach Using SaaS and Cloud
  Computing”, Alpha Edition. Strawberry Canyon LLC, 2012.
 Pressman, R. S. (2005). “Software engineering: a
  practitioner‟s approach”, 6 ed. New York:
  MacGraw-Hill, 2005.

Mais conteúdo relacionado

Mais procurados

Aula - Metodologias Ágeis
Aula - Metodologias ÁgeisAula - Metodologias Ágeis
Aula - Metodologias Ágeis
Mauricio Cesar Santos da Purificação
 
Analise de Requisitos
Analise de RequisitosAnalise de Requisitos
Analise de Requisitos
elliando dias
 
Extreme programming (xp)
 Extreme programming   (xp) Extreme programming   (xp)
Extreme programming (xp)
João Carlos Ottobboni
 
Modelos de processos de software
Modelos de processos de softwareModelos de processos de software
Modelos de processos de software
Nécio de Lima Veras
 
Modelos de Processo de Software Parte 3
Modelos de Processo de Software Parte 3Modelos de Processo de Software Parte 3
Modelos de Processo de Software Parte 3
Elaine Cecília Gatto
 
Gestão de Configuração (CM)
Gestão de Configuração (CM)Gestão de Configuração (CM)
Gestão de Configuração (CM)
Mário Pravato Junior
 
Metodologia Ágil
Metodologia ÁgilMetodologia Ágil
Metodologia Ágil
Elaine Cecília Gatto
 
Aula UML - Unified Modeling Language
Aula UML - Unified Modeling LanguageAula UML - Unified Modeling Language
Aula UML - Unified Modeling Language
Cloves da Rocha
 
Aula 2 - Modelos de processos
Aula 2 -  Modelos de processosAula 2 -  Modelos de processos
Aula 2 - Modelos de processos
Leinylson Fontinele
 
Gerência de Configuração
Gerência de ConfiguraçãoGerência de Configuração
Gerência de Configuração
Wagner Zaparoli
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
Aricelio Souza
 
Teste de software - aula 01 (motivação)
Teste de software - aula 01 (motivação)Teste de software - aula 01 (motivação)
Teste de software - aula 01 (motivação)
Elmano Cavalcanti
 
Especificação de Requisitos de Software
Especificação de Requisitos de SoftwareEspecificação de Requisitos de Software
Especificação de Requisitos de Software
Ralph Rassweiler
 
Aps lista de exercícios
Aps lista de exercíciosAps lista de exercícios
Aps lista de exercícios
Guilherme
 
Gestão de Projetos e Ferramentas
Gestão de Projetos e FerramentasGestão de Projetos e Ferramentas
Gestão de Projetos e Ferramentas
Nei Grando
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
eros.viggiano
 
Projeto de Software
Projeto de SoftwareProjeto de Software
Projeto de Software
Wagner Zaparoli
 
Aula 2 - Processos de Software
Aula 2 - Processos de SoftwareAula 2 - Processos de Software
Aula 2 - Processos de Software
Rudson Kiyoshi Souza Carvalho
 
Levantamento Ágil de Requisitos
Levantamento Ágil de RequisitosLevantamento Ágil de Requisitos
Levantamento Ágil de Requisitos
Paulo Furtado
 
Aula3 engenharia requisitos
Aula3 engenharia requisitosAula3 engenharia requisitos
Aula3 engenharia requisitos
Computação Depressão
 

Mais procurados (20)

Aula - Metodologias Ágeis
Aula - Metodologias ÁgeisAula - Metodologias Ágeis
Aula - Metodologias Ágeis
 
Analise de Requisitos
Analise de RequisitosAnalise de Requisitos
Analise de Requisitos
 
Extreme programming (xp)
 Extreme programming   (xp) Extreme programming   (xp)
Extreme programming (xp)
 
Modelos de processos de software
Modelos de processos de softwareModelos de processos de software
Modelos de processos de software
 
Modelos de Processo de Software Parte 3
Modelos de Processo de Software Parte 3Modelos de Processo de Software Parte 3
Modelos de Processo de Software Parte 3
 
Gestão de Configuração (CM)
Gestão de Configuração (CM)Gestão de Configuração (CM)
Gestão de Configuração (CM)
 
Metodologia Ágil
Metodologia ÁgilMetodologia Ágil
Metodologia Ágil
 
Aula UML - Unified Modeling Language
Aula UML - Unified Modeling LanguageAula UML - Unified Modeling Language
Aula UML - Unified Modeling Language
 
Aula 2 - Modelos de processos
Aula 2 -  Modelos de processosAula 2 -  Modelos de processos
Aula 2 - Modelos de processos
 
Gerência de Configuração
Gerência de ConfiguraçãoGerência de Configuração
Gerência de Configuração
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Teste de software - aula 01 (motivação)
Teste de software - aula 01 (motivação)Teste de software - aula 01 (motivação)
Teste de software - aula 01 (motivação)
 
Especificação de Requisitos de Software
Especificação de Requisitos de SoftwareEspecificação de Requisitos de Software
Especificação de Requisitos de Software
 
Aps lista de exercícios
Aps lista de exercíciosAps lista de exercícios
Aps lista de exercícios
 
Gestão de Projetos e Ferramentas
Gestão de Projetos e FerramentasGestão de Projetos e Ferramentas
Gestão de Projetos e Ferramentas
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Projeto de Software
Projeto de SoftwareProjeto de Software
Projeto de Software
 
Aula 2 - Processos de Software
Aula 2 - Processos de SoftwareAula 2 - Processos de Software
Aula 2 - Processos de Software
 
Levantamento Ágil de Requisitos
Levantamento Ágil de RequisitosLevantamento Ágil de Requisitos
Levantamento Ágil de Requisitos
 
Aula3 engenharia requisitos
Aula3 engenharia requisitosAula3 engenharia requisitos
Aula3 engenharia requisitos
 

Destaque

Engenharia de software
Engenharia de softwareEngenharia de software
Engenharia de software
Claudete Florencio
 
Prototipação
PrototipaçãoPrototipação
Prototipação
Daniel Fernandes
 
Simpósio Unicruz: OpenCV + Python (parte 1)
Simpósio Unicruz: OpenCV + Python (parte 1)Simpósio Unicruz: OpenCV + Python (parte 1)
Simpósio Unicruz: OpenCV + Python (parte 1)
Cristiano Rafael Steffens
 
Prototipagem
PrototipagemPrototipagem
Prototipagem
jwainer
 
Prototipação de software
Prototipação de softwarePrototipação de software
Prototipação de software
leopp
 
Modelo Espiral
Modelo EspiralModelo Espiral
Modelo Espiral
modeloespiral
 
Modelos de Processo de Software
Modelos de Processo de SoftwareModelos de Processo de Software
Modelos de Processo de Software
Rogerio P C do Nascimento
 
Modelo espiral expo
Modelo espiral expoModelo espiral expo
Modelo espiral expo
Polo Fernando Paredes Rodriguez
 
Processo Unificado(RUP)
Processo Unificado(RUP)Processo Unificado(RUP)
Processo Unificado(RUP)
elliando dias
 
Rational Unified Process (RUP)
Rational Unified Process (RUP)Rational Unified Process (RUP)
Rational Unified Process (RUP)
Carlos Henrique Martins da Silva
 
Modelo de Prototipação
Modelo de PrototipaçãoModelo de Prototipação
Modelo de Prototipação
Juliano Pires
 
Introdução ao RUP
Introdução ao RUPIntrodução ao RUP
Introdução ao RUP
Igor Takenami
 
Plano De NegóCios Estrutura Passo A Passo
Plano De NegóCios   Estrutura Passo A PassoPlano De NegóCios   Estrutura Passo A Passo
Plano De NegóCios Estrutura Passo A Passo
Prefeitura Municipal de Uberlândia
 
Porque devo usar Scrum em meus projetos
Porque devo usar Scrum em meus projetosPorque devo usar Scrum em meus projetos
Porque devo usar Scrum em meus projetos
Eamon Sousa, PMP
 
Engenharia de software
Engenharia de softwareEngenharia de software
Engenharia de software
Tiago Pinhão
 
4.2 modelo de espiral
4.2 modelo de espiral4.2 modelo de espiral
4.2 modelo de espiral
jcezarv
 
Modelo Espiral
Modelo EspiralModelo Espiral
Modelo Espiral
Daniela Salazar Garzón
 
Modelo espiral
Modelo espiralModelo espiral
Modelo espiral
00ordnajela00
 
Eclesiologia - Desenvolvimento Natural Da Igreja - Blog do Prof. Eduardo Sales
Eclesiologia - Desenvolvimento  Natural Da  Igreja - Blog do Prof. Eduardo SalesEclesiologia - Desenvolvimento  Natural Da  Igreja - Blog do Prof. Eduardo Sales
Eclesiologia - Desenvolvimento Natural Da Igreja - Blog do Prof. Eduardo Sales
Eduardo Sales de lima
 
Cartilha do Empreendedor
Cartilha do EmpreendedorCartilha do Empreendedor
Cartilha do Empreendedor
raiobrasil
 

Destaque (20)

Engenharia de software
Engenharia de softwareEngenharia de software
Engenharia de software
 
Prototipação
PrototipaçãoPrototipação
Prototipação
 
Simpósio Unicruz: OpenCV + Python (parte 1)
Simpósio Unicruz: OpenCV + Python (parte 1)Simpósio Unicruz: OpenCV + Python (parte 1)
Simpósio Unicruz: OpenCV + Python (parte 1)
 
Prototipagem
PrototipagemPrototipagem
Prototipagem
 
Prototipação de software
Prototipação de softwarePrototipação de software
Prototipação de software
 
Modelo Espiral
Modelo EspiralModelo Espiral
Modelo Espiral
 
Modelos de Processo de Software
Modelos de Processo de SoftwareModelos de Processo de Software
Modelos de Processo de Software
 
Modelo espiral expo
Modelo espiral expoModelo espiral expo
Modelo espiral expo
 
Processo Unificado(RUP)
Processo Unificado(RUP)Processo Unificado(RUP)
Processo Unificado(RUP)
 
Rational Unified Process (RUP)
Rational Unified Process (RUP)Rational Unified Process (RUP)
Rational Unified Process (RUP)
 
Modelo de Prototipação
Modelo de PrototipaçãoModelo de Prototipação
Modelo de Prototipação
 
Introdução ao RUP
Introdução ao RUPIntrodução ao RUP
Introdução ao RUP
 
Plano De NegóCios Estrutura Passo A Passo
Plano De NegóCios   Estrutura Passo A PassoPlano De NegóCios   Estrutura Passo A Passo
Plano De NegóCios Estrutura Passo A Passo
 
Porque devo usar Scrum em meus projetos
Porque devo usar Scrum em meus projetosPorque devo usar Scrum em meus projetos
Porque devo usar Scrum em meus projetos
 
Engenharia de software
Engenharia de softwareEngenharia de software
Engenharia de software
 
4.2 modelo de espiral
4.2 modelo de espiral4.2 modelo de espiral
4.2 modelo de espiral
 
Modelo Espiral
Modelo EspiralModelo Espiral
Modelo Espiral
 
Modelo espiral
Modelo espiralModelo espiral
Modelo espiral
 
Eclesiologia - Desenvolvimento Natural Da Igreja - Blog do Prof. Eduardo Sales
Eclesiologia - Desenvolvimento  Natural Da  Igreja - Blog do Prof. Eduardo SalesEclesiologia - Desenvolvimento  Natural Da  Igreja - Blog do Prof. Eduardo Sales
Eclesiologia - Desenvolvimento Natural Da Igreja - Blog do Prof. Eduardo Sales
 
Cartilha do Empreendedor
Cartilha do EmpreendedorCartilha do Empreendedor
Cartilha do Empreendedor
 

Semelhante a Modelos de processos 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
ALEXANDRELISBADASILV
 
Ciclo de vida de software
Ciclo de vida de softwareCiclo de vida de software
Ciclo de vida de software
diha36
 
Ciclo de vida de software
Ciclo de vida de softwareCiclo de vida de software
Ciclo de vida de software
diha36
 
T1 g13.modelo cascata
T1 g13.modelo cascataT1 g13.modelo cascata
T1 g13.modelo cascata
wilsonguns
 
Processos de software
Processos de softwareProcessos de software
Processos de software
Computação Depressão
 
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
Cris Fidelix
 
Modelo cascata apresentação
Modelo cascata apresentaçãoModelo cascata apresentação
Modelo cascata apresentação
erysonsi
 
Modelo cascata apresentação
Modelo cascata apresentaçãoModelo cascata apresentação
Modelo cascata apresentação
erysonsi
 
Modelo cascata apresentação
Modelo cascata apresentaçãoModelo cascata apresentação
Modelo cascata apresentação
erysonsi
 
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
Athena542429
 
Modelo cascata
Modelo cascataModelo cascata
Modelo cascata
Priscila Comparsi
 
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
Fernando Palma
 
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
Jadna Almeida
 
38484931 questionario-es
38484931 questionario-es38484931 questionario-es
38484931 questionario-es
Concurseiro Área de TI
 
Processo de software individual
Processo de software individualProcesso de software individual
Processo de software individual
Adivaldo_badinho
 
Aula2 processos sw
Aula2 processos swAula2 processos sw
Aula2 processos sw
Computação Depressão
 
Engenharia de-software-1217199594686494-9
Engenharia de-software-1217199594686494-9Engenharia de-software-1217199594686494-9
Engenharia de-software-1217199594686494-9
wilsonguns
 
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
Felipe Oliveira
 
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
Tiago Vizoto
 
Este trabalho trata
Este trabalho trataEste trabalho trata
Este trabalho trata
Roni Reis
 

Semelhante a Modelos de processos de software (20)

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
 
Ciclo de vida de software
Ciclo de vida de softwareCiclo de vida de software
Ciclo de vida de software
 
Ciclo de vida de software
Ciclo de vida de softwareCiclo de vida de software
Ciclo de vida de software
 
T1 g13.modelo cascata
T1 g13.modelo cascataT1 g13.modelo cascata
T1 g13.modelo cascata
 
Processos de software
Processos de softwareProcessos de software
Processos 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
 
Modelo cascata apresentação
Modelo cascata apresentaçãoModelo cascata apresentação
Modelo cascata apresentação
 
Modelo cascata apresentação
Modelo cascata apresentaçãoModelo cascata apresentação
Modelo cascata apresentação
 
Modelo cascata apresentação
Modelo cascata apresentaçãoModelo cascata apresentação
Modelo cascata apresentação
 
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
 
Modelo cascata
Modelo cascataModelo cascata
Modelo cascata
 
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
 
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
 
38484931 questionario-es
38484931 questionario-es38484931 questionario-es
38484931 questionario-es
 
Processo de software individual
Processo de software individualProcesso de software individual
Processo de software individual
 
Aula2 processos sw
Aula2 processos swAula2 processos sw
Aula2 processos sw
 
Engenharia de-software-1217199594686494-9
Engenharia de-software-1217199594686494-9Engenharia de-software-1217199594686494-9
Engenharia de-software-1217199594686494-9
 
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
 
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
 
Este trabalho trata
Este trabalho trataEste trabalho trata
Este trabalho trata
 

Mais de Nécio de Lima Veras

Introdução ao JavaFX
Introdução ao JavaFXIntrodução ao JavaFX
Introdução ao JavaFX
Nécio de Lima Veras
 
Introdução à analise e complexidade de algoritmos
Introdução à analise e complexidade de algoritmosIntrodução à analise e complexidade de algoritmos
Introdução à analise e complexidade de algoritmos
Nécio de Lima Veras
 
Teste de software
Teste de softwareTeste de software
Teste de software
Nécio de Lima Veras
 
Versionamento com git
Versionamento com gitVersionamento com git
Versionamento com git
Nécio de Lima Veras
 
Uma Abordagem Baseada em Agentes para Planejamento e Monitoramento de Serviço...
Uma Abordagem Baseada em Agentes para Planejamento e Monitoramento de Serviço...Uma Abordagem Baseada em Agentes para Planejamento e Monitoramento de Serviço...
Uma Abordagem Baseada em Agentes para Planejamento e Monitoramento de Serviço...
Nécio de Lima Veras
 
Introdução à Engenharia de Software Orientada a Agentes com JaCaMo
Introdução à Engenharia de Software Orientada a Agentes com JaCaMoIntrodução à Engenharia de Software Orientada a Agentes com JaCaMo
Introdução à Engenharia de Software Orientada a Agentes com JaCaMo
Nécio de Lima Veras
 
Jason: Componentes personalizados
Jason: Componentes personalizados Jason: Componentes personalizados
Jason: Componentes personalizados
Nécio de Lima Veras
 
Agentes inteligentes com jason
Agentes inteligentes com jasonAgentes inteligentes com jason
Agentes inteligentes com jason
Nécio de Lima Veras
 
Ambientes em Sistemas Multi-agentes
Ambientes em Sistemas Multi-agentesAmbientes em Sistemas Multi-agentes
Ambientes em Sistemas Multi-agentes
Nécio de Lima Veras
 
Arquiteturas concretas de agentes inteligentes - bdi agents
Arquiteturas concretas de agentes inteligentes - bdi agentsArquiteturas concretas de agentes inteligentes - bdi agents
Arquiteturas concretas de agentes inteligentes - bdi agents
Nécio de Lima Veras
 
Revisão de matemática
Revisão de matemáticaRevisão de matemática
Revisão de matemática
Nécio de Lima Veras
 
Especificações iniciais de agentes inteligentes
Especificações iniciais de agentes inteligentesEspecificações iniciais de agentes inteligentes
Especificações iniciais de agentes inteligentes
Nécio de Lima Veras
 
Notas sobre agentes inteligentes
Notas sobre agentes inteligentesNotas sobre agentes inteligentes
Notas sobre agentes inteligentes
Nécio de Lima Veras
 
Anotações do mapeamento OR
Anotações do mapeamento ORAnotações do mapeamento OR
Anotações do mapeamento OR
Nécio de Lima Veras
 
Hibernate-consultas
Hibernate-consultasHibernate-consultas
Hibernate-consultas
Nécio de Lima Veras
 
Mapeamento de herança OR
Mapeamento de herança ORMapeamento de herança OR
Mapeamento de herança OR
Nécio de Lima Veras
 
Relacionamentos do mapeamento OR
Relacionamentos do mapeamento ORRelacionamentos do mapeamento OR
Relacionamentos do mapeamento OR
Nécio de Lima Veras
 
Processos iniciais do mapeamento OR
Processos iniciais do mapeamento ORProcessos iniciais do mapeamento OR
Processos iniciais do mapeamento OR
Nécio de Lima Veras
 
Java swing
Java swingJava swing
Introdução à linguagem UML
Introdução à linguagem UMLIntrodução à linguagem UML
Introdução à linguagem UML
Nécio de Lima Veras
 

Mais de Nécio de Lima Veras (20)

Introdução ao JavaFX
Introdução ao JavaFXIntrodução ao JavaFX
Introdução ao JavaFX
 
Introdução à analise e complexidade de algoritmos
Introdução à analise e complexidade de algoritmosIntrodução à analise e complexidade de algoritmos
Introdução à analise e complexidade de algoritmos
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
Versionamento com git
Versionamento com gitVersionamento com git
Versionamento com git
 
Uma Abordagem Baseada em Agentes para Planejamento e Monitoramento de Serviço...
Uma Abordagem Baseada em Agentes para Planejamento e Monitoramento de Serviço...Uma Abordagem Baseada em Agentes para Planejamento e Monitoramento de Serviço...
Uma Abordagem Baseada em Agentes para Planejamento e Monitoramento de Serviço...
 
Introdução à Engenharia de Software Orientada a Agentes com JaCaMo
Introdução à Engenharia de Software Orientada a Agentes com JaCaMoIntrodução à Engenharia de Software Orientada a Agentes com JaCaMo
Introdução à Engenharia de Software Orientada a Agentes com JaCaMo
 
Jason: Componentes personalizados
Jason: Componentes personalizados Jason: Componentes personalizados
Jason: Componentes personalizados
 
Agentes inteligentes com jason
Agentes inteligentes com jasonAgentes inteligentes com jason
Agentes inteligentes com jason
 
Ambientes em Sistemas Multi-agentes
Ambientes em Sistemas Multi-agentesAmbientes em Sistemas Multi-agentes
Ambientes em Sistemas Multi-agentes
 
Arquiteturas concretas de agentes inteligentes - bdi agents
Arquiteturas concretas de agentes inteligentes - bdi agentsArquiteturas concretas de agentes inteligentes - bdi agents
Arquiteturas concretas de agentes inteligentes - bdi agents
 
Revisão de matemática
Revisão de matemáticaRevisão de matemática
Revisão de matemática
 
Especificações iniciais de agentes inteligentes
Especificações iniciais de agentes inteligentesEspecificações iniciais de agentes inteligentes
Especificações iniciais de agentes inteligentes
 
Notas sobre agentes inteligentes
Notas sobre agentes inteligentesNotas sobre agentes inteligentes
Notas sobre agentes inteligentes
 
Anotações do mapeamento OR
Anotações do mapeamento ORAnotações do mapeamento OR
Anotações do mapeamento OR
 
Hibernate-consultas
Hibernate-consultasHibernate-consultas
Hibernate-consultas
 
Mapeamento de herança OR
Mapeamento de herança ORMapeamento de herança OR
Mapeamento de herança OR
 
Relacionamentos do mapeamento OR
Relacionamentos do mapeamento ORRelacionamentos do mapeamento OR
Relacionamentos do mapeamento OR
 
Processos iniciais do mapeamento OR
Processos iniciais do mapeamento ORProcessos iniciais do mapeamento OR
Processos iniciais do mapeamento OR
 
Java swing
Java swingJava swing
Java swing
 
Introdução à linguagem UML
Introdução à linguagem UMLIntrodução à linguagem UML
Introdução à linguagem UML
 

Modelos de processos de software

  • 1. Engenharia de Software Unidade II – Processos de Software Objetivo: Apresentar os principais paradigmas e modelos de processos de software, demonstrando o ciclo de vida do desenvolvimento de software e enfatizando os processos de especificação de requisitos, projeto, implementação, testes e mudanças Prof. Nécio de Lima Veras
  • 2. Processos de Desenvolvimento de Software  Vimos anteriormente que os processos definem uma estrutura, que consiste em áreas de processos chave.  Percebemos também que Sommerville subdivide em quatro atividades básicas:  Especificação;  Desenvolvimento;  Validação; e  Evolução.  Partindo disso, muitos modelos já foram propostos...
  • 3. Roteiro...  Então para esta aula, veremos:  Definições de processos e modelos de processos de software;  Alguns modelos existentes:  Cascata;  Evolucionário;  Desenvolvimento incremental;  Espiral; e  Prototipação.
  • 4. Definições  Processo de software:  “É uma seqüência coerente de práticas que objetiva o desenvolvimento ou evolução de sistemas de software. Estas práticas englobam as atividades de especificação, projeto, implementação, testes e caracterizam-se pela interação de ferramentas, pessoas e métodos”.  Modelo de processo de software:  “Um modelo de processo de software é uma representação abstrata de um processo. Ele apresenta uma descrição de um processo a partir de uma perspectiva específica”.
  • 5. O Modelo em Cascata  Primeiro modelo publicado do processo de desenvolvimento de software;  Originou-se de outros processos de engenharia;  Retrata um desenvolvimento gradual e possui seqüência de passos em ordem que devem ser seguidos.  Pode consumir um tempo estimado entre seis e dezoito meses;
  • 6. O Modelo em Cascata: Principais Estágios  Análise e Definição de Requisitos: as funções, as restrições e os objetivos do sistema são estabelecidos por meio de consulta aos usuários do sistema. Em seguida, são definidos em detalhes e servem como uma especificação do sistema.
  • 7. O Modelo em Cascata: Principais Estágios  Projeto de Sistemas e Software: o processo de projeto de sistemas agrupa os requisitos em sistemas de hardware e software. Envolve a identificação e a descrição das abstrações fundamentais do sistema de software e suas relações.
  • 8. O Modelo em Cascata: Principais Estágios  Implementação e Testes de Unidade: Durante este estágio, o projeto do software é compreendido como um conjunto de programas ou unidades de programa. O teste de unidade envolve verificar se cada uma das unidades atendem à sua especificação.
  • 9. O Modelo em Cascata: Principais Estágios  Integração e Teste de sistemas: as unidades de programa ou programas individuais são integrados e testados como um sistema completo a fim de garantir que os requisitos de software foram atendidos. Depois do teste, o software é entregue ao cliente.
  • 10. O Modelo em Cascata: Principais Estágios  Operação e manutenção: O sistema é instalado e colocado em operação. Envolve corrigir erros que não foram descobertos em estágios anteriores, melhorando a implemen- tação e descobrindo novos requisitos
  • 11. O Modelo em Cascata: Problemas  Particionamento inflexível do projeto em fases distintas;  Isso torna difícil responder a requisitos do usuário que mudam;  Portanto, esse modelo é apropriado somente quando os requisitos são bem compreendidos;
  • 12. O modelo Evolucionário  Tem com base a ideia de desenvolver uma implementação inicial, expor o resultado ao comentário do usuário e fazer seu aprimoramento por meio de muitas versões, até que tenha sido desenvolvido;  A especificação, desenvolvimento e validação são executados concorrentemente para gerar um retorno rápido;
  • 13. O modelo Evolucionário  Pode ser:  Exploratório: tem como objetivo trabalhar com o cliente a fim de explorar seus requisitos e entregar um sistema final. São feitas partes inicias e acrescentadas novas de acordo com o desenvolvimento.  Protótipos descartáveis: tenta compreender os melhor os requisitos a partir de protótipos e então desenvolver uma especificação de requisitos completa.
  • 14. O modelo Evolucionário  Problemas:  O processo não é visível: como o sistema é desenvolvido rapidamente, não há tempo de documentar as versões;  Os sistemas são mal-estruturados: mudanças constantes podem corromper a estrutura do software;  Requer ferramentas e técnicas especiais: que nem sempre são disponíveis ou são aplicáveis ao caso.
  • 15. O modelo Evolucionário  Aplicabilidade:  Para sistemas interativos pequenos ou de médio porte  Para partes de sistemas grandes (p.ex., a interface com o usuário)  Para sistemas de vida curta.
  • 16. O modelo Desenvolvimento Incremental  É uma variação do modelo Cascata;
  • 17. O modelo Desenvolvimento Incremental  A ideia é alargar pouco-a-pouco;  Analogia à construção de uma mansão;
  • 18. O modelo Desenvolvimento Incremental  Vantagens:  Redução dos riscos envolvendo custos a um único incremento.  Redução do risco de lançar o projeto no mercado fora da data planejada. Identificando os riscos numa fase inicial o esforço despendido para gerenciá-los ocorre cedo, quando as pessoas estão sob menos pressão do que numa fase final de projeto.  Aceleração do tempo de desenvolvimento do projeto como um todo, porque os desenvolvedores trabalham de maneira mais eficiente quando buscam resultados de escopo pequeno e claro.  Reconhecimento de uma realidade freqüentemente ignorada: as necessidades dos usuários e os requisitos correspondentes não podem ser totalmente definidos no início do processo.  Este modelo de operação facilita a adaptação a mudanças de requisitos.
  • 19. O modelo Desenvolvimento Incremental  Desvantagens:  Dificuldade de gerenciamento. Isso ocorre porque as fases de do ciclo podem estar ocorrendo de forma simultânea.  O usuário pode se entusiasmar excessivamente com a primeira versão do sistema e pensar que tal versão já corresponde ao sistema como um todo.  Como todo modelo esta sujeito a riscos de projeto:  O projeto pode não satisfazer aos requisitos do usuário.  A verba do projeto pode acabar.  O sistema de software pode não ser adaptável, manutenível ou extensível.  O sistema de software pode ser entregue ao usuário tarde demais.
  • 20. O modelo Espiral  O processo é representado como uma espiral, em vez de uma seqüência de atividades com caminhos de retorno  Cada volta na espiral representa uma fase no processo  Não há fases fixas, tais como especificação ou projeto  As voltas na espiral são escolhidas dependendo do que for exigido  Os riscos são explicitamente avaliados e resolvidos durante todo o processo  Para cada iteração temos:  Envolvimento do cliente;  Seis e vinte e quatro meses de duração (presumidamente);  Prazo suficiente para que o cliente tenha um brainstorm;
  • 22. O modelo Espiral: Setores  Definição do objetivo  Identificam-se os objetivos específicos da fase  Avaliação e redução de risco  Os riscos são avaliados e são adotadas as atividades para reduzir os ricos principais  Desenvolvimento e avaliação  É escolhido um modelo de desenvolvimento para o sistema, que pode ser qualquer um dos modelos genéricos  Planejamento  O projeto é revisado e a próxima fase da espiral é planejada
  • 23. O modelo Prototipação  Busca, principalmente, velocidade no desenvolvimento;  O cliente “enxerga” telas e relatórios resultantes do software, com os quais ele terá alguma pequena interação.  O usuário deve ser envolvido para opinar sobre as telas e relatórios do software, de maneira que se consiga torná-lo quase que co-autor do desenvolvimento responsabilizando-o também, desta forma, pelo sucesso final do software, uma vez que terá tido participação ativa na montagem do mesmo.
  • 24. O modelo Prototipação Análise de Desenvolvimento Experimentação Requisitos de Protótipo Revisão Codificação e Detalhamento Testes Manutenção Implantação
  • 25. O modelo Prototipação  Perigos:  Cliente “empolgar-se”;  Pressão a fim de que concessões de implementações ocorram para a urgência da implantação, sugerindo-se que o protótipo seja evoluído e entre rapidamente em funcionamento.
  • 26. Interseção entre os modelo?  Longo período de tempo para o desenvolvimento;  Volume muito grande de documentação e planejamento;  Fases maiores ainda => Big Design Up Front (BDUF);  Um software BDUF implica em:  O planejamento é completado e aperfeiçoado antes mesmo de iniciar a codificação, o que praticamente inviabiliza uma mudança brusca de escopo [Fox e Patterson 2012].  E agora, para onde vamos?
  • 27. Agilidade  Um grupo em fevereiro de 2001, chamado de Agile Alliance, começou a descobrir maneiras melhores e mais leves de desenvolver software valorizando:  pessoas e interações ao invés de processos e ferramentas;  softwares funcionando no lugar de documentações abrangentes;  colaborações com clientes do que negociações de contratos e respostas à mudanças por planos fechados.  Esses valores originaram o Manifesto Ágil com outros DOZE princípios que regem a filosofia de criar softwares com agilidade [BECK, 2001]
  • 28. Agilidade  O modelo é baseado em mudanças abrangentes;  O desenvolvedor deve melhorar continuamente um protótipo incompleto até que o cliente fique feliz com o resultado;  Algumas práticas são enfatizadas:  Test-Driven Development (TDD);  User Stories; e  Velocity.
  • 29. Contraste com os outros modelos É tão rápido que novas versões são disponibilizadas ao cliente a cada duas semanas e novos recursos são adicionados continuamente ao mesmo protótipo até que o cliente esteja satisfeito [Fox e Patterson 2012].
  • 31. Referências  Beck, K., et al. (2001). "Manifesto for Agile Software Development". Agile Alliance. http://agilemanifesto.org/. Acessado em 18 de agosto de 2012.  Fox, A., Patterson, D. (2012). “Engineering Long-Lasting Software: An Agile Approach Using SaaS and Cloud Computing”, Alpha Edition. Strawberry Canyon LLC, 2012.  Pressman, R. S. (2005). “Software engineering: a practitioner‟s approach”, 6 ed. New York: MacGraw-Hill, 2005.