SlideShare una empresa de Scribd logo
1 de 29
GOVERNO DO ESTADO DO PIAUÍ
       UNIVERSIDADE ESTADUAL DO
       PIAUÍ UESPI




Prof. Erivelton da Silva Rocha
Graduação: Licenciatura Plena em Computação
Especialista em Engenharia de Sistemas
   1
Engenharia de Software
          Aula - 03



2
IMPORTÂNCIA DO SOFTWARE

      Um dos pontos fundamentais da importância do software
é pelo seu uso cotidiano, aonde praticamente no mundo
moderno, inexiste a possibilidade de não utilizá-lo. E o outro
ponto é pela manipulação da informação (dado - informação -
conhecimento), e quem a tem possui poder.




         3
SWEBOK

   O SWEBOK (Guide to the Software Engineering Body of
    Knowledge) é o documento técnico desenvolvido com o
    apoio do IEEE (Instituto de Engenheiros Elétricos e
    Eletrônicos, também popularmente chamado de I3E). Esse
    documento estabelece uma classificação hierárquica dos
    tópicos tratados pela Engenharia de Software, onde o
    nível mais alto são as Áreas do Conhecimento.

                                                        4
AS DEZ ÁREAS DO CONHECIMENTO TRATADAS
             PELO SWEBOK SÃO:

• Requisitos de Software

• Projeto de Software

• Construção de Software

• Teste de Software

• Manutenção de Software

• Gerência de Configuração de Software

• Gerência da Engenharia de Software

• Processo de Engenharia de Software

• Ferramentas e Métodos da Engenharia de Software   5

• Qualidade de Software
MODELOS DE PROCESSOS DE
            ENGENHARIA DE SOFTWARE


   O Processo de Engenharia de Software envolve todas as
    atividades relacionadas ao desenvolvimento de um
    software, desde de a análise de requisitos, administração
    e gerenciamento de projetos até as técnicas de testes e
    manutenção de software.




                                                          6
REQUISITOS
O analista deve obter respostas a várias perguntas junto
                          aos usuários:
   O que exatamente se espera que seja feito?
   Qual a abrangência do software?
   Quais os limites, ou o escopo do sistema ?
   Por que se faz aquilo daquela forma?
   Quais as restrições que existem nos procedimentos e
    dados utilizados?
                                                          7
PROJETO/DESENVOLVIMENT
                O

   O analista faz especificações técnicas detalhando a solução
    criada para atender ao usuário conforme os requisitos
    anteriores. Os programadores codificam os programas em
    alguma linguagem de programação. Deve-se testar os
    programas exaustivamente para atingir um alto nível de
    qualidade, e após isso liberá-los para o uso.


                                                            8
IMPLANTAÇÃO/MANUTENÇÃO
   Na implantação do software pode ocorrer vários problemas
    não previstos nas fases anteriores. E a manutenção
    permanecerá durante toda sua vida útil e pode ocorrer
    motivada por 03 fatores:
   A correção de algum problema existente no software,
   Sua adaptação decorrente de novas exigências (internas ou
    externas da empresa)
   Algum melhoramento funcional que seja incorporado ao
    software.
                                                                9
10
MODELOS DE PROCESSO DE
SOFTWARE.
•   Modelos de Ciclo de Vida de Software;

• Modelos Prescritivos de Processo

• Paradigmas do Ciclo de Vida;

• Paradigmas do Desenvolvimento de
  Software;

• Modelagem do Ciclo de Vida.
                                            11
MODELO BALBÚRDIA

   No início da computação, poucos programadores seguiam
    algum tipo de metodologia baseando-se, em sua maioria,
    na própria experiência. Era o que chamamos hoje de
    Modelo    Balbúrdia,    sistemas      desenvolvidos      na
    informalidade   sem    nenhum      tipo   de   projeto   ou
    documentação.


                                                             12
   Nesse modelo, o software tende a entrar num ciclo de
    somente duas fases:
    O   de implementação
     De   implantação.



    E os ajustes ao software para atender aos novos
    requisitos, sempre são em clima de urgência e de
    stress, motivados por vários fatores, e principalmente
    por pressão política.
                                                        13
14
   Portanto, havia a necessidade se criar um “Ciclo de
    Vida” mais inteligente para o desenvolvimento de
    Software. Ou seja, um “Ciclo de Vida” semelhante à
    própria natureza,   com início, meio e fim bem
    definidos.




                                                      15
   Essas atividades podem ser executadas em
    diferentes seqüências e agrupadas em diferentes
    etapas. O conjunto de regras que definem essas
    etapas   e   seqüências   são   chamados    de
    Paradigmas da Engenharia de Software.




                                                      16
PARADIGMAS DA ENGENHARIA
          DE SOFTWARE

   Existem diversos paradigmas:
         Ciclo de vida clássico (seqüencial)

       Modelo de Prototipação

       Modelo Espiral

       Técnicas de Quarta Geração

       Combinação de Paradigmas

                                                17
PARADIGMAS DA
  ENGENHARIA DE SOFTWARE
  Para se escolher entre um ou outro paradigma deve-
          se levar em consideração diversos fatores:


 Processo   de desenvolvimento a ser adotado
 Tipo   de aplicação a ser desenvolvida
 Métodos    e ferramentas a serem utilizadas
 Controles   e produtos que precisam ser entregues
 Expectativa   do cliente                             18
CICLO DE VIDA CLÁSSICO


 Também    conhecido como modelo cascata
 Modelo mais antigo a ser utilizado

 Foi desenvolvido com base no ciclo de vida da
  engenharia tradicional
 É caracterizado por uma abordagem seqüencial
  para o desenvolvimento do software
 Cada atividade é uma fase distinta. Só após o seu
  total término é que a próxima etapa começa
 Hoje em dia é somente uma grande referência.
                                                19
20
FASE 1 E 2 – ENGENHARIA DE SISTEMAS
          E ANÁLISE DE REQUISITOS

   Envolve a coleta dos requisitos para todos os elementos do
    sistema

   Análise em alto nível. Pouco projeto

   Visão global do sistema: tarefas, interface com usuário,
    interface com o hardware, interface com banco de dados,
    etc.



                                                           21
FASE 1 E 2 – ENGENHARIA DE SISTEMAS
          E ANÁLISE DE REQUISITOS


   A análise envolve diversas tarefas:
       identificar as necessidades dos usuários
       Realizar as análise dos custos envolvidos
       Realizar a análise dos recursos necessários tanto de
        ferramentas quanto de pessoal
       Estabelecer restrições de prazo e custo
       Realizar um projeto inicial e global do sistema, incluindo sua
        divisão em módulos.
                                                                     22
FASE 1 E 2 – ENGENHARIA DE SISTEMAS
      E ANÁLISE DE REQUISITOS

                       Como realizar a análise:


   entrevista entre o analista e o cliente
   Questionários
   O analista deve saber fazer as perguntas certas, orientar, esclarecer e
    dar conselhos
   O cliente deve ser capaz de esclarecer suas expectativas e metas de
    projeto.
   Técnicas: análise estruturada, análise orientada a objetos, métodos
    formais
                                                                       23
   Resultado: Especificação dos requisitos.
FASE 3 - PROJETO
   Refinar a especificação global do sistema gerada na
    fase de análise
   O objetivo é realizar uma especificação mais detalhada
    do sistema, de forma que seja possível avaliar a
    qualidade prevista, antes de iniciar a codificação
   Definições realizadas nesta fase:
       Estrutura de dados
       Arquitetura de Software
       Detalhes Procedimentais
       Interface entre módulos com o usuário             24
FASE 4 - CODIFICAÇÃO

   Consiste simplesmente em implementar o que foi definido no
    projeto
   Quando o projeto é bem feito s os desenvolvedores são
    experientes e/ou competentes, esta etapa e relativamente simples
   Em outras palavras, esta etapa consiste da tradução do projeto
    para uma linguagem artificial, resultando em instruções
    executáveis pelo computador
   Falando de maneira ainda mais simples: codificação significa
    escrever programas

                                                                       25
FASE 5 - TESTE
   Consiste em testar o software, o que pode ser realizado
    de diversas formas:
   Teste de caixa preta – consiste em testar o software
    ignorando o processamento interno. Apenas verifica se,
    para um conjunto de dados de entrada, o conjunto de
    dados de saída é esperado.
   Teste de caixa branca: consiste em testar internamente
    o software, garantindo que todas as instruções tenham
    sido testadas.
                                                          26
FASE 6 - MANUTENÇÃO
   Muito provavelmente, o software deverá sofrer mudanças
    depois de entregue ao cliente, devido a erros ou novas
    funcionalidades requeridas.
   Tipo de manutenção
         Manutenção corretiva: consiste em diagnósticas e corrigir erros
       Manutenção adaptativa: adapta o software devido a mudanças no
        hardware ou software (por exemplo, novo sistema operacional)
       Manutenção perfectiva: melhorar o desempenho do software ou
        adicionar funcionalidades
       Manutenção preventiva: melhorar a confiabilidade ou garantir
        possibilidade de manutenção futura.                                 27
PROBLEMAS DO CICLO DE VIDA
               CLÁSSICO

   Dificilmente   projetos   reais   seguem    um    fluxo
    seqüencial
   Nem sempre é possível estabelecer inicialmente todos
    os requisitos necessários, devido a incertezas tanto do
    cliente quanto do desenvolvedor
   O cliente deve esperar até o final de todas as etapas
    como será o produto. Nem sempre ele consegue
    visualizar exatamente com será o produto final.
                                                          28
PROBLEMAS DO CICLO DE VIDA
            CLÁSSICO
 Resultado:
 Clientes insatisfeitos

 Modificações no sistema

 Aumento dos custos

 Possibilidade de introdução de erros.




                                          29

Más contenido relacionado

La actualidad más candente

Gerenciamento da Qualidade de Software 3.pptx
Gerenciamento da Qualidade de Software 3.pptxGerenciamento da Qualidade de Software 3.pptx
Gerenciamento da Qualidade de Software 3.pptxRoberto Nunes
 
Gerenciamento da Qualidade de Software 1.pptx
Gerenciamento da Qualidade de Software 1.pptxGerenciamento da Qualidade de Software 1.pptx
Gerenciamento da Qualidade de Software 1.pptxRoberto Nunes
 
Introdução à Engenharia de Software
Introdução à Engenharia de SoftwareIntrodução à Engenharia de Software
Introdução à Engenharia de Softwareelliando dias
 
Engenharia de Software - Conceitos e Modelos de Desenvolvimento
Engenharia de Software - Conceitos e Modelos de Desenvolvimento Engenharia de Software - Conceitos e Modelos de Desenvolvimento
Engenharia de Software - Conceitos e Modelos de Desenvolvimento Sérgio Souza Costa
 
Visão de Testes de Software segundo o SWEBOK
Visão de Testes de Software segundo o SWEBOKVisão de Testes de Software segundo o SWEBOK
Visão de Testes de Software segundo o SWEBOKMário Pravato Junior
 
Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 1
Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 1Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 1
Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 1Renato Leal
 
Gerenciamento da Qualidade de Software 4.pptx
Gerenciamento da Qualidade de Software 4.pptxGerenciamento da Qualidade de Software 4.pptx
Gerenciamento da Qualidade de Software 4.pptxRoberto Nunes
 
Uma Introdução a Engenharia de Software
Uma Introdução a Engenharia de SoftwareUma Introdução a Engenharia de Software
Uma Introdução a Engenharia de SoftwareVinicius Garcia
 
Engenharia de Software - Unimep/Pronatec - Aula 2
Engenharia de Software - Unimep/Pronatec - Aula 2Engenharia de Software - Unimep/Pronatec - Aula 2
Engenharia de Software - Unimep/Pronatec - Aula 2André Phillip Bertoletti
 
Paradigmas De Engenharia De Software
Paradigmas De Engenharia De SoftwareParadigmas De Engenharia De Software
Paradigmas De Engenharia De SoftwareRobson Silva Espig
 
Gerenciamento da Qualidade de Software 2.pptx
Gerenciamento da Qualidade de Software 2.pptxGerenciamento da Qualidade de Software 2.pptx
Gerenciamento da Qualidade de Software 2.pptxRoberto Nunes
 
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
 
02 Introdução à engenharia de software - conceitos fundamentais
02 Introdução à engenharia de software - conceitos fundamentais02 Introdução à engenharia de software - conceitos fundamentais
02 Introdução à engenharia de software - conceitos fundamentaisWaldemar Roberti
 
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
 

La actualidad más candente (20)

Gerenciamento da Qualidade de Software 3.pptx
Gerenciamento da Qualidade de Software 3.pptxGerenciamento da Qualidade de Software 3.pptx
Gerenciamento da Qualidade de Software 3.pptx
 
Gerenciamento da Qualidade de Software 1.pptx
Gerenciamento da Qualidade de Software 1.pptxGerenciamento da Qualidade de Software 1.pptx
Gerenciamento da Qualidade de Software 1.pptx
 
Introdução à Engenharia de Software
Introdução à Engenharia de SoftwareIntrodução à Engenharia de Software
Introdução à Engenharia de Software
 
Engenharia de Software - Conceitos e Modelos de Desenvolvimento
Engenharia de Software - Conceitos e Modelos de Desenvolvimento Engenharia de Software - Conceitos e Modelos de Desenvolvimento
Engenharia de Software - Conceitos e Modelos de Desenvolvimento
 
Visão de Testes de Software segundo o SWEBOK
Visão de Testes de Software segundo o SWEBOKVisão de Testes de Software segundo o SWEBOK
Visão de Testes de Software segundo o SWEBOK
 
Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 1
Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 1Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 1
Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 1
 
Gerenciamento da Qualidade de Software 4.pptx
Gerenciamento da Qualidade de Software 4.pptxGerenciamento da Qualidade de Software 4.pptx
Gerenciamento da Qualidade de Software 4.pptx
 
Uma Introdução a Engenharia de Software
Uma Introdução a Engenharia de SoftwareUma Introdução a Engenharia de Software
Uma Introdução a Engenharia de Software
 
Rup e metodos ágies
Rup e metodos ágiesRup e metodos ágies
Rup e metodos ágies
 
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
 
Engenharia de Software - Unimep/Pronatec - Aula 2
Engenharia de Software - Unimep/Pronatec - Aula 2Engenharia de Software - Unimep/Pronatec - Aula 2
Engenharia de Software - Unimep/Pronatec - Aula 2
 
Capitulo 02 sommerville
Capitulo 02 sommervilleCapitulo 02 sommerville
Capitulo 02 sommerville
 
Analise aula2
Analise aula2Analise aula2
Analise aula2
 
Introducao swebok
Introducao swebokIntroducao swebok
Introducao swebok
 
Aula 2 - Processos de Software
Aula 2 - Processos de SoftwareAula 2 - Processos de Software
Aula 2 - Processos de Software
 
Paradigmas De Engenharia De Software
Paradigmas De Engenharia De SoftwareParadigmas De Engenharia De Software
Paradigmas De Engenharia De Software
 
Gerenciamento da Qualidade de Software 2.pptx
Gerenciamento da Qualidade de Software 2.pptxGerenciamento da Qualidade de Software 2.pptx
Gerenciamento da Qualidade de Software 2.pptx
 
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
 
02 Introdução à engenharia de software - conceitos fundamentais
02 Introdução à engenharia de software - conceitos fundamentais02 Introdução à engenharia de software - conceitos fundamentais
02 Introdução à engenharia de software - conceitos fundamentais
 
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
 

Similar a Aula 03 de engenharia de software uespi 2011-1

Introdução a Engenharia de Software - Prof.ª Cristiane Fidelix
Introdução a Engenharia de Software - Prof.ª Cristiane FidelixIntrodução a Engenharia de Software - Prof.ª Cristiane Fidelix
Introdução a Engenharia de Software - Prof.ª Cristiane FidelixCris Fidelix
 
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
 
Aula 7 - Ciclo de vida do software.pptx
Aula 7 - Ciclo de vida do software.pptxAula 7 - Ciclo de vida do software.pptx
Aula 7 - Ciclo de vida do software.pptxAlexandreLisboadaSil
 
aula7 software ciclo de vida analise req
aula7 software ciclo de vida analise reqaula7 software ciclo de vida analise req
aula7 software ciclo de vida analise reqpatriciaalipiosilva
 
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
 
Engenharia de-software-1217199594686494-9
Engenharia de-software-1217199594686494-9Engenharia de-software-1217199594686494-9
Engenharia de-software-1217199594686494-9wilsonguns
 
Es2 modelo de processo de software
Es2 modelo de processo de softwareEs2 modelo de processo de software
Es2 modelo de processo de softwareluacal
 
O Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de SoftwareO Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de SoftwareCamilo de Melo
 
Engenharia De Software
Engenharia De SoftwareEngenharia De Software
Engenharia De SoftwareCursoSENAC
 
Este trabalho trata
Este trabalho trataEste trabalho trata
Este trabalho trataRoni Reis
 
T1 g13.modelo cascata
T1 g13.modelo cascataT1 g13.modelo cascata
T1 g13.modelo cascatawilsonguns
 
Resumo capítulo 1 livro Engenharia de Software Moderna
Resumo capítulo 1 livro Engenharia de Software ModernaResumo capítulo 1 livro Engenharia de Software Moderna
Resumo capítulo 1 livro Engenharia de Software ModernaLucasBastos305659
 
Áreas de Conhecimento da Engenharia de Software
Áreas de Conhecimento da Engenharia de SoftwareÁreas de Conhecimento da Engenharia de Software
Áreas de Conhecimento da Engenharia de SoftwareElaine Cecília Gatto
 
Engenharia Reversa e Reengenharia Software
Engenharia Reversa e Reengenharia SoftwareEngenharia Reversa e Reengenharia Software
Engenharia Reversa e Reengenharia Softwareelliando dias
 
modelagem sistema da informação Unid 3
modelagem sistema da informação Unid 3modelagem sistema da informação Unid 3
modelagem sistema da informação Unid 3spawally
 

Similar a Aula 03 de engenharia de software uespi 2011-1 (20)

Introdução a Engenharia de Software - Prof.ª Cristiane Fidelix
Introdução a Engenharia de Software - Prof.ª Cristiane FidelixIntrodução a Engenharia de Software - Prof.ª Cristiane Fidelix
Introdução a Engenharia de Software - Prof.ª Cristiane Fidelix
 
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
 
Aula 7 - Ciclo de vida do software.pptx
Aula 7 - Ciclo de vida do software.pptxAula 7 - Ciclo de vida do software.pptx
Aula 7 - Ciclo de vida do software.pptx
 
aula7 software ciclo de vida analise req
aula7 software ciclo de vida analise reqaula7 software ciclo de vida analise req
aula7 software ciclo de vida analise req
 
Rational Unified Process (RUP)
Rational Unified Process (RUP)Rational Unified Process (RUP)
Rational Unified Process (RUP)
 
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
 
Engenharia de-software-1217199594686494-9
Engenharia de-software-1217199594686494-9Engenharia de-software-1217199594686494-9
Engenharia de-software-1217199594686494-9
 
Es2 modelo de processo de software
Es2 modelo de processo de softwareEs2 modelo de processo de software
Es2 modelo de processo de software
 
O Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de SoftwareO Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de Software
 
Engenharia De Software
Engenharia De SoftwareEngenharia De Software
Engenharia De Software
 
Este trabalho trata
Este trabalho trataEste trabalho trata
Este trabalho trata
 
T1 g13.modelo cascata
T1 g13.modelo cascataT1 g13.modelo cascata
T1 g13.modelo cascata
 
Resumo capítulo 1 livro Engenharia de Software Moderna
Resumo capítulo 1 livro Engenharia de Software ModernaResumo capítulo 1 livro Engenharia de Software Moderna
Resumo capítulo 1 livro Engenharia de Software Moderna
 
Áreas de Conhecimento da Engenharia de Software
Áreas de Conhecimento da Engenharia de SoftwareÁreas de Conhecimento da Engenharia de Software
Áreas de Conhecimento da Engenharia de Software
 
Modelos de processos de software
Modelos de processos de softwareModelos de processos de software
Modelos de processos de software
 
Engenharia Reversa e Reengenharia Software
Engenharia Reversa e Reengenharia SoftwareEngenharia Reversa e Reengenharia Software
Engenharia Reversa e Reengenharia Software
 
152191 11993
152191 11993152191 11993
152191 11993
 
ES4.ppt
ES4.pptES4.ppt
ES4.ppt
 
Modelos de processos de software
Modelos de processos de softwareModelos de processos de software
Modelos de processos de software
 
modelagem sistema da informação Unid 3
modelagem sistema da informação Unid 3modelagem sistema da informação Unid 3
modelagem sistema da informação Unid 3
 

Aula 03 de engenharia de software uespi 2011-1

  • 1. GOVERNO DO ESTADO DO PIAUÍ UNIVERSIDADE ESTADUAL DO PIAUÍ UESPI Prof. Erivelton da Silva Rocha Graduação: Licenciatura Plena em Computação Especialista em Engenharia de Sistemas 1
  • 3. IMPORTÂNCIA DO SOFTWARE Um dos pontos fundamentais da importância do software é pelo seu uso cotidiano, aonde praticamente no mundo moderno, inexiste a possibilidade de não utilizá-lo. E o outro ponto é pela manipulação da informação (dado - informação - conhecimento), e quem a tem possui poder. 3
  • 4. SWEBOK  O SWEBOK (Guide to the Software Engineering Body of Knowledge) é o documento técnico desenvolvido com o apoio do IEEE (Instituto de Engenheiros Elétricos e Eletrônicos, também popularmente chamado de I3E). Esse documento estabelece uma classificação hierárquica dos tópicos tratados pela Engenharia de Software, onde o nível mais alto são as Áreas do Conhecimento. 4
  • 5. AS DEZ ÁREAS DO CONHECIMENTO TRATADAS PELO SWEBOK SÃO: • Requisitos de Software • Projeto de Software • Construção de Software • Teste de Software • Manutenção de Software • Gerência de Configuração de Software • Gerência da Engenharia de Software • Processo de Engenharia de Software • Ferramentas e Métodos da Engenharia de Software 5 • Qualidade de Software
  • 6. MODELOS DE PROCESSOS DE ENGENHARIA DE SOFTWARE  O Processo de Engenharia de Software envolve todas as atividades relacionadas ao desenvolvimento de um software, desde de a análise de requisitos, administração e gerenciamento de projetos até as técnicas de testes e manutenção de software. 6
  • 7. REQUISITOS O analista deve obter respostas a várias perguntas junto aos usuários:  O que exatamente se espera que seja feito?  Qual a abrangência do software?  Quais os limites, ou o escopo do sistema ?  Por que se faz aquilo daquela forma?  Quais as restrições que existem nos procedimentos e dados utilizados? 7
  • 8. PROJETO/DESENVOLVIMENT O  O analista faz especificações técnicas detalhando a solução criada para atender ao usuário conforme os requisitos anteriores. Os programadores codificam os programas em alguma linguagem de programação. Deve-se testar os programas exaustivamente para atingir um alto nível de qualidade, e após isso liberá-los para o uso. 8
  • 9. IMPLANTAÇÃO/MANUTENÇÃO  Na implantação do software pode ocorrer vários problemas não previstos nas fases anteriores. E a manutenção permanecerá durante toda sua vida útil e pode ocorrer motivada por 03 fatores:  A correção de algum problema existente no software,  Sua adaptação decorrente de novas exigências (internas ou externas da empresa)  Algum melhoramento funcional que seja incorporado ao software. 9
  • 10. 10
  • 11. MODELOS DE PROCESSO DE SOFTWARE. • Modelos de Ciclo de Vida de Software; • Modelos Prescritivos de Processo • Paradigmas do Ciclo de Vida; • Paradigmas do Desenvolvimento de Software; • Modelagem do Ciclo de Vida. 11
  • 12. MODELO BALBÚRDIA  No início da computação, poucos programadores seguiam algum tipo de metodologia baseando-se, em sua maioria, na própria experiência. Era o que chamamos hoje de Modelo Balbúrdia, sistemas desenvolvidos na informalidade sem nenhum tipo de projeto ou documentação. 12
  • 13. Nesse modelo, o software tende a entrar num ciclo de somente duas fases: O de implementação  De implantação.  E os ajustes ao software para atender aos novos requisitos, sempre são em clima de urgência e de stress, motivados por vários fatores, e principalmente por pressão política. 13
  • 14. 14
  • 15. Portanto, havia a necessidade se criar um “Ciclo de Vida” mais inteligente para o desenvolvimento de Software. Ou seja, um “Ciclo de Vida” semelhante à própria natureza, com início, meio e fim bem definidos. 15
  • 16. Essas atividades podem ser executadas em diferentes seqüências e agrupadas em diferentes etapas. O conjunto de regras que definem essas etapas e seqüências são chamados de Paradigmas da Engenharia de Software. 16
  • 17. PARADIGMAS DA ENGENHARIA DE SOFTWARE  Existem diversos paradigmas:  Ciclo de vida clássico (seqüencial)  Modelo de Prototipação  Modelo Espiral  Técnicas de Quarta Geração  Combinação de Paradigmas 17
  • 18. PARADIGMAS DA ENGENHARIA DE SOFTWARE Para se escolher entre um ou outro paradigma deve- se levar em consideração diversos fatores:  Processo de desenvolvimento a ser adotado  Tipo de aplicação a ser desenvolvida  Métodos e ferramentas a serem utilizadas  Controles e produtos que precisam ser entregues  Expectativa do cliente 18
  • 19. CICLO DE VIDA CLÁSSICO  Também conhecido como modelo cascata  Modelo mais antigo a ser utilizado  Foi desenvolvido com base no ciclo de vida da engenharia tradicional  É caracterizado por uma abordagem seqüencial para o desenvolvimento do software  Cada atividade é uma fase distinta. Só após o seu total término é que a próxima etapa começa  Hoje em dia é somente uma grande referência. 19
  • 20. 20
  • 21. FASE 1 E 2 – ENGENHARIA DE SISTEMAS E ANÁLISE DE REQUISITOS  Envolve a coleta dos requisitos para todos os elementos do sistema  Análise em alto nível. Pouco projeto  Visão global do sistema: tarefas, interface com usuário, interface com o hardware, interface com banco de dados, etc. 21
  • 22. FASE 1 E 2 – ENGENHARIA DE SISTEMAS E ANÁLISE DE REQUISITOS  A análise envolve diversas tarefas:  identificar as necessidades dos usuários  Realizar as análise dos custos envolvidos  Realizar a análise dos recursos necessários tanto de ferramentas quanto de pessoal  Estabelecer restrições de prazo e custo  Realizar um projeto inicial e global do sistema, incluindo sua divisão em módulos. 22
  • 23. FASE 1 E 2 – ENGENHARIA DE SISTEMAS E ANÁLISE DE REQUISITOS Como realizar a análise:  entrevista entre o analista e o cliente  Questionários  O analista deve saber fazer as perguntas certas, orientar, esclarecer e dar conselhos  O cliente deve ser capaz de esclarecer suas expectativas e metas de projeto.  Técnicas: análise estruturada, análise orientada a objetos, métodos formais 23  Resultado: Especificação dos requisitos.
  • 24. FASE 3 - PROJETO  Refinar a especificação global do sistema gerada na fase de análise  O objetivo é realizar uma especificação mais detalhada do sistema, de forma que seja possível avaliar a qualidade prevista, antes de iniciar a codificação  Definições realizadas nesta fase:  Estrutura de dados  Arquitetura de Software  Detalhes Procedimentais  Interface entre módulos com o usuário 24
  • 25. FASE 4 - CODIFICAÇÃO  Consiste simplesmente em implementar o que foi definido no projeto  Quando o projeto é bem feito s os desenvolvedores são experientes e/ou competentes, esta etapa e relativamente simples  Em outras palavras, esta etapa consiste da tradução do projeto para uma linguagem artificial, resultando em instruções executáveis pelo computador  Falando de maneira ainda mais simples: codificação significa escrever programas 25
  • 26. FASE 5 - TESTE  Consiste em testar o software, o que pode ser realizado de diversas formas:  Teste de caixa preta – consiste em testar o software ignorando o processamento interno. Apenas verifica se, para um conjunto de dados de entrada, o conjunto de dados de saída é esperado.  Teste de caixa branca: consiste em testar internamente o software, garantindo que todas as instruções tenham sido testadas. 26
  • 27. FASE 6 - MANUTENÇÃO  Muito provavelmente, o software deverá sofrer mudanças depois de entregue ao cliente, devido a erros ou novas funcionalidades requeridas.  Tipo de manutenção  Manutenção corretiva: consiste em diagnósticas e corrigir erros  Manutenção adaptativa: adapta o software devido a mudanças no hardware ou software (por exemplo, novo sistema operacional)  Manutenção perfectiva: melhorar o desempenho do software ou adicionar funcionalidades  Manutenção preventiva: melhorar a confiabilidade ou garantir possibilidade de manutenção futura. 27
  • 28. PROBLEMAS DO CICLO DE VIDA CLÁSSICO  Dificilmente projetos reais seguem um fluxo seqüencial  Nem sempre é possível estabelecer inicialmente todos os requisitos necessários, devido a incertezas tanto do cliente quanto do desenvolvedor  O cliente deve esperar até o final de todas as etapas como será o produto. Nem sempre ele consegue visualizar exatamente com será o produto final. 28
  • 29. PROBLEMAS DO CICLO DE VIDA CLÁSSICO  Resultado:  Clientes insatisfeitos  Modificações no sistema  Aumento dos custos  Possibilidade de introdução de erros. 29