SlideShare uma empresa Scribd logo
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.

Mais conteúdo relacionado

Mais procurados

Metodologias de Desenvolvimento de Software
Metodologias de Desenvolvimento de SoftwareMetodologias de Desenvolvimento de Software
Metodologias de Desenvolvimento de Software
Álvaro Farias Pinheiro
 
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
 
Metodologias de análise e desenvolvimento de sistemas
Metodologias de análise e desenvolvimento de sistemasMetodologias de análise e desenvolvimento de sistemas
Metodologias de análise e desenvolvimento de sistemas
Susana Oliveira
 
Linguagem de programação
Linguagem de programação Linguagem de programação
Linguagem de programação
Marcos Gregorio
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
Marcelo Yamaguti
 
Engenharia de Requisitos
Engenharia de RequisitosEngenharia de Requisitos
Engenharia de Requisitos
Cloves da Rocha
 
IHC - Slide 2 - Usabilidade e Princípios de Design
IHC - Slide 2 - Usabilidade e Princípios de DesignIHC - Slide 2 - Usabilidade e Princípios de Design
IHC - Slide 2 - Usabilidade e Princípios de Design
Márcio Darlen Lopes Cavalcante
 
Aula 1 - Introdução ao Mobile
Aula 1 - Introdução ao MobileAula 1 - Introdução ao Mobile
Aula 1 - Introdução ao Mobile
Cloves da Rocha
 
Aula 2 - Processos de Software
Aula 2 - Processos de SoftwareAula 2 - Processos de Software
Aula 2 - Processos de Software
Rudson Kiyoshi Souza Carvalho
 
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
Franklin Matos Correia
 
1.Introdução Banco de Dados
1.Introdução Banco de Dados1.Introdução Banco de Dados
1.Introdução Banco de Dados
vini_campos
 
informatica-basica-1.4.ppt
informatica-basica-1.4.pptinformatica-basica-1.4.ppt
informatica-basica-1.4.ppt
PauloCarvalho668773
 
Desenvolvimento Mobile
Desenvolvimento MobileDesenvolvimento Mobile
Desenvolvimento Mobile
Elton Minetto
 
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
thomasdacosta
 
O Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de SoftwareO Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de Software
Camilo de Melo
 
Plano de aula sobre HTML básico
Plano de aula sobre HTML básicoPlano de aula sobre HTML básico
Plano de aula sobre HTML básico
Silvio Sales do Nascimento Júnior
 
Java modulo 01 - Introdução
Java modulo 01 - IntroduçãoJava modulo 01 - Introdução
Java modulo 01 - Introdução
Professor Samuel Ribeiro
 
Análise e Projeto de Sistemas
Análise e Projeto de SistemasAnálise e Projeto de Sistemas
Análise e Projeto de Sistemas
Guilherme
 
Lógica de Programação - Entrada/saída de dados
Lógica de Programação - Entrada/saída de dadosLógica de Programação - Entrada/saída de dados
Lógica de Programação - Entrada/saída de dados
Wesley R. Bezerra
 
Gerenciamento de Arquivos Nos Sistemas Operacionais
Gerenciamento de Arquivos Nos Sistemas OperacionaisGerenciamento de Arquivos Nos Sistemas Operacionais
Gerenciamento de Arquivos Nos Sistemas Operacionais
Leandro Júnior
 

Mais procurados (20)

Metodologias de Desenvolvimento de Software
Metodologias de Desenvolvimento de SoftwareMetodologias de Desenvolvimento de Software
Metodologias de Desenvolvimento 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
 
Metodologias de análise e desenvolvimento de sistemas
Metodologias de análise e desenvolvimento de sistemasMetodologias de análise e desenvolvimento de sistemas
Metodologias de análise e desenvolvimento de sistemas
 
Linguagem de programação
Linguagem de programação Linguagem de programação
Linguagem de programação
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Engenharia de Requisitos
Engenharia de RequisitosEngenharia de Requisitos
Engenharia de Requisitos
 
IHC - Slide 2 - Usabilidade e Princípios de Design
IHC - Slide 2 - Usabilidade e Princípios de DesignIHC - Slide 2 - Usabilidade e Princípios de Design
IHC - Slide 2 - Usabilidade e Princípios de Design
 
Aula 1 - Introdução ao Mobile
Aula 1 - Introdução ao MobileAula 1 - Introdução ao Mobile
Aula 1 - Introdução ao Mobile
 
Aula 2 - Processos de Software
Aula 2 - Processos de SoftwareAula 2 - Processos de Software
Aula 2 - Processos 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
 
1.Introdução Banco de Dados
1.Introdução Banco de Dados1.Introdução Banco de Dados
1.Introdução Banco de Dados
 
informatica-basica-1.4.ppt
informatica-basica-1.4.pptinformatica-basica-1.4.ppt
informatica-basica-1.4.ppt
 
Desenvolvimento Mobile
Desenvolvimento MobileDesenvolvimento Mobile
Desenvolvimento Mobile
 
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
 
O Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de SoftwareO Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de Software
 
Plano de aula sobre HTML básico
Plano de aula sobre HTML básicoPlano de aula sobre HTML básico
Plano de aula sobre HTML básico
 
Java modulo 01 - Introdução
Java modulo 01 - IntroduçãoJava modulo 01 - Introdução
Java modulo 01 - Introdução
 
Análise e Projeto de Sistemas
Análise e Projeto de SistemasAnálise e Projeto de Sistemas
Análise e Projeto de Sistemas
 
Lógica de Programação - Entrada/saída de dados
Lógica de Programação - Entrada/saída de dadosLógica de Programação - Entrada/saída de dados
Lógica de Programação - Entrada/saída de dados
 
Gerenciamento de Arquivos Nos Sistemas Operacionais
Gerenciamento de Arquivos Nos Sistemas OperacionaisGerenciamento de Arquivos Nos Sistemas Operacionais
Gerenciamento de Arquivos Nos Sistemas Operacionais
 

Destaque

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
Vinicius Garcia
 
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
Ronney Moreira de Castro
 
Engenharia Requisitos - Método RON
Engenharia Requisitos - Método RONEngenharia Requisitos - Método RON
Engenharia Requisitos - Método RON
Eduardo 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 APRENDIZES
Marco Coghi
 
Engenharia de software
Engenharia de softwareEngenharia de software
Engenharia de software
Joao 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 3
André 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 JaCaMo
Né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 PHPUnit
Domingos 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 2
André Phillip Bertoletti
 
Dar caos a ordem
Dar caos a ordem Dar caos a ordem
Dar caos a ordem
secomp2011
 
Métodos ágeis de desenvolvimento2
Métodos ágeis de desenvolvimento2Métodos ágeis de desenvolvimento2
Métodos ágeis de desenvolvimento2
GrupoAlves - professor
 
Desenvolvendo com Metodologias Ágeis
Desenvolvendo com Metodologias ÁgeisDesenvolvendo com Metodologias Ágeis
Desenvolvendo com Metodologias Ágeis
Luiz Henrique Rauber Rodrigues
 
Metodologias ageis
Metodologias ageisMetodologias ageis
Metodologias ageis
renersson
 
Engenharia de Software I - Aula 1
Engenharia de Software I - Aula 1Engenharia de Software I - Aula 1
Engenharia de Software I - Aula 1
Alessandro 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ífica
Aislan 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
 
Planejamento Niveis
Planejamento NiveisPlanejamento Niveis
Planejamento Niveis
Diego Pacheco
 
Engenharia de Software - Unimep/Pronatec - Aula 1
Engenharia de Software - Unimep/Pronatec - Aula 1Engenharia de Software - Unimep/Pronatec - Aula 1
Engenharia de Software - Unimep/Pronatec - Aula 1
André Phillip Bertoletti
 
Metodologias Ágeis no Estilo Dr House
Metodologias Ágeis no Estilo Dr HouseMetodologias Ágeis no Estilo Dr House
Metodologias Ágeis no Estilo Dr House
Eduardo Bregaida
 

Destaque (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
 
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 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
 
Engenharia de Software - Unimep/Pronatec - Aula 1
Engenharia de Software - Unimep/Pronatec - Aula 1Engenharia de Software - Unimep/Pronatec - Aula 1
Engenharia de Software - Unimep/Pronatec - Aula 1
 
Metodologias Ágeis no Estilo Dr House
Metodologias Ágeis no Estilo Dr HouseMetodologias Ágeis no Estilo Dr House
Metodologias Ágeis no Estilo Dr House
 

Semelhante a Introdução à Engenharia de Software

Fundamentos Engenharia de Software.pptx
Fundamentos Engenharia de Software.pptxFundamentos Engenharia de Software.pptx
Fundamentos Engenharia de Software.pptx
Roberto 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 3
spawally
 
Engenharia de Software introdução
Engenharia de Software    introduçãoEngenharia de Software    introdução
Engenharia de Software introdução
miroslayer
 
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
IvanFontainha
 
Engenharia de-software-1217199594686494-9
Engenharia de-software-1217199594686494-9Engenharia de-software-1217199594686494-9
Engenharia de-software-1217199594686494-9
wilsonguns
 
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
ECRAYON Tecnologia Criativa
 
Engenharia de software
Engenharia de software Engenharia de software
Engenharia de software
MarcosSilva941136
 
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
malviana1
 
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
 
Crise de software2
Crise de software2Crise de software2
Crise de software2
Tiago Pinhão
 
Analise e desenvolvimento
Analise e desenvolvimentoAnalise e desenvolvimento
Analise e desenvolvimento
Gabriel Moura
 
Aula1 introducao engsw
Aula1 introducao engswAula1 introducao engsw
Aula1 introducao engsw
Computação Depressão
 
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
 
152191 11993
152191 11993152191 11993
152191 11993
Junior Abs
 
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
Erivelton Silva Rocha
 
Agilidade em projetos de software
Agilidade em projetos de softwareAgilidade em projetos de software
Agilidade em projetos de software
Paulo Henrique Filho
 
Engenharia de Software Pressman
Engenharia de Software PressmanEngenharia de Software Pressman
Engenharia de Software Pressman
Simoneinfo
 
Métodos Ágeis - Aula02
Métodos Ágeis - Aula02Métodos Ágeis - Aula02
Métodos Ágeis - Aula02
Adriano Bertucci
 
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
Waldemar Roberti
 
Es aula01
Es   aula01Es   aula01
Es aula01
Itaú
 

Semelhante a 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
 

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