SlideShare uma empresa Scribd logo
Introdução a Engenharia de
         Software
      CJR – Empresa Júnior de Computação
Livro-texto



Compre                 Compre
1 Introdução
Ariane 5, 1996

                                                                US$ 7.000.000.000
                                                          “exception was caused during execution of a data
                                                        conversion from 64-bit floating point to 16-bit signed
                                                                           integer value”


                                                                  US$ 327.600.000
 Mars Polar Lander, 1999   Mars Climate Orbiter, 1998
Apagão no nordeste dos EUA, 2003
55 milhões de pessoas afetadas




 http://en.wikipedia.org/wiki/Northeast_blackout_of_2003
30%         “7 out of every 10 major weapons development programs
            are encountering software problems and the rate is
      70%   increasing.”
Valor de mercado da indústria de software



US$303.8 Bilhões                                                    Em 2008




                                            +6.5% relativo a 2007
“Average cancelled project in U.S. is about a year behind schedule and has
     consumed 200% of expected budget” (Capers Jones).




“Work on cancelled projects comprises about 15% of total U.S. software efforts, amounting
to as much as $14 billion dollars in 1993” (Capers Jones).
Software > Hardware
        em preço...
Manutenção >> Desenvolvimento
% Projetos
                                                                                          Software é entregue:
2008                                                                                         •   depois do prazo
2006                                                                                         •   acima do orçamento
2004                                                                                         •   com falhas
2000                                                                                         •   não atende a necessidade do cliente
1998
1996
1994

       0   10      20       30        40        50       60       70   80      90   100
                                 Sucesso      Falha     Mudança

                     CHAOS Report – Standish Group
           http://www.crystalballservices.com/Portals/0/img/ChaosReportGraph.jpg
                        http://blog.standishgroup.com/pmresearch
Cutter Consortium (2002):
     78% das empresas de TI se envolveram em disputas judiciais
     por conta de software entregue
     67% dos casos o software não entregava o pedido
     56% as datas prometidas não foram cumpridas
     45% apresentavam falhas graves
            http://www.cutter.com/research/2002/edge020409.html
Então...
1      Software


    Software = Programa de Computador + Documentação


                        Genéricos: especificação por parte da organização desenvolvedora

    Software                     Produtos genéricos que são customizados para empresas

                        Personalizados: especificação por parte do cliente
1      Engenharia de Software



    “Engenharia de software é a criação e a utilização de sólidos princípios de engenharia
    a fim de obter software de maneira econômica, que seja confiável e que trabalhe
    eficientemente em máquinas reais.”

                                                     Primeira Definição de Software – Friedrich Ludwig Bauer
1      Engenharia de Software


    Engenharia de Software ≠ Ciência da Computação




                                                     Teorias e fundamentos sobre a
                 Prática do desenvolvimento e        computação em geral
                 entrega de software                 •   Algoritmos
                                                     •   Arquiteturas
                 •   Processo de desenvolvimento
                                                     •   SOs
                 •   Gerenciamento de Projetos
1        Áreas da Engenharia de Software



     Requisitos de                          Construção de                               Manutenção de
                      Projeto de Software                   Teste de Software
       Software                               Software                                    Software


                                                             Ferramentas e
      Gerência de        Gerência da         Processo de
                                                              Métodos da                 Qualidade de
    Configuração de     Engenharia de       Engenharia de
                                                             Engenharia de                 Software
       Software           Software            Software
                                                                Software




                                                                        !       Sim, é tudo link pra Wikipédia
1       Processo de Software




    Especificação     Desenvolvimento   Validação   Evolução
1       Modelo de Processo de Software

                    É uma representação do processo a partir de uma perspectiva específica. Fornece
                                           apenas parte das informações.




    Exemplos de modelos:


                                                                             Baseada em
                    Cascata           Iterativo              Ágil            Componentes       Outros
1   Mas o quê um bom software precisa?


    Manutenibilidade                             Ele deve ser fácil de se evoluir


    Dependabilidade e
                        Deve ser confiável, não deve causar danos físicos ou econômicos no caso de falha.
       Segurança


        Eficiência                      Não deve utilizar mais recursos do que precisa.



       Usabilidade                  Deve ser de fácil uso e compatível com outros softwares
1    Desafios da engenharia de software


      Heterogeneidade          Deve ser capaz de se comportar corretamente em diferentes situações. (Ex: web e mobile)



          Entrega                          Deve ser entregue mais rapidamente mas sem perder qualidade.



         Confiança                                 Deve estar disponível sempre que precisarmos.


    Mudanças sociais e de
                            Deve ser possível atualizá-lo/melhorá-lo para que acompanhe mudanças das empresas e sociais.
         negócios
1          Fundamentos da engenharia de software


           Utilizar modelo de processo de software conhecido. Cada modelo é mais adequado para um tipo de software.



    O software deve se comportar da forma esperada, sem exibir falhas e garantir segurança, além disso ele deve, sempre que
                                          necessário, estar disponível para o usuário.



Entender o quê o software deve fazer de acordo com cada usuário que o utilizará, além de gerenciar os desejos de cada usuário para
                                               que estes se adequem ao orçamento.



  Você deve utilizar todos os recursos disponíveis, ou seja, se você pode então reutilize um software ao invés de criar um do zero.
A web...
+ Pessoas
+ Riscos
+ Diversidade de plataformas
                                  + Problemas
Bibliografia do Curso (Sites)



•   http://www.ic.uff.br/~viviane.silva/2010.1/es1/aulas.html
•   http://dinobrasilis.pro.br/mat_quali.html
•   http://www.les.inf.puc-rio.br/wiki/index.php/Introdu%C3%A7%C3%A3o_a_Engenharia_de_Software_de_Sistemas_Multiagentes_em_2005.1
•   http://www.ime.usp.br/~poliana/Eng%20de%20sw/
•   http://www.dcce.ibilce.unesp.br/~ines/cursos/eng_soft/
•   http://www.cin.ufpe.br/~processos/
•   http://www.cin.ufpe.br/~if720/programacao.html
•   http://www.softdevteam.com/Incremental-lifecycle.asp
•   http://lgarciasbr.wordpress.com/2011/10/19/roi/
Bibliografia do Curso (Sites)


• Stanford
    • http://www.stanford.edu/class/cs295/

• Berkley
   • https://sites.google.com/site/ucbsaas/

• MIT
   • http://sunnyday.mit.edu/16.355/

• MIT
   • http://ocw.mit.edu/courses/aeronautics-and-astronautics/16-355j-software-engineering-concepts-
      fall-2005/lecture-notes/
CJR
                                 Empresa Júnior de Computação da UnB



   Renato Leal                        contato@cjr.org.br
                                renatodossantosleal@gmail.com


     renatoleal@cjr.org.br
renatodossantosleal@gmail.com

Mais conteúdo relacionado

Mais procurados

Aula 2 - Processos de Software
Aula 2 - Processos de SoftwareAula 2 - Processos de Software
Aula 2 - Processos de Software
Rudson Kiyoshi Souza Carvalho
 
Analise de Requisitos Software
Analise de Requisitos SoftwareAnalise de Requisitos Software
Analise de Requisitos Software
Rildo (@rildosan) Santos
 
Capitulo 02 sommerville
Capitulo 02 sommervilleCapitulo 02 sommerville
Capitulo 02 sommerville
Fabricio Schlag
 
CMMI
CMMICMMI
Aula 6 - Qualidade de Software
Aula 6 - Qualidade de SoftwareAula 6 - Qualidade de Software
Aula 6 - Qualidade de Software
Leinylson Fontinele
 
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
 
Teste de software - aula 01 (motivação)
Teste de software - aula 01 (motivação)Teste de software - aula 01 (motivação)
Teste de software - aula 01 (motivação)
Elmano Cavalcanti
 
Modelos de Engenharia de Software
Modelos de Engenharia de SoftwareModelos de Engenharia de Software
Modelos de Engenharia de Software
Nathalia Sautchuk Patricio
 
Qualidade de Software - Introdução
Qualidade de Software - Introdução Qualidade de Software - Introdução
Qualidade de Software - Introdução
Elaine Cecília Gatto
 
Análise e Projeto de Sistemas
Análise e Projeto de SistemasAnálise e Projeto de Sistemas
Análise e Projeto de Sistemas
Guilherme
 
Aula Modelos de Processos Tradicionais para Desenvolvimento de Software
Aula Modelos de Processos Tradicionais para Desenvolvimento de Software Aula Modelos de Processos Tradicionais para Desenvolvimento de Software
Aula Modelos de Processos Tradicionais para Desenvolvimento de Software
Cloves da Rocha
 
X-Zone - Garantia da Qualidade de Software
X-Zone - Garantia da Qualidade de SoftwareX-Zone - Garantia da Qualidade de Software
X-Zone - Garantia da Qualidade de Software
AlexandreBartie
 
Introducao swebok
Introducao swebokIntroducao swebok
Introducao swebok
Crishna Irion
 
Teste de Software
Teste de SoftwareTeste de Software
Teste de Software
Sérgio Souza Costa
 
Ferramentas case
Ferramentas caseFerramentas case
Ferramentas case
Daniel Paulo de Assis
 
Validação e Testes de software
Validação e Testes de softwareValidação e Testes de software
Validação e Testes de software
Rondinelli Mesquita
 
Aula 05 - Java Script Básico
Aula 05 -  Java Script BásicoAula 05 -  Java Script Básico
Aula 05 - Java Script Básico
Fabio Moura Pereira
 
Teste de software
Teste de softwareTeste de software
Teste de software
COTIC-PROEG (UFPA)
 
Fundamentos de Testes de Software
Fundamentos de Testes de SoftwareFundamentos de Testes de Software
Fundamentos de Testes de Software
Álvaro Farias Pinheiro
 
Noções em teste de software e introdução a automação
Noções em teste de software e introdução a automaçãoNoções em teste de software e introdução a automação
Noções em teste de software e introdução a automação
Sandy Maciel
 

Mais procurados (20)

Aula 2 - Processos de Software
Aula 2 - Processos de SoftwareAula 2 - Processos de Software
Aula 2 - Processos de Software
 
Analise de Requisitos Software
Analise de Requisitos SoftwareAnalise de Requisitos Software
Analise de Requisitos Software
 
Capitulo 02 sommerville
Capitulo 02 sommervilleCapitulo 02 sommerville
Capitulo 02 sommerville
 
CMMI
CMMICMMI
CMMI
 
Aula 6 - Qualidade de Software
Aula 6 - Qualidade de SoftwareAula 6 - Qualidade de Software
Aula 6 - Qualidade 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
 
Teste de software - aula 01 (motivação)
Teste de software - aula 01 (motivação)Teste de software - aula 01 (motivação)
Teste de software - aula 01 (motivação)
 
Modelos de Engenharia de Software
Modelos de Engenharia de SoftwareModelos de Engenharia de Software
Modelos de Engenharia de Software
 
Qualidade de Software - Introdução
Qualidade de Software - Introdução Qualidade de Software - Introdução
Qualidade de Software - 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
 
Aula Modelos de Processos Tradicionais para Desenvolvimento de Software
Aula Modelos de Processos Tradicionais para Desenvolvimento de Software Aula Modelos de Processos Tradicionais para Desenvolvimento de Software
Aula Modelos de Processos Tradicionais para Desenvolvimento de Software
 
X-Zone - Garantia da Qualidade de Software
X-Zone - Garantia da Qualidade de SoftwareX-Zone - Garantia da Qualidade de Software
X-Zone - Garantia da Qualidade de Software
 
Introducao swebok
Introducao swebokIntroducao swebok
Introducao swebok
 
Teste de Software
Teste de SoftwareTeste de Software
Teste de Software
 
Ferramentas case
Ferramentas caseFerramentas case
Ferramentas case
 
Validação e Testes de software
Validação e Testes de softwareValidação e Testes de software
Validação e Testes de software
 
Aula 05 - Java Script Básico
Aula 05 -  Java Script BásicoAula 05 -  Java Script Básico
Aula 05 - Java Script Básico
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
Fundamentos de Testes de Software
Fundamentos de Testes de SoftwareFundamentos de Testes de Software
Fundamentos de Testes de Software
 
Noções em teste de software e introdução a automação
Noções em teste de software e introdução a automaçãoNoções em teste de software e introdução a automação
Noções em teste de software e introdução a automação
 

Destaque

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
 
Introdução à Engenharia de Software (parte II)
Introdução à Engenharia de Software (parte II)Introdução à Engenharia de Software (parte II)
Introdução à Engenharia de Software (parte II)
Nécio de Lima Veras
 
Gestão de Projetos (25/08/2014)
Gestão de Projetos (25/08/2014)Gestão de Projetos (25/08/2014)
Gestão de Projetos (25/08/2014)
Alessandro Almeida
 
Ciclo de vida de software
Ciclo de vida de software Ciclo de vida de software
Ciclo de vida de software
caricati
 
Desenvolvimento de Jogos - Mercado Parte 2
Desenvolvimento de Jogos - Mercado Parte 2Desenvolvimento de Jogos - Mercado Parte 2
Desenvolvimento de Jogos - Mercado Parte 2
Fabio Moura Pereira
 
Engenharia de Software para Jogos
Engenharia de  Software para JogosEngenharia de  Software para Jogos
Engenharia de Software para Jogos
Ricardo Leite
 
Introdução à Engenharia de Software
Introdução à Engenharia de SoftwareIntrodução à Engenharia de Software
Introdução à Engenharia de Software
elliando dias
 
Engenharia de Software Educacional
Engenharia de Software EducacionalEngenharia de Software Educacional
Engenharia de Software Educacional
Lanylldo Araujo
 
Universidade federal de alagoas ufal
Universidade federal de alagoas ufalUniversidade federal de alagoas ufal
Universidade federal de alagoas ufal
Samária Maria
 
Softwares educacionais
Softwares educacionaisSoftwares educacionais
Softwares educacionais
Naysa Taboada
 
Engenharia de software aplicada ao software educacional: desafios, problemas ...
Engenharia de software aplicada ao software educacional: desafios, problemas ...Engenharia de software aplicada ao software educacional: desafios, problemas ...
Engenharia de software aplicada ao software educacional: desafios, problemas ...
sergiocrespo
 
Padrões de Projeto para Jogos
Padrões de Projeto para JogosPadrões de Projeto para Jogos
Padrões de Projeto para Jogos
Robson de Negreiros
 
Ciclo de vida de software
Ciclo de vida de softwareCiclo de vida de software
Ciclo de vida de software
diha36
 
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
 
Exemplo. plano de aula
Exemplo. plano de aulaExemplo. plano de aula
Exemplo. plano de aula
Bárbara Caldeira
 

Destaque (15)

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
 
Introdução à Engenharia de Software (parte II)
Introdução à Engenharia de Software (parte II)Introdução à Engenharia de Software (parte II)
Introdução à Engenharia de Software (parte II)
 
Gestão de Projetos (25/08/2014)
Gestão de Projetos (25/08/2014)Gestão de Projetos (25/08/2014)
Gestão de Projetos (25/08/2014)
 
Ciclo de vida de software
Ciclo de vida de software Ciclo de vida de software
Ciclo de vida de software
 
Desenvolvimento de Jogos - Mercado Parte 2
Desenvolvimento de Jogos - Mercado Parte 2Desenvolvimento de Jogos - Mercado Parte 2
Desenvolvimento de Jogos - Mercado Parte 2
 
Engenharia de Software para Jogos
Engenharia de  Software para JogosEngenharia de  Software para Jogos
Engenharia de Software para Jogos
 
Introdução à Engenharia de Software
Introdução à Engenharia de SoftwareIntrodução à Engenharia de Software
Introdução à Engenharia de Software
 
Engenharia de Software Educacional
Engenharia de Software EducacionalEngenharia de Software Educacional
Engenharia de Software Educacional
 
Universidade federal de alagoas ufal
Universidade federal de alagoas ufalUniversidade federal de alagoas ufal
Universidade federal de alagoas ufal
 
Softwares educacionais
Softwares educacionaisSoftwares educacionais
Softwares educacionais
 
Engenharia de software aplicada ao software educacional: desafios, problemas ...
Engenharia de software aplicada ao software educacional: desafios, problemas ...Engenharia de software aplicada ao software educacional: desafios, problemas ...
Engenharia de software aplicada ao software educacional: desafios, problemas ...
 
Padrões de Projeto para Jogos
Padrões de Projeto para JogosPadrões de Projeto para Jogos
Padrões de Projeto para Jogos
 
Ciclo de vida de software
Ciclo de vida de softwareCiclo de vida de software
Ciclo de vida de software
 
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
 
Exemplo. plano de aula
Exemplo. plano de aulaExemplo. plano de aula
Exemplo. plano de aula
 

Semelhante a Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 1

Engenharia de software
Engenharia de software Engenharia de software
Engenharia de software
MarcosSilva941136
 
Es aula01
Es   aula01Es   aula01
Es aula01
Itaú
 
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
 
Engenharia de Software Aula 1 - Intro
Engenharia de Software Aula 1 - IntroEngenharia de Software Aula 1 - Intro
Engenharia de Software Aula 1 - Intro
Rudson Kiyoshi Souza Carvalho
 
Fundamentos Engenharia de Software.pptx
Fundamentos Engenharia de Software.pptxFundamentos Engenharia de Software.pptx
Fundamentos Engenharia de Software.pptx
Roberto Nunes
 
Aula1 introducao engsw
Aula1 introducao engswAula1 introducao engsw
Aula1 introducao engsw
Computação Depressão
 
Aula 1 introdução à engenharia de software1 (1)
Aula 1   introdução à engenharia de software1 (1)Aula 1   introdução à engenharia de software1 (1)
Aula 1 introdução à engenharia de software1 (1)
Tiago Vizoto
 
DevOps e App Insights
DevOps e App InsightsDevOps e App Insights
DevOps e App Insights
Guilherme Cardoso
 
Crise de software2
Crise de software2Crise de software2
Crise de software2
Tiago Pinhão
 
Senac QSS - 1) Intro
Senac QSS - 1) IntroSenac QSS - 1) Intro
Senac QSS - 1) Intro
lcbj
 
DevOps... O caminho! - Monitoramento de aplicações com App Insights
DevOps... O caminho! - Monitoramento de aplicações com App InsightsDevOps... O caminho! - Monitoramento de aplicações com App Insights
DevOps... O caminho! - Monitoramento de aplicações com App Insights
Adriano Bertucci
 
Qualidade de Software com Microsoft Visual Studio
Qualidade de Software com Microsoft Visual StudioQualidade de Software com Microsoft Visual Studio
Qualidade de Software com Microsoft Visual Studio
Adriano Bertucci
 
Engenharia de software
Engenharia de softwareEngenharia de software
Engenharia de software
EnricoGerezCamponoga
 
Engenharia de software
Engenharia de software Engenharia de software
Engenharia de software
Kadu Kerybrowser
 
Aula 02
Aula 02Aula 02
Engenharia de Software introdução
Engenharia de Software    introduçãoEngenharia de Software    introdução
Engenharia de Software introdução
miroslayer
 
Dba Testes Gerentes B2
Dba Testes Gerentes B2Dba Testes Gerentes B2
Dba Testes Gerentes B2
Leonardo Molinari
 
152191 11993
152191 11993152191 11993
152191 11993
Junior Abs
 
1 Qss
1 Qss1 Qss
1 Qss
lcbj
 
Á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
Elaine Cecília Gatto
 

Semelhante a Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 1 (20)

Engenharia de software
Engenharia de software Engenharia de software
Engenharia de software
 
Es aula01
Es   aula01Es   aula01
Es aula01
 
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
 
Engenharia de Software Aula 1 - Intro
Engenharia de Software Aula 1 - IntroEngenharia de Software Aula 1 - Intro
Engenharia de Software Aula 1 - Intro
 
Fundamentos Engenharia de Software.pptx
Fundamentos Engenharia de Software.pptxFundamentos Engenharia de Software.pptx
Fundamentos Engenharia de Software.pptx
 
Aula1 introducao engsw
Aula1 introducao engswAula1 introducao engsw
Aula1 introducao engsw
 
Aula 1 introdução à engenharia de software1 (1)
Aula 1   introdução à engenharia de software1 (1)Aula 1   introdução à engenharia de software1 (1)
Aula 1 introdução à engenharia de software1 (1)
 
DevOps e App Insights
DevOps e App InsightsDevOps e App Insights
DevOps e App Insights
 
Crise de software2
Crise de software2Crise de software2
Crise de software2
 
Senac QSS - 1) Intro
Senac QSS - 1) IntroSenac QSS - 1) Intro
Senac QSS - 1) Intro
 
DevOps... O caminho! - Monitoramento de aplicações com App Insights
DevOps... O caminho! - Monitoramento de aplicações com App InsightsDevOps... O caminho! - Monitoramento de aplicações com App Insights
DevOps... O caminho! - Monitoramento de aplicações com App Insights
 
Qualidade de Software com Microsoft Visual Studio
Qualidade de Software com Microsoft Visual StudioQualidade de Software com Microsoft Visual Studio
Qualidade de Software com Microsoft Visual Studio
 
Engenharia de software
Engenharia de softwareEngenharia de software
Engenharia de software
 
Engenharia de software
Engenharia de software Engenharia de software
Engenharia de software
 
Aula 02
Aula 02Aula 02
Aula 02
 
Engenharia de Software introdução
Engenharia de Software    introduçãoEngenharia de Software    introdução
Engenharia de Software introdução
 
Dba Testes Gerentes B2
Dba Testes Gerentes B2Dba Testes Gerentes B2
Dba Testes Gerentes B2
 
152191 11993
152191 11993152191 11993
152191 11993
 
1 Qss
1 Qss1 Qss
1 Qss
 
Á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
 

Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 1

  • 1. Introdução a Engenharia de Software CJR – Empresa Júnior de Computação
  • 4. Ariane 5, 1996 US$ 7.000.000.000 “exception was caused during execution of a data conversion from 64-bit floating point to 16-bit signed integer value” US$ 327.600.000 Mars Polar Lander, 1999 Mars Climate Orbiter, 1998
  • 5. Apagão no nordeste dos EUA, 2003 55 milhões de pessoas afetadas http://en.wikipedia.org/wiki/Northeast_blackout_of_2003
  • 6. 30% “7 out of every 10 major weapons development programs are encountering software problems and the rate is 70% increasing.”
  • 7. Valor de mercado da indústria de software US$303.8 Bilhões Em 2008 +6.5% relativo a 2007
  • 8. “Average cancelled project in U.S. is about a year behind schedule and has consumed 200% of expected budget” (Capers Jones). “Work on cancelled projects comprises about 15% of total U.S. software efforts, amounting to as much as $14 billion dollars in 1993” (Capers Jones).
  • 9. Software > Hardware em preço...
  • 11. % Projetos Software é entregue: 2008 • depois do prazo 2006 • acima do orçamento 2004 • com falhas 2000 • não atende a necessidade do cliente 1998 1996 1994 0 10 20 30 40 50 60 70 80 90 100 Sucesso Falha Mudança CHAOS Report – Standish Group http://www.crystalballservices.com/Portals/0/img/ChaosReportGraph.jpg http://blog.standishgroup.com/pmresearch
  • 12. Cutter Consortium (2002): 78% das empresas de TI se envolveram em disputas judiciais por conta de software entregue 67% dos casos o software não entregava o pedido 56% as datas prometidas não foram cumpridas 45% apresentavam falhas graves http://www.cutter.com/research/2002/edge020409.html
  • 14. 1 Software Software = Programa de Computador + Documentação Genéricos: especificação por parte da organização desenvolvedora Software Produtos genéricos que são customizados para empresas Personalizados: especificação por parte do cliente
  • 15. 1 Engenharia de Software “Engenharia de software é a criação e a utilização de sólidos princípios de engenharia a fim de obter software de maneira econômica, que seja confiável e que trabalhe eficientemente em máquinas reais.” Primeira Definição de Software – Friedrich Ludwig Bauer
  • 16. 1 Engenharia de Software Engenharia de Software ≠ Ciência da Computação Teorias e fundamentos sobre a Prática do desenvolvimento e computação em geral entrega de software • Algoritmos • Arquiteturas • Processo de desenvolvimento • SOs • Gerenciamento de Projetos
  • 17. 1 Áreas da Engenharia de Software Requisitos de Construção de Manutenção de Projeto de Software Teste de Software Software Software Software Ferramentas e Gerência de Gerência da Processo de Métodos da Qualidade de Configuração de Engenharia de Engenharia de Engenharia de Software Software Software Software Software ! Sim, é tudo link pra Wikipédia
  • 18. 1 Processo de Software Especificação Desenvolvimento Validação Evolução
  • 19. 1 Modelo de Processo de Software É uma representação do processo a partir de uma perspectiva específica. Fornece apenas parte das informações. Exemplos de modelos: Baseada em Cascata Iterativo Ágil Componentes Outros
  • 20. 1 Mas o quê um bom software precisa? Manutenibilidade Ele deve ser fácil de se evoluir Dependabilidade e Deve ser confiável, não deve causar danos físicos ou econômicos no caso de falha. Segurança Eficiência Não deve utilizar mais recursos do que precisa. Usabilidade Deve ser de fácil uso e compatível com outros softwares
  • 21. 1 Desafios da engenharia de software Heterogeneidade Deve ser capaz de se comportar corretamente em diferentes situações. (Ex: web e mobile) Entrega Deve ser entregue mais rapidamente mas sem perder qualidade. Confiança Deve estar disponível sempre que precisarmos. Mudanças sociais e de Deve ser possível atualizá-lo/melhorá-lo para que acompanhe mudanças das empresas e sociais. negócios
  • 22. 1 Fundamentos da engenharia de software Utilizar modelo de processo de software conhecido. Cada modelo é mais adequado para um tipo de software. O software deve se comportar da forma esperada, sem exibir falhas e garantir segurança, além disso ele deve, sempre que necessário, estar disponível para o usuário. Entender o quê o software deve fazer de acordo com cada usuário que o utilizará, além de gerenciar os desejos de cada usuário para que estes se adequem ao orçamento. Você deve utilizar todos os recursos disponíveis, ou seja, se você pode então reutilize um software ao invés de criar um do zero.
  • 23. A web... + Pessoas + Riscos + Diversidade de plataformas + Problemas
  • 24.
  • 25. Bibliografia do Curso (Sites) • http://www.ic.uff.br/~viviane.silva/2010.1/es1/aulas.html • http://dinobrasilis.pro.br/mat_quali.html • http://www.les.inf.puc-rio.br/wiki/index.php/Introdu%C3%A7%C3%A3o_a_Engenharia_de_Software_de_Sistemas_Multiagentes_em_2005.1 • http://www.ime.usp.br/~poliana/Eng%20de%20sw/ • http://www.dcce.ibilce.unesp.br/~ines/cursos/eng_soft/ • http://www.cin.ufpe.br/~processos/ • http://www.cin.ufpe.br/~if720/programacao.html • http://www.softdevteam.com/Incremental-lifecycle.asp • http://lgarciasbr.wordpress.com/2011/10/19/roi/
  • 26. Bibliografia do Curso (Sites) • Stanford • http://www.stanford.edu/class/cs295/ • Berkley • https://sites.google.com/site/ucbsaas/ • MIT • http://sunnyday.mit.edu/16.355/ • MIT • http://ocw.mit.edu/courses/aeronautics-and-astronautics/16-355j-software-engineering-concepts- fall-2005/lecture-notes/
  • 27. CJR Empresa Júnior de Computação da UnB Renato Leal contato@cjr.org.br renatodossantosleal@gmail.com renatoleal@cjr.org.br renatodossantosleal@gmail.com