SlideShare a Scribd company logo
1 of 26
Download to read offline
Prof. Nécio de Lima Veras




 Introdução à
Engenharia de
   Software
                      Objetivo: Perceber os conceitos
                      básicos e aspectos introdutórios
                      sobre Engenharia de Software.
Aula 01: Ordem
Software:
   Conceitos;
   Crise Histórica;
   Mitos;
Introdução à abordagem de projetos;
Engenharia de Software:
   Definição;
   Modelos de Processos de Softwares;
   Modelos de Gerência de Projetos;
Software: Conceitos



[...] uma forma híbrida, algo no domínio
   entre o concreto e o abstrato, entre o
   tangível e o intangível. [...] o
   desenvolvimento de produtos de
   software é visto como uma atividade
   mental, abstrata, solitária e criativa.

    Cox (apud GUERRA e ALVES, 2004, p. 1)
Software: Conceitos
Pressman (1997) diz que um livro didático
 poderia trazer a descrição de um software
 da seguinte forma:
   Instruções (programas de computador) que,
    quando executadas, produzem a função e
    desempenho desejados;
   Estruturas de dados que possibilitam que os
    programas manipulem adequadamente a
    informação;
   Documentos que descrevem a operação e o
    uso dos programas;
Software: Conceitos
Sommerville (2003) complementa criando
 dois tipos diferentes:
   Produtos Genéricos;
   Produtos sob encomenda;
Por tanto, Software é:
   Produto (ou serviço) que possui um grande
    número de características próprias oriundas
    dos critérios de análise, codificação e
    documentação aplicados durante sua
    construção;
Software: Reflexão sobre os conceitos


                     Reflexões




 Será que essa                   Qual a relevância
 formalização já é               de conhecer o
 suficiente para                 que está
 entendermos o que               “escondido” por
 é realmente um                  traz de um
 software?                       software?
Software: Crise Histórica (1968)

Evolução do hardware;
Softwares mais complexos com:
     Custos maiores (não previstos);
     Baixa confiabilidade;
     Difícil manutenção; e
     Desempenho abaixo do esperado;
Percebeu-se que uma abordagem
 informal de desenvolvimento não era
 suficiente;
   E quais as prováveis causas da crise?
Software: Mitos

       1                   2                     3

A equipe de       A equipe possui        Se os prazos
desenvolvimento   ferramentas de         atrasam, pode-se
                  desenvolvimento de
dispõe de um                             adicionar mais
                  software de última
manual com                               pessoas ao grupo
                  geração! Afinal lhes
padrões e         compramos os mais      e tirar o atraso;
procedimentos;    novos computadores;
Software: Mitos

         4                      5                       6

Uma descrição          Os requisitos de         Assim que
                       projeto modificam-       escrevermos o
geral dos objetivos
                       se continuamente,        programa e o
é suficiente para se   mas as mudanças          colocarmos em
escrever               podem ser                funcionamento
programas e os         facilmente               nosso trabalho
detalhes são vistos    acomodadas, porque       estará completo.
posteriormente;        o software é flexível.
Software: Mitos

           7

 Enquanto não tiver o
 programa "funcionando",
 eu não terei realmente
 nenhuma maneira de
 avaliar sua qualidade.
Quais foram as possíveis soluções para
               a crise?

   Reconhecer os
   problemas e causas;


   Desmascarar os           Engenharia
   mitos;                       de
                             Software
   Criar soluções que
   apresentem suporte ao
   desenvolvedor e que
   melhore a qualidade;
Introdução à abordagem de projetos
Produtos de Software


 Surge de ideias conceituais e reajustáveis;
 É Intangível;
 Possui escopo variável;
 É dotado de incertezas constantes;
 Difícil visualização do produto final.
 Mas como obter um produto de software com
 qualidade diante de todas estas peculiaridades?
Engenharia de Software


●
    A ideia foi incluir a disciplina de engenharia no
    desenvolvimento de software;
●
    A E.S. Engloba três elementos fundamentais:
Engenharia de Software: definição
 Sommerville (2003):
    Disciplina que trabalha todos os aspectos da
     produção de software, desde os estágios
     iniciais de especificação até a manutenção
     deste, depois que ele entrou em operação;
    Não se dedica apenas aos processos
     técnicos de software, mas também:
     • Ao gerenciamento dos projetos;
     • Ao desenvolvimento de ferramentas, métodos e
       teorias que dêem apoio à produção de software;
 Por que não fazer uma analogia?
Engenharia de Software: abrangência



  Métodos
  Métodos         Ferramentas
                  Ferramentas    Procedimentos
                                 Procedimentos

  Planejamento,
  Análise,
  Projeto,           Automação      “Elo de
  Codificação,                      ligação” entre
  Teste e                           métodos e
  Manutenção                        ferramentas
Engenharia de Software:
  Modelo de Processo de Software
O que entendemos por processo de
 software?
     Conjunto de atividades que geram produtos
      de software;
                Há quatro atividades fundamentais
                Há quatro atividades fundamentais




                 Desenvolvimento
Especificação           de         Validação de   Evolução de
     de              software        software       software
  Software
Engenharia de Software:
  Modelo de Processo de Software
Um modelo de processo de software é:
   Uma descrição simplificada de um processo
    de software, abstraindo o processo real que
    está sendo aplicado;
É constituído por:
   Atividades de processos de software;
   Produtos de software;
   Definição de papeis das pessoas envolvidas;
Exemplos de Modelos de Processos
          de Software


    O Modelo
    em cascata




                          Desenvolvimento
        Desenvolvimento     incremental
          evolucionário
Reflexão sobre os modelos

Esses modelos garantem o sucesso do
 software?
   E as métricas de software?
   E as garantias de qualidade?
Como vimos, faz parte da definição de
 engenharia de software:
   Não se dedica apenas aos processos
    técnicos de software, mas também ao
    gerenciamento dos projetos;
Gerência de Projetos de Software
 A crise é passado?
    E os softwares complexos?

 É preciso gerenciar projetos de software?
    Considere:
     • Sistemas de Software;
     • Desenvolvimento colaborativo;


 Também existe modelos de
  gerenciamento?
Modelos de Gerenciamento de Projetos

  PMI (Project Management Institute):
    Baseado em processos;
    Alguns consideram muito burocrático;
    Possui publicações reconhecidas
     internacionalmente, como o Guia PMBOK;

  CMMI (Capability Maturity Model Integration):
    Baseado em níveis de maturidade organizacional;
    Encomendado e patrocinado pelo Pentágono, foi
     formulado pelo SEI (Software Engineering Institute);
Modelos de Gerenciamento de Projetos

 APM (Agile Project Management):
   Criado em 2001 por um grupo chamado de Agile
    Alliance;
   Possui um conjunto de princípios que são referências
    básicas para as metodologias ágeis;
   Possui cinco objetivos-chave:
     •   Inovação contínua;
     •   Adaptabilidade do produto;
     •   Entregas com cronograma reduzido;
     •   Adaptabilidade do processo e das pessoas;
     •   Resultados confiáveis;
Modelo Ágil de Gerência de Projeto de
       Software – Visão Geral




 Fonte: Martins, 2007
Considerações Finais



Perspectivas para a área de Engenharia
 de Software:
   O modelo brasileiro de melhoria dos
    processos de software (MPS.BR);
Referências Bibliográficas
 SOMMERVILLE, I. Engenharia de Software. 6ª. ed. São Paulo:
  Addison Wesley, 2003.

 PRESSMAN, R. S. Engenharia de Software. São Paulo: Pearson
  Makron Books, 1997, Reimpressão 2007.

 MARTINS, J. C. C. Técnicas para Gerenciamento de Projetos de
  Software. Rio de Janeiro: Brasport, 2007.

 GUERRA, A. C., ALVES, A. M. Aquisição de produtos e serviços de
  software. Rio de Janeiro: Elsevier: 2004.

 BASSI, D. Planejamento Ágil de Projetos. Engenharia de Software
  Magazine. DevMedia Group, ano I, n. 08, pág. 08-12, 2008.

 PAULA, Wilson de Pádua Filho. Alguns Fundamentos da Engenharia
  de Software. Engenharia de Software Magazine. DevMedia Group,
  ano I, n. 01, pág. 04-08, 2007.

More Related Content

What's hot

O que é Interação Humano-Computador?
O que é Interação Humano-Computador?O que é Interação Humano-Computador?
O que é Interação Humano-Computador?Sidney Roberto
 
Desenvolvimento de aplicações para dispositivos móveis módulo i - aula 2
Desenvolvimento de aplicações para dispositivos móveis   módulo i - aula 2Desenvolvimento de aplicações para dispositivos móveis   módulo i - aula 2
Desenvolvimento de aplicações para dispositivos móveis módulo i - aula 2Carlos Eugenio Torres
 
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
 
Linguagem de programação
Linguagem de programação Linguagem de programação
Linguagem de programação Marcos Gregorio
 
Análise, projeto e implementação de sistemas
Análise, projeto e implementação de sistemasAnálise, projeto e implementação de sistemas
Análise, projeto e implementação de sistemasDiego Marek
 
Metodologias de Desenvolvimento de Software
Metodologias de Desenvolvimento de SoftwareMetodologias de Desenvolvimento de Software
Metodologias de Desenvolvimento de SoftwareÁlvaro Farias Pinheiro
 
Arquitetura de Software Visão Geral
Arquitetura de Software Visão GeralArquitetura de Software Visão Geral
Arquitetura de Software Visão Geralsergiocrespo
 
Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01thomasdacosta
 
AULA 9 - INTRODUÇÃO À CIBERSEGURANÇA
AULA 9 - INTRODUÇÃO À CIBERSEGURANÇAAULA 9 - INTRODUÇÃO À CIBERSEGURANÇA
AULA 9 - INTRODUÇÃO À CIBERSEGURANÇAMaraLuizaGonalvesFre
 
Desenvolvimento de aplicações para dispositivos móveis
Desenvolvimento de aplicações para dispositivos móveisDesenvolvimento de aplicações para dispositivos móveis
Desenvolvimento de aplicações para dispositivos móveisMarcelo Quinta
 
Apresentação Scratch
Apresentação ScratchApresentação Scratch
Apresentação ScratchMichele Felkl
 
Aula Lógica de Programação - cap1
Aula Lógica de Programação - cap1 Aula Lógica de Programação - cap1
Aula Lógica de Programação - cap1 Cloves da Rocha
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Softwareeros.viggiano
 
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
 

What's hot (20)

Aula 1 - Introdução a Segurança da Informação
Aula 1 - Introdução a Segurança da InformaçãoAula 1 - Introdução a Segurança da Informação
Aula 1 - Introdução a Segurança da Informação
 
Introdução ao SQL
Introdução ao SQLIntrodução ao SQL
Introdução ao SQL
 
Aula 2 - Processos de Software
Aula 2 - Processos de SoftwareAula 2 - Processos de Software
Aula 2 - Processos de Software
 
O que é Interação Humano-Computador?
O que é Interação Humano-Computador?O que é Interação Humano-Computador?
O que é Interação Humano-Computador?
 
Desenvolvimento de aplicações para dispositivos móveis módulo i - aula 2
Desenvolvimento de aplicações para dispositivos móveis   módulo i - aula 2Desenvolvimento de aplicações para dispositivos móveis   módulo i - aula 2
Desenvolvimento de aplicações para dispositivos móveis módulo i - aula 2
 
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
 
Linguagem de programação
Linguagem de programação Linguagem de programação
Linguagem de programação
 
Análise, projeto e implementação de sistemas
Análise, projeto e implementação de sistemasAnálise, projeto e implementação de sistemas
Análise, projeto e implementação de sistemas
 
Metodologias de Desenvolvimento de Software
Metodologias de Desenvolvimento de SoftwareMetodologias de Desenvolvimento de Software
Metodologias de Desenvolvimento de Software
 
Arquitetura de Software Visão Geral
Arquitetura de Software Visão GeralArquitetura de Software Visão Geral
Arquitetura de Software Visão Geral
 
Metodologia Ágil
Metodologia ÁgilMetodologia Ágil
Metodologia Ágil
 
Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01
 
Interface Homem Computador - Aula01- Introdução a IHC
Interface Homem Computador - Aula01- Introdução a IHCInterface Homem Computador - Aula01- Introdução a IHC
Interface Homem Computador - Aula01- Introdução a IHC
 
AULA 9 - INTRODUÇÃO À CIBERSEGURANÇA
AULA 9 - INTRODUÇÃO À CIBERSEGURANÇAAULA 9 - INTRODUÇÃO À CIBERSEGURANÇA
AULA 9 - INTRODUÇÃO À CIBERSEGURANÇA
 
Desenvolvimento de aplicações para dispositivos móveis
Desenvolvimento de aplicações para dispositivos móveisDesenvolvimento de aplicações para dispositivos móveis
Desenvolvimento de aplicações para dispositivos móveis
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Apresentação Scratch
Apresentação ScratchApresentação Scratch
Apresentação Scratch
 
Aula Lógica de Programação - cap1
Aula Lógica de Programação - cap1 Aula Lógica de Programação - cap1
Aula Lógica de Programação - cap1
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
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
 

Viewers also liked

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
 
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
 
Conceitos de básicos de qualidade de software
Conceitos de básicos de qualidade de softwareConceitos de básicos de qualidade de software
Conceitos de básicos de qualidade de softwareRonney Moreira de Castro
 
Engenharia De Software
Engenharia De SoftwareEngenharia De Software
Engenharia De SoftwareCursoSENAC
 
Engenharia Requisitos - Método RON
Engenharia Requisitos - Método RONEngenharia Requisitos - Método RON
Engenharia Requisitos - Método RONEduardo Castro
 
Como usar o Guia PMBOK® na engenharia de softwares Aplicando os grupos de pr...
Como usar o Guia PMBOK® na engenharia de softwares  Aplicando os grupos de pr...Como usar o Guia PMBOK® na engenharia de softwares  Aplicando os grupos de pr...
Como usar o Guia PMBOK® na engenharia de softwares Aplicando os grupos de pr...Robson Veiga Roy
 
CAPACITAÇÃO TÉCNICA DE JOVENS APRENDIZES
CAPACITAÇÃO TÉCNICA DE JOVENS APRENDIZESCAPACITAÇÃO TÉCNICA DE JOVENS APRENDIZES
CAPACITAÇÃO TÉCNICA DE JOVENS APRENDIZESMarco Coghi
 
Engenharia de software
Engenharia de softwareEngenharia de software
Engenharia de softwareJoao Johanes
 
Engenharia de Software - Unimep/Pronatec - Aula 3
Engenharia de Software - Unimep/Pronatec - Aula 3Engenharia de Software - Unimep/Pronatec - Aula 3
Engenharia de Software - Unimep/Pronatec - Aula 3André Phillip Bertoletti
 
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 JaCaMoNécio de Lima Veras
 
Qualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnitQualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnitDomingos Teruel
 
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
 
Dar caos a ordem
Dar caos a ordem Dar caos a ordem
Dar caos a ordem secomp2011
 
Metodologias ageis
Metodologias ageisMetodologias ageis
Metodologias ageisrenersson
 
Engenharia de Software I - Aula 1
Engenharia de Software I - Aula 1Engenharia de Software I - Aula 1
Engenharia de Software I - Aula 1Alessandro Almeida
 
Como a engenharia de software surgiu de uma crise científica
Como a engenharia de software surgiu de uma crise científicaComo a engenharia de software surgiu de uma crise científica
Como a engenharia de software surgiu de uma crise científicaAislan Fernandes
 
Como desenvolver e publicar aplicativos em Android no Google Play - Matheus P...
Como desenvolver e publicar aplicativos em Android no Google Play - Matheus P...Como desenvolver e publicar aplicativos em Android no Google Play - Matheus P...
Como desenvolver e publicar aplicativos em Android no Google Play - Matheus P...Matheus Piscioneri
 

Viewers also liked (20)

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
 
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
 
Conceitos de básicos de qualidade de software
Conceitos de básicos de qualidade de softwareConceitos de básicos de qualidade de software
Conceitos de básicos de qualidade de software
 
Engenharia De Software
Engenharia De SoftwareEngenharia De Software
Engenharia De Software
 
Engenharia Requisitos - Método RON
Engenharia Requisitos - Método RONEngenharia Requisitos - Método RON
Engenharia Requisitos - Método RON
 
Como usar o Guia PMBOK® na engenharia de softwares Aplicando os grupos de pr...
Como usar o Guia PMBOK® na engenharia de softwares  Aplicando os grupos de pr...Como usar o Guia PMBOK® na engenharia de softwares  Aplicando os grupos de pr...
Como usar o Guia PMBOK® na engenharia de softwares Aplicando os grupos de pr...
 
CAPACITAÇÃO TÉCNICA DE JOVENS APRENDIZES
CAPACITAÇÃO TÉCNICA DE JOVENS APRENDIZESCAPACITAÇÃO TÉCNICA DE JOVENS APRENDIZES
CAPACITAÇÃO TÉCNICA DE JOVENS APRENDIZES
 
Engenharia de software
Engenharia de softwareEngenharia de software
Engenharia de software
 
Engenharia de Software - Unimep/Pronatec - Aula 3
Engenharia de Software - Unimep/Pronatec - Aula 3Engenharia de Software - Unimep/Pronatec - Aula 3
Engenharia de Software - Unimep/Pronatec - Aula 3
 
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
 
Qualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnitQualidade no desenvolvimento de Software com TDD e PHPUnit
Qualidade no desenvolvimento de Software com TDD e PHPUnit
 
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
 
Dar caos a ordem
Dar caos a ordem Dar caos a ordem
Dar caos a ordem
 
Métodos ágeis de desenvolvimento2
Métodos ágeis de desenvolvimento2Métodos ágeis de desenvolvimento2
Métodos ágeis de desenvolvimento2
 
Desenvolvendo com Metodologias Ágeis
Desenvolvendo com Metodologias ÁgeisDesenvolvendo com Metodologias Ágeis
Desenvolvendo com Metodologias Ágeis
 
Metodologias ageis
Metodologias ageisMetodologias ageis
Metodologias ageis
 
Engenharia de Software I - Aula 1
Engenharia de Software I - Aula 1Engenharia de Software I - Aula 1
Engenharia de Software I - Aula 1
 
Como a engenharia de software surgiu de uma crise científica
Como a engenharia de software surgiu de uma crise científicaComo a engenharia de software surgiu de uma crise científica
Como a engenharia de software surgiu de uma crise científica
 
Como desenvolver e publicar aplicativos em Android no Google Play - Matheus P...
Como desenvolver e publicar aplicativos em Android no Google Play - Matheus P...Como desenvolver e publicar aplicativos em Android no Google Play - Matheus P...
Como desenvolver e publicar aplicativos em Android no Google Play - Matheus P...
 
Planejamento Niveis
Planejamento NiveisPlanejamento Niveis
Planejamento Niveis
 

Similar to Introdução à Engenharia de Software

Fundamentos Engenharia de Software.pptx
Fundamentos Engenharia de Software.pptxFundamentos Engenharia de Software.pptx
Fundamentos Engenharia de Software.pptxRoberto Nunes
 
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
 
Engenharia de Software introdução
Engenharia de Software    introduçãoEngenharia de Software    introdução
Engenharia de Software introduçãomiroslayer
 
Introdução a Engenharia de Software.pdf
Introdução a Engenharia de Software.pdfIntrodução a Engenharia de Software.pdf
Introdução a Engenharia de Software.pdfIvanFontainha
 
Engenharia de-software-1217199594686494-9
Engenharia de-software-1217199594686494-9Engenharia de-software-1217199594686494-9
Engenharia de-software-1217199594686494-9wilsonguns
 
Introdução a informática: do Windows ao Excel
Introdução a informática: do Windows ao ExcelIntrodução a informática: do Windows ao Excel
Introdução a informática: do Windows ao Excelmalviana1
 
Desenvolvimento de um microprocesso utilizando métricas e indicadores como a...
Desenvolvimento de um microprocesso utilizando métricas e indicadores como a...Desenvolvimento de um microprocesso utilizando métricas e indicadores como a...
Desenvolvimento de um microprocesso utilizando métricas e indicadores como a...Maicon Zerbielli
 
Analise e desenvolvimento
Analise e desenvolvimentoAnalise e desenvolvimento
Analise e desenvolvimentoGabriel Moura
 
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 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
 
Engenharia de Software Pressman
Engenharia de Software PressmanEngenharia de Software Pressman
Engenharia de Software PressmanSimoneinfo
 
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
 
Es aula01
Es   aula01Es   aula01
Es aula01Itaú
 

Similar to Introdução à Engenharia de Software (20)

Fundamentos Engenharia de Software.pptx
Fundamentos Engenharia de Software.pptxFundamentos Engenharia de Software.pptx
Fundamentos Engenharia de Software.pptx
 
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
 
Engenharia de Software introdução
Engenharia de Software    introduçãoEngenharia de Software    introdução
Engenharia de Software introdução
 
Introdução a Engenharia de Software.pdf
Introdução a Engenharia de Software.pdfIntrodução a Engenharia de Software.pdf
Introdução a Engenharia de Software.pdf
 
Engenharia de-software-1217199594686494-9
Engenharia de-software-1217199594686494-9Engenharia de-software-1217199594686494-9
Engenharia de-software-1217199594686494-9
 
Tudo são Dados - PHP Conference 2008
Tudo são Dados - PHP Conference 2008Tudo são Dados - PHP Conference 2008
Tudo são Dados - PHP Conference 2008
 
Engenharia de software
Engenharia de software Engenharia de software
Engenharia de software
 
Introdução a informática: do Windows ao Excel
Introdução a informática: do Windows ao ExcelIntrodução a informática: do Windows ao Excel
Introdução a informática: do Windows ao Excel
 
Desenvolvimento de um microprocesso utilizando métricas e indicadores como a...
Desenvolvimento de um microprocesso utilizando métricas e indicadores como a...Desenvolvimento de um microprocesso utilizando métricas e indicadores como a...
Desenvolvimento de um microprocesso utilizando métricas e indicadores como a...
 
Crise de software2
Crise de software2Crise de software2
Crise de software2
 
Analise e desenvolvimento
Analise e desenvolvimentoAnalise e desenvolvimento
Analise e desenvolvimento
 
Aula1 introducao engsw
Aula1 introducao engswAula1 introducao engsw
Aula1 introducao engsw
 
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
 
152191 11993
152191 11993152191 11993
152191 11993
 
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
 
Agilidade em projetos de software
Agilidade em projetos de softwareAgilidade em projetos de software
Agilidade em projetos de software
 
Engenharia de Software Pressman
Engenharia de Software PressmanEngenharia de Software Pressman
Engenharia de Software Pressman
 
Métodos Ágeis - Aula02
Métodos Ágeis - Aula02Métodos Ágeis - Aula02
Métodos Ágeis - Aula02
 
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
 
Es aula01
Es   aula01Es   aula01
Es aula01
 

More from 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 algoritmosNé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
 
Jason: Componentes personalizados
Jason: Componentes personalizados Jason: Componentes personalizados
Jason: Componentes personalizados Nécio de Lima Veras
 
Ambientes em Sistemas Multi-agentes
Ambientes em Sistemas Multi-agentesAmbientes em Sistemas Multi-agentes
Ambientes em Sistemas Multi-agentesNé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 agentsNé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 inteligentesNécio de Lima Veras
 
Processos iniciais do mapeamento OR
Processos iniciais do mapeamento ORProcessos iniciais do mapeamento OR
Processos iniciais do mapeamento ORNécio de Lima Veras
 
Introdução aos Sistemas operacionais
Introdução aos Sistemas operacionaisIntrodução aos Sistemas operacionais
Introdução aos Sistemas operacionaisNécio de Lima Veras
 

More from 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...
 
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
 
Introdução aos Sistemas operacionais
Introdução aos Sistemas operacionaisIntrodução aos Sistemas operacionais
Introdução aos Sistemas operacionais
 

Introdução à Engenharia de Software

  • 1. Prof. Nécio de Lima Veras Introdução à Engenharia de Software Objetivo: Perceber os conceitos básicos e aspectos introdutórios sobre Engenharia de Software.
  • 2. Aula 01: Ordem Software:  Conceitos;  Crise Histórica;  Mitos; Introdução à abordagem de projetos; Engenharia de Software:  Definição;  Modelos de Processos de Softwares;  Modelos de Gerência de Projetos;
  • 3. Software: Conceitos [...] uma forma híbrida, algo no domínio entre o concreto e o abstrato, entre o tangível e o intangível. [...] o desenvolvimento de produtos de software é visto como uma atividade mental, abstrata, solitária e criativa. Cox (apud GUERRA e ALVES, 2004, p. 1)
  • 4. Software: Conceitos Pressman (1997) diz que um livro didático poderia trazer a descrição de um software da seguinte forma:  Instruções (programas de computador) que, quando executadas, produzem a função e desempenho desejados;  Estruturas de dados que possibilitam que os programas manipulem adequadamente a informação;  Documentos que descrevem a operação e o uso dos programas;
  • 5. Software: Conceitos Sommerville (2003) complementa criando dois tipos diferentes:  Produtos Genéricos;  Produtos sob encomenda; Por tanto, Software é:  Produto (ou serviço) que possui um grande número de características próprias oriundas dos critérios de análise, codificação e documentação aplicados durante sua construção;
  • 6. Software: Reflexão sobre os conceitos Reflexões Será que essa Qual a relevância formalização já é de conhecer o suficiente para que está entendermos o que “escondido” por é realmente um traz de um software? software?
  • 7. Software: Crise Histórica (1968) Evolução do hardware; Softwares mais complexos com:  Custos maiores (não previstos);  Baixa confiabilidade;  Difícil manutenção; e  Desempenho abaixo do esperado; Percebeu-se que uma abordagem informal de desenvolvimento não era suficiente;  E quais as prováveis causas da crise?
  • 8. Software: Mitos 1 2 3 A equipe de A equipe possui Se os prazos desenvolvimento ferramentas de atrasam, pode-se desenvolvimento de dispõe de um adicionar mais software de última manual com pessoas ao grupo geração! Afinal lhes padrões e compramos os mais e tirar o atraso; procedimentos; novos computadores;
  • 9. Software: Mitos 4 5 6 Uma descrição Os requisitos de Assim que projeto modificam- escrevermos o geral dos objetivos se continuamente, programa e o é suficiente para se mas as mudanças colocarmos em escrever podem ser funcionamento programas e os facilmente nosso trabalho detalhes são vistos acomodadas, porque estará completo. posteriormente; o software é flexível.
  • 10. Software: Mitos 7 Enquanto não tiver o programa "funcionando", eu não terei realmente nenhuma maneira de avaliar sua qualidade.
  • 11. Quais foram as possíveis soluções para a crise? Reconhecer os problemas e causas; Desmascarar os Engenharia mitos; de Software Criar soluções que apresentem suporte ao desenvolvedor e que melhore a qualidade;
  • 13. Produtos de Software  Surge de ideias conceituais e reajustáveis;  É Intangível;  Possui escopo variável;  É dotado de incertezas constantes;  Difícil visualização do produto final.  Mas como obter um produto de software com qualidade diante de todas estas peculiaridades?
  • 14. Engenharia de Software ● A ideia foi incluir a disciplina de engenharia no desenvolvimento de software; ● A E.S. Engloba três elementos fundamentais:
  • 15. Engenharia de Software: definição Sommerville (2003):  Disciplina que trabalha todos os aspectos da produção de software, desde os estágios iniciais de especificação até a manutenção deste, depois que ele entrou em operação;  Não se dedica apenas aos processos técnicos de software, mas também: • Ao gerenciamento dos projetos; • Ao desenvolvimento de ferramentas, métodos e teorias que dêem apoio à produção de software; Por que não fazer uma analogia?
  • 16. Engenharia de Software: abrangência Métodos Métodos Ferramentas Ferramentas Procedimentos Procedimentos Planejamento, Análise, Projeto, Automação “Elo de Codificação, ligação” entre Teste e métodos e Manutenção ferramentas
  • 17. Engenharia de Software: Modelo de Processo de Software O que entendemos por processo de software?  Conjunto de atividades que geram produtos de software; Há quatro atividades fundamentais Há quatro atividades fundamentais Desenvolvimento Especificação de Validação de Evolução de de software software software Software
  • 18. Engenharia de Software: Modelo de Processo de Software Um modelo de processo de software é:  Uma descrição simplificada de um processo de software, abstraindo o processo real que está sendo aplicado; É constituído por:  Atividades de processos de software;  Produtos de software;  Definição de papeis das pessoas envolvidas;
  • 19. Exemplos de Modelos de Processos de Software O Modelo em cascata Desenvolvimento Desenvolvimento incremental evolucionário
  • 20. Reflexão sobre os modelos Esses modelos garantem o sucesso do software?  E as métricas de software?  E as garantias de qualidade? Como vimos, faz parte da definição de engenharia de software:  Não se dedica apenas aos processos técnicos de software, mas também ao gerenciamento dos projetos;
  • 21. Gerência de Projetos de Software A crise é passado?  E os softwares complexos? É preciso gerenciar projetos de software?  Considere: • Sistemas de Software; • Desenvolvimento colaborativo; Também existe modelos de gerenciamento?
  • 22. Modelos de Gerenciamento de Projetos  PMI (Project Management Institute):  Baseado em processos;  Alguns consideram muito burocrático;  Possui publicações reconhecidas internacionalmente, como o Guia PMBOK;  CMMI (Capability Maturity Model Integration):  Baseado em níveis de maturidade organizacional;  Encomendado e patrocinado pelo Pentágono, foi formulado pelo SEI (Software Engineering Institute);
  • 23. Modelos de Gerenciamento de Projetos  APM (Agile Project Management):  Criado em 2001 por um grupo chamado de Agile Alliance;  Possui um conjunto de princípios que são referências básicas para as metodologias ágeis;  Possui cinco objetivos-chave: • Inovação contínua; • Adaptabilidade do produto; • Entregas com cronograma reduzido; • Adaptabilidade do processo e das pessoas; • Resultados confiáveis;
  • 24. Modelo Ágil de Gerência de Projeto de Software – Visão Geral Fonte: Martins, 2007
  • 25. Considerações Finais Perspectivas para a área de Engenharia de Software:  O modelo brasileiro de melhoria dos processos de software (MPS.BR);
  • 26. Referências Bibliográficas  SOMMERVILLE, I. Engenharia de Software. 6ª. ed. São Paulo: Addison Wesley, 2003.  PRESSMAN, R. S. Engenharia de Software. São Paulo: Pearson Makron Books, 1997, Reimpressão 2007.  MARTINS, J. C. C. Técnicas para Gerenciamento de Projetos de Software. Rio de Janeiro: Brasport, 2007.  GUERRA, A. C., ALVES, A. M. Aquisição de produtos e serviços de software. Rio de Janeiro: Elsevier: 2004.  BASSI, D. Planejamento Ágil de Projetos. Engenharia de Software Magazine. DevMedia Group, ano I, n. 08, pág. 08-12, 2008.  PAULA, Wilson de Pádua Filho. Alguns Fundamentos da Engenharia de Software. Engenharia de Software Magazine. DevMedia Group, ano I, n. 01, pág. 04-08, 2007.