Introdução a Engenharia de Software Matheus Souto Maior  [email_address] @msouto
Engenharia de Software <ul><li>Engenharia   =  “é a atividade em que os conhecimentos científicos são empregados para reso...
Objetivo <ul><li>“ Um dos objetivos básicos da Engenharia de Software é transformar  a criação de sistemas software realiz...
Origem... em 1968, especialistas se reúnem em Garmisch, para discutir problemas de desenvolvimento de software http://home...
problemas “da época” <ul><li>Produtos de Software  </li></ul><ul><ul><li>de baixa qualidade e </li></ul></ul><ul><ul><li>s...
A Crise de Software
<ul><li>&quot;[The major cause of the software crisis is] that the machines have become several orders of magnitude more p...
A crise de Software
O Caso do  DABHS (Denver Airport Baggage Handling System) <ul><li>Características: </li></ul><ul><ul><li>4000 Telecars </l...
O Caso da Integração SABRE <ul><li>SABRE ( Semi-Automated Business Research Environment ) </li></ul><ul><ul><li>Sistema de...
Therac-25 <ul><li>Equipamento de Radioterapia, controlado por  computador  criada pela empresa AECL (Atomic Energy of Cana...
Therac-25 <ul><li>Causas: </li></ul><ul><ul><li>O código do software não havia sido revisado/testado independentemente;  <...
Ariane 5 <ul><li>Projeto da Agência Espacial Européia </li></ul><ul><ul><li>10 anos de desenvolvimento </li></ul></ul><ul>...
Ariane 5 <ul><li>Causa: </li></ul><ul><ul><li>Ocorreu um run time error (erro de execução) e ambos computadores se desliga...
Processos para construção de Software
Processo de Desenvolvimento de Software Modelo Cascata
Análise de Requisitos <ul><li>Entendimento das necessidades do cliente </li></ul><ul><li>Especificação das necessidades </...
Para que “Análise de Requisitos”?
Processo de Engenharia de Requisitos
Gerenciamento de Requisitos <ul><li>Evolução dos requisitos </li></ul>
Gerenciamento de mudanças de requisitos
Análise e Projeto <ul><li>Desenho lógico da solução </li></ul><ul><li>Tomada de decisão sobre coisas como  </li></ul><ul><...
Arquitetura Lógica de Software
Exemplo de Arquitetura Física
Implementação <ul><li>Codificação do sistema </li></ul><ul><li>Integração dos módulos </li></ul><ul><li>Testes isolados </...
Tecnologias de desenvolvimento de Software J2ME J2SE J2EE
Testes <ul><li>Tem como objetivo identificar erros inseridos durante a construção </li></ul><ul><ul><li>Testes Funcionais ...
Implantação <ul><li>Tem como objetivo a instalação do software no ambiente final de execução </li></ul><ul><li>Instalação ...
Processo de Desenvolvimento
Outros modelos de ciclo de vida do software
Modelo de prototipação
Modelo orientado a reuso
Desenvolvimento incremental
Modelo Espiral (evolucionário)
Exercício I <ul><li>Identificar todos os modelos de processos apresentados e construir um quadro comparativo. </li></ul><u...
Por que organizar o desenvolvimento de software??
Windows Vista <ul><li>5000 desenvolvedores (sem incluir pessoal não-técnico); </li></ul><ul><li>40 milhões de linhas de có...
intuitive surgical da vinci
intuitive surgical da vinci
Telecomunicação e Mobilidade
Indústria automotiva Electronic Stability Program
Transações Financeiras
Alguns números atuais...
Quanto melhoramos?
chaos report
Team Size {dev vs. test} o século de software...ou o século dos problemas de software? – Silvio Meira Product Dev Team Siz...
Defect Rates Data <ul><li>With serialized development: </li></ul><ul><ul><li>Good, small teams operate efficiently </li></...
Mas Engenharia de Software não é só técnica... “ The book demonstrates that the major issues of software development are h...
Mas nem tudo está perdido....
Corpo da Engenharia de Software (SWEBOK)
Corpo da Engenharia de Software (SWEBOK)
CMMi – Capability Maturity Model Integration
Em Otimização Gerenciado Quantitativamente Definido Largamente Definido Parcialmente Definido Gerenciado Parcialmente Gere...
PMBok <ul><li>Corpo de conhecimento da Gestão de Projetos </li></ul><ul><li>Tem como objetivo divulgar e padronizar as mel...
Obrigado! Matheus Souto Maior  [email_address] @msouto
Upcoming SlideShare
Loading in …5
×

Contr avali engenharia de software-introdução

842 views

Published on

Controle e avaliação parte 1

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
842
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
30
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • http://www.standishgroup.com/press/article.php?id=2
  • http://www.standishgroup.com/press/article.php?id=2
  • Contr avali engenharia de software-introdução

    1. 1. Introdução a Engenharia de Software Matheus Souto Maior [email_address] @msouto
    2. 2. Engenharia de Software <ul><li>Engenharia = “é a atividade em que os conhecimentos científicos são empregados para resolver problemas práticos” </li></ul><ul><li>Engenharia de Software = “é a atividade em que os [conhecimentos científicos] são empregados para resolver problemas práticos relacionados à construção de software ” </li></ul>
    3. 3. Objetivo <ul><li>“ Um dos objetivos básicos da Engenharia de Software é transformar a criação de sistemas software realizada de maneira artística , indisciplinada e pouco entendível para uma forma devidamente controlada , quantificada e previsível .” </li></ul>
    4. 4. Origem... em 1968, especialistas se reúnem em Garmisch, para discutir problemas de desenvolvimento de software http://homepages.cs.ncl.ac.uk/brian.randell/NATO/index.html
    5. 5. problemas “da época” <ul><li>Produtos de Software </li></ul><ul><ul><li>de baixa qualidade e </li></ul></ul><ul><ul><li>sem atender requisitos e </li></ul></ul><ul><li>Projetos realizados acima </li></ul><ul><ul><li>do orçamento e do </li></ul></ul><ul><ul><li>tempo previsto e </li></ul></ul><ul><ul><li>vez por outra ingerenciáveis </li></ul></ul>
    6. 6. A Crise de Software
    7. 7. <ul><li>&quot;[The major cause of the software crisis is] that the machines have become several orders of magnitude more powerful! To put it quite bluntly: as long as there were no machines, programming was no problem at all; when we had a few weak computers, programming became a mild problem, and now we have gigantic computers, programming has become an equally gigantic problem.&quot; Edsger Dijkstra: The Humble Programmer </li></ul>
    8. 8. A crise de Software
    9. 9. O Caso do DABHS (Denver Airport Baggage Handling System) <ul><li>Características: </li></ul><ul><ul><li>4000 Telecars </li></ul></ul><ul><ul><li>21 milhas de trilhos </li></ul></ul><ul><ul><li>5000 Olhos Eletrônicos, 400 Receptores de Rádio, 56 Scanners, 100 computadores em rede </li></ul></ul><ul><li>Estava planejado que o Aeroporto de Denver abriria em 31 de Outubro de 1993 </li></ul><ul><ul><li>Problemas no desenvolvimento do DABHS fizeram que o aeroporto abrisse em 28 de Fevereiro de 1995 </li></ul></ul><ul><ul><li>Prejuízos devido ao atraso: </li></ul></ul><ul><ul><ul><li>Capacidade do sistema foi drasticamente diminuída </li></ul></ul></ul><ul><ul><ul><li>Aproximadamente $ 500.000.000 ($1.1M por dia) </li></ul></ul></ul>
    10. 10. O Caso da Integração SABRE <ul><li>SABRE ( Semi-Automated Business Research Environment ) </li></ul><ul><ul><li>Sistema de Reserva da American Airlines </li></ul></ul><ul><ul><li>Terminado no fim da década de 50 </li></ul></ul><ul><ul><li>Construído pela IBM </li></ul></ul><ul><ul><li>$2 bilhões </li></ul></ul><ul><li>Tentativa de Integração com sistemas de reserva de carros e hotel </li></ul><ul><ul><li>Em 1992 o projeto foi cancelado </li></ul></ul><ul><ul><li>$165.000.000 jogados fora </li></ul></ul>
    11. 11. Therac-25 <ul><li>Equipamento de Radioterapia, controlado por computador criada pela empresa AECL (Atomic Energy of Canada Limited) </li></ul><ul><ul><li>Muito moderna para sua época </li></ul></ul><ul><li>Entre 1985 e 1987 se envolveu 6 em acidentes </li></ul><ul><ul><li>5 mortes por overdoses de radiação </li></ul></ul>
    12. 12. Therac-25 <ul><li>Causas: </li></ul><ul><ul><li>O código do software não havia sido revisado/testado independentemente; </li></ul></ul><ul><ul><li>O projeto do software não havia sido documentado com detalhes suficientes para permitir o entendimento dos erros </li></ul></ul><ul><ul><li>A documentação do sistema fornecida aos usuários não explicava o significado dos códigos de erro que a máquina retornava </li></ul></ul>http://pt.wikipedia.org/wiki/Therac-25
    13. 13. Ariane 5 <ul><li>Projeto da Agência Espacial Européia </li></ul><ul><ul><li>10 anos de desenvolvimento </li></ul></ul><ul><ul><li>US$ 8 Bilhões </li></ul></ul><ul><li>Carga avaliada em US$500 Milhões </li></ul><ul><li>Em 4 de junho de 1996, menos de um minuto após o lançamento o foguete se autodestruiu </li></ul>
    14. 14. Ariane 5 <ul><li>Causa: </li></ul><ul><ul><li>Ocorreu um run time error (erro de execução) e ambos computadores se desligaram. </li></ul></ul><ul><ul><li>Um programa que convertia um valor de ponto flutuante para um inteiro de 16 bits recebeu como entrada um valor que estava fora da faixa permitida. </li></ul></ul><ul><ul><ul><li>Inclusive o resultado da conversão não era mais necessário após a decolagem. </li></ul></ul></ul>
    15. 15. Processos para construção de Software
    16. 16.
    17. 17. Processo de Desenvolvimento de Software Modelo Cascata
    18. 18. Análise de Requisitos <ul><li>Entendimento das necessidades do cliente </li></ul><ul><li>Especificação das necessidades </li></ul><ul><ul><li>Linguagem mais técnica </li></ul></ul><ul><li>Análise da viabilidade do escopo </li></ul><ul><li>Estimativas de Custo e Prazo </li></ul>
    19. 19. Para que “Análise de Requisitos”?
    20. 20. Processo de Engenharia de Requisitos
    21. 21. Gerenciamento de Requisitos <ul><li>Evolução dos requisitos </li></ul>
    22. 22. Gerenciamento de mudanças de requisitos
    23. 23. Análise e Projeto <ul><li>Desenho lógico da solução </li></ul><ul><li>Tomada de decisão sobre coisas como </li></ul><ul><ul><li>Linguagem de Programação </li></ul></ul><ul><ul><li>Plataforma de Desenvolvimento </li></ul></ul><ul><ul><li>Integração com outros sistemas </li></ul></ul><ul><ul><li>Detalhes técnicos </li></ul></ul>
    24. 24. Arquitetura Lógica de Software
    25. 25. Exemplo de Arquitetura Física
    26. 26. Implementação <ul><li>Codificação do sistema </li></ul><ul><li>Integração dos módulos </li></ul><ul><li>Testes isolados </li></ul><ul><li>Otimização de módulos já construídos </li></ul>
    27. 27. Tecnologias de desenvolvimento de Software J2ME J2SE J2EE
    28. 28. Testes <ul><li>Tem como objetivo identificar erros inseridos durante a construção </li></ul><ul><ul><li>Testes Funcionais </li></ul></ul><ul><ul><li>Testes de Performance </li></ul></ul><ul><ul><li>Testes de Carga </li></ul></ul><ul><ul><li>Testes de Certificação </li></ul></ul><ul><ul><li>... </li></ul></ul>
    29. 29. Implantação <ul><li>Tem como objetivo a instalação do software no ambiente final de execução </li></ul><ul><li>Instalação </li></ul><ul><li>Treinamento </li></ul><ul><li>Configuração </li></ul><ul><li>Adaptação </li></ul>
    30. 30. Processo de Desenvolvimento
    31. 31. Outros modelos de ciclo de vida do software
    32. 32. Modelo de prototipação
    33. 33. Modelo orientado a reuso
    34. 34. Desenvolvimento incremental
    35. 35. Modelo Espiral (evolucionário)
    36. 36. Exercício I <ul><li>Identificar todos os modelos de processos apresentados e construir um quadro comparativo. </li></ul><ul><li>Postar no grupo </li></ul>
    37. 37. Por que organizar o desenvolvimento de software??
    38. 38. Windows Vista <ul><li>5000 desenvolvedores (sem incluir pessoal não-técnico); </li></ul><ul><li>40 milhões de linhas de código; </li></ul><ul><li>16 milhões de linhas de código somente nos últimos 3 anos; </li></ul><ul><li>Versões compiláveis todos os dias; </li></ul><ul><li>Testes de regressão; </li></ul><ul><li>Intervalo de 3 dias para um mudança submetida aparecer no executável; </li></ul><ul><li>~1.7 pessoas testando para cada programador; </li></ul><ul><li>Precisa ter compatibilidade com versões anteriores; </li></ul><ul><li>Precisa ser instalado em milhares de configurações diferentes; </li></ul>
    39. 39. intuitive surgical da vinci
    40. 40. intuitive surgical da vinci
    41. 41. Telecomunicação e Mobilidade
    42. 42. Indústria automotiva Electronic Stability Program
    43. 43. Transações Financeiras
    44. 44. Alguns números atuais...
    45. 45. Quanto melhoramos?
    46. 46. chaos report
    47. 47. Team Size {dev vs. test} o século de software...ou o século dos problemas de software? – Silvio Meira Product Dev Team Size Test Team Size NT 3.1 (6->) 200 140 NT 3.5 300 230 NT 3.51 450 325 NT 4.0 800 700 Win2k 1400 1700
    48. 48. Defect Rates Data <ul><li>With serialized development: </li></ul><ul><ul><li>Good, small teams operate efficiently </li></ul></ul><ul><ul><li>Even the absolute best large teams are always broken, and always serialized </li></ul></ul>o século de software...ou o século dos problemas de software? – Silvio Meira Product and Team Size Defects: Per year Per Dev Time to Fix: Per Defect Defects: Per Day Total Defect Fix Time NT 3.1, 200 2 20 minutes 1 20 minutes NT 3.5, 300 2 25 minutes 1.6 41 minutes NT 3.51, 450 2 30 minutes 2.5 1.2 hours NT 4.0, 800 3 35 minutes 6.6 3.8 hours Win2k, 1400 4 40 minutes 15.3 10.2 hours
    49. 49. Mas Engenharia de Software não é só técnica... “ The book demonstrates that the major issues of software development are human, not technical.”
    50. 50. Mas nem tudo está perdido....
    51. 51. Corpo da Engenharia de Software (SWEBOK)
    52. 52. Corpo da Engenharia de Software (SWEBOK)
    53. 53. CMMi – Capability Maturity Model Integration
    54. 54. Em Otimização Gerenciado Quantitativamente Definido Largamente Definido Parcialmente Definido Gerenciado Parcialmente Gerenciado A B C D E F G Relacionamento com o CMMI MR-MPS 2 3 4 5
    55. 55. PMBok <ul><li>Corpo de conhecimento da Gestão de Projetos </li></ul><ul><li>Tem como objetivo divulgar e padronizar as melhores práticas de gestão de projetos </li></ul>
    56. 56. Obrigado! Matheus Souto Maior [email_address] @msouto

    ×