Disciplina Engenharia de Software 
Prof. Esp. Rafael H Mauro 
rafaelherman@yahoo.com.br
Bibliografia 
•KOSCIANSKI, A; Qualidade de Software. São Paulo: Novatec Editora, 2006. 
•MALDONADO, José C; DELAMARO, Márc...
Introdução 
•“O Software ultrapassou o Hardware como chave para o sucesso de muitos sistemas baseados em computador” (Pres...
O Software é o que faz a diferença!!! 
•Acesso as informações 
•Facilidade de uso 
•inteligência 
•funcionalidade 
•compat...
A importância do Software 
•Durante as 3 primeiras décadas da era do computador, o principal desafio era desenvolver um HA...
A evolução do Software 
- Nova Revolução Computação Industrial (Toffler) 
- 3a. Onda
Parêntesis: Revolução Industrial Primeira Onda 
•Ferro (Darby, 1709) 
•Máquina a vapor: 
–Inventada (Newcomen, 1712) 
–Ape...
Parêntesis: Revolução Industrial Segunda Onda 
•Aço (Bessemel, 1856 e 1885 - Liga) 
•Locomotiva a Vapor (Rede de Transport...
Revolução Industrial: Terceira Onda 
• Energia Nuclear (Fermi, 1942) 
• Uso Industrial/Comercial da Eletricidade 
• Comput...
Filosofando... 
•A mudança de uma sociedade industrial para uma baseada na informação é uma Radical Mudança Econômica: 
–M...
A evolução do software 
•Software é dividida em 4 Eras: 
–Primeiros anos 1950 - 1965 
–Segunda Era 1965 - 1975 
–Terceira ...
O que é Software? 
•Definição - Software é: 
1o - instruções (programas de computador) que, quando executadas, produzem a ...
Características do Software - 1 
•O Software é desenvolvido ou projetado por engenharia, não manufaturado no sentido cláss...
Características do Software - 2 
•Software não desgasta! 
–Software não é sensível aos problemas ambientais que fazem com ...
Características do Software - 3 
•A maioria dos softwares é feita sob medida e não montada a partir de componentes existen...
Aplicações de Software 
(Pressman) 
•Software Básico 
•Software de Tempo Real 
•Software Comercial 
•Software Científico o...
Uma Crise no horizonte 
•A indústria de Software tem tido uma “crise” que a acompanha há quase 30 anos: 
–Aflição Crônica ...
Therac-25 
•Equipamento de Radioterapia. 
•Entre 1985 e 1987 se envolveu em 6 acidentes, causando mortes por overdoses de ...
Denver International Airport 
•Custo do projeto: US$ 4.9 bilhões 
–100 mil passageiros por dia 
–1,200 vôos 
–53 milhas qu...
Denver International Airport 
•Erros no sistema automático de transporte de bagagens (misloaded, misrouted, jammed): 
–Atr...
Ariane 5
Ariane 5 
•Projeto da Agência Espacial Européia que custou: 
–10 anos. 
–US$ 8 Bilhões. 
•Capacidade 6 toneladas. 
•Garant...
Vôo inaugural em 4/junho/1996
Resultado 
•Explosão 40 segundos após a decolagem. 
•Destruição do foguete e carga avaliada em US$ 500 milhões.
O que aconteceu? (I) 
•Fato: o veículo detonou suas cargas explosivas de autodestruição e explodiu no ar. Por que? 
•Porqu...
O que aconteceu? (II) 
•Por que o Shut-down? Ocorrera um run time error (out of range, overflow , ou outro) e ambos comput...
Especificamente:O que faltou? 
strict precondition 1: 
{ 
Set."x"=FLPT and Set."y"=INT16 
and -32768 <= x <= +32767 
} 
pr...
Ironia... 
•O resultado desta conversão não era mais necessário após a decolagem...
Quais são os problemas? 
•A sofisticação do software ultrapassou nossa capacidade de construção. 
•Nossa capacidade de con...
Perguntas que Engenharia de Software quer responder: 
•Porque demora tanto para concluir um projeto (não cumprimos prazos)...
Causas óbvias 
•Não dedicamos tempo para coletar dados sobre o desenvolvimento do software - resulta em estimativas “a olh...
Causas menos óbvias 
•O Software é desenvolvido ou projetado por engenharia, não manufaturado no sentido clássico (caracte...
Mitos do Software - Administrativos 
•Um manual oferece tudo que se precisa saber. 
•Computadores de última geração soluci...
Mitos do Software - do Cliente 
•Uma declaração geral é suficiente para começar a escrever programas. 
•Mudanças podem ser...
Mitos do Software - do Profissional 
•Um programa está terminado ao funcionar. 
•Quanto mais cedo escrever o código, mais ...
Engenharia de Software: Definição 
•“Engenharia de Software é o estabelecimento e uso de sólidos princípios de engenharia ...
Engenharia de Software: Abrangência 
•E.S. possui 3 elementos fundamentais: 
–métodos: “como fazer” 
–ferramentas: apoio a...
Paradigmas de Engenharia de Software 
•Existem dezenas. 
•4 principais: 
–Ciclo de Vida Clássico (modelo Cascata) 
–Protot...
Ciclo de Vida Clássico: modelo Cascata (Waterfall) 
•Baseado em projetos de engenharia clássicos (não de Software) - 1970 ...
Ciclo de Vida Clássico (II) 
Requirements 
definition 
System and 
software design 
Implementation 
and unit testing 
Inte...
Ciclo de Vida Clássico (III) 
•Problemas: 
–projetos reais não seguem um fluxo seqüencial: dificuldade de acomodar mudança...
Modelo Espiral de Boehm (1988)
Fases do modelo Espiral 
•Definição dos objetivos 
–Especificação dos objetivos específicos desta fase. 
•Análise dos risc...
Conclusão 
•Software é elemento chave para o sucesso. Mas: 
–Software não é hardware. 
–Software não é fácil. 
–Software m...
Engenharia de Sistemas 
•“Se preocupa com o projeto, implementação, instalação e operação de sistemas que incluem hardware...
O que é um Sistema? 
•Um conjunto de componentes inter-relacionados organizados para atingir um certo objetivo. 
•É organi...
Problemas da Engenharia de Sistemas 
•Sistemas grandes são projetados para resolver problemas “problemáticos”. 
•Sistemas ...
Sistema de Compra
Fases da Engenharia de Sistemas 
Podemos identificar três fases nos paradigmas de desenvolvimento vistos: 
•Definição: 
–D...
Sobre a Definição do Software
Análise de Sistemas 
•Atividade que engloba as tarefas da engenharia de sistemas de computador. 
•Geralmente confundida co...
Problemas da análise de sistemas 
•Separar partes de hardware, software e peopleware requer muita negociação. 
•Pessoas as...
Passos da Análise de Sistemas 
•Análise de sistemas envolve: 
–Identificação das necessidades. 
–Estudo de viabilidade. 
–...
Estudo de Viabilidade 
•Econômica: 
–análise custo benefício (pg 206 Pressman) 
•Técnica: 
–Estudo da função, desempenho e...
Análise de requisitos de software 
•O processo que estabelece serviços necessários e restrições de operação e desenvolvime...
Passos da análise de requisitos
Problema da Análise de Requisitos
Especificação dos Requisitos (I) 
•Pressman define um documento básico para a especificação dos requisitos. Ele contém 8 p...
Especificação dos Requisitos (II) 
II. Descrição da Informação 
1. Representação do fluxo de informação 
a. Fluxo de Dados...
Especificação dos Requisitos (III) 
III. Descrição Funcional 
1. Divisão funcional em partições 
2. Descrição funcional 
a...
Especificação dos Requisitos (IV) 
IV. Descrição Comportamental 
1. Estados do Sistema 
2. Eventos e ações 
V. Critérios d...
Atividades de Projeto 
ArchitecturaldesignAbstractspecificationInterfacedesignComponentdesignDatastructuredesignAlgorithmd...
O processo do Projeto 
PartitionrequirementsIdentifysub-systemsAssign requirementsto sub-systemsSpecify sub-systemfunction...
Abordagens para o Projeto 
•Existem diversas abordagens para o projeto de um sistema. 
•Geralmente é feito de maneira gráf...
Fim do trabalho do analista!!!!!!!!!!
HORA DO DESABAFO!!! 
•Descreva 2 casos de problemas causados por erros em software que você conhece (OBS: não adianta fala...
Fim da Aula, Obrigado e Boa Noite
1   engenharia de software
1   engenharia de software
1   engenharia de software
1   engenharia de software
Próximos SlideShares
Carregando em…5
×

1 engenharia de software

604 visualizações

Publicada em

Unip

Publicada em: Educação
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
604
No SlideShare
0
A partir de incorporações
0
Número de incorporações
80
Ações
Compartilhamentos
0
Downloads
16
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

1 engenharia de software

  1. 1. Disciplina Engenharia de Software Prof. Esp. Rafael H Mauro rafaelherman@yahoo.com.br
  2. 2. Bibliografia •KOSCIANSKI, A; Qualidade de Software. São Paulo: Novatec Editora, 2006. •MALDONADO, José C; DELAMARO, Márcio; JINO, Mário; Introdução ao Teste de Software, Rio de Janeiro: Elsevier, 2007. •PFLEEGER, S.L; Engenharia de Software: teoria e prática. 2.ed. São Paulo: Prentice Hall, 2004. •SOMMERVILLE, I; Engenharia de Software., Fifth Edition, Pearson. 2003. •WIEGERS, K; Software Requirements, 10ed., Englewood Cliffs, NJ: Prentice Hall Inc, 1997.
  3. 3. Introdução •“O Software ultrapassou o Hardware como chave para o sucesso de muitos sistemas baseados em computador” (Pressman)
  4. 4. O Software é o que faz a diferença!!! •Acesso as informações •Facilidade de uso •inteligência •funcionalidade •compatibilidade •suporte Tornam 1 produto melhor que outro
  5. 5. A importância do Software •Durante as 3 primeiras décadas da era do computador, o principal desafio era desenvolver um HARDWARE de baixo custo e alto desempenho. •O hoje o desafio é melhorar a qualidade (e reduzir os custos) das soluções baseadas em SOFTWARE!
  6. 6. A evolução do Software - Nova Revolução Computação Industrial (Toffler) - 3a. Onda
  7. 7. Parêntesis: Revolução Industrial Primeira Onda •Ferro (Darby, 1709) •Máquina a vapor: –Inventada (Newcomen, 1712) –Aperfeiçoada (WATT, 1766 - ’69 -’82) •Mecanização da indústria têxtil: –Tear Mecânico (Kay, 1722) –Maquina de fiar (Hargreaves, 1764) •Aspectos sociais, políticos e econômicos Têxteis, Carvão e Ferro
  8. 8. Parêntesis: Revolução Industrial Segunda Onda •Aço (Bessemel, 1856 e 1885 - Liga) •Locomotiva a Vapor (Rede de Transporte - 1830) •Máquina de Costura (SINGER,1851) •Motor a combustão interna: –Primeiro eficiente (OTTO, 1876) –Produção automobilística em massa (Daimler e Benz, 1896) •Desemprego e fim da escravidão
  9. 9. Revolução Industrial: Terceira Onda • Energia Nuclear (Fermi, 1942) • Uso Industrial/Comercial da Eletricidade • Computadores Eletrônicos (ENIAC 1946) • Transistor (Shockley, et al., 1948) Sociedade Sociedade Industrial da Informação transformação
  10. 10. Filosofando... •A mudança de uma sociedade industrial para uma baseada na informação é uma Radical Mudança Econômica: –Material tem menos valor e Informação tem mais valor •Antes: quanto menos pessoas possuísse algo, maior o valor. •Hoje: quanto mais pessoas possuem algo, maior o valor.
  11. 11. A evolução do software •Software é dividida em 4 Eras: –Primeiros anos 1950 - 1965 –Segunda Era 1965 - 1975 –Terceira Era 1975 - 1988 –Quarta Era 1988 - ...
  12. 12. O que é Software? •Definição - Software é: 1o - instruções (programas de computador) que, quando executadas, produzem a função e o desempenho desejados; 2o - estruturas de dados que permitem a manipulação das informações; 3o - documentos que descrevem a operação e uso dos programas.
  13. 13. Características do Software - 1 •O Software é desenvolvido ou projetado por engenharia, não manufaturado no sentido clássico: –Custos são concentrados no trabalho de engenharia. –Projetos não podem ser geridos como projetos de manufatura. –“Fábrica de Software!”
  14. 14. Características do Software - 2 •Software não desgasta! –Software não é sensível aos problemas ambientais que fazem com que o hardware se desgaste. –Ver curvas de falha, páginas 14 e 15 do Pressman. – Toda falha indica erro de projeto ou implementação: manutenção do SW é mais complicada que a do HW.
  15. 15. Características do Software - 3 •A maioria dos softwares é feita sob medida e não montada a partir de componentes existentes. •!= Hardware. •Situação esta mudando: –Orientação a objetos. –Reusabilidade é o “Santo Graal”(diminui custos e melhora projetos).
  16. 16. Aplicações de Software (Pressman) •Software Básico •Software de Tempo Real •Software Comercial •Software Científico ou de Engenharia •Software Embutido •Software de Computador Pessoal •Software de Inteligência Artificial
  17. 17. Uma Crise no horizonte •A indústria de Software tem tido uma “crise” que a acompanha há quase 30 anos: –Aflição Crônica != Crise •Problemas não se limitam ao software que não funciona adequadamente, mas abrange: –desenvolvimento, testes, manutenção, suprimento, etc.
  18. 18. Therac-25 •Equipamento de Radioterapia. •Entre 1985 e 1987 se envolveu em 6 acidentes, causando mortes por overdoses de radiação. •Software foi adaptado de uma antecessora, Therac-6: –falhas por falta de testes integrados –falta de documentação (Pfleeger)
  19. 19. Denver International Airport •Custo do projeto: US$ 4.9 bilhões –100 mil passageiros por dia –1,200 vôos –53 milhas quadradas –94 portões de embarque e desembarque –6 pistas de pouso / decolagem
  20. 20. Denver International Airport •Erros no sistema automático de transporte de bagagens (misloaded, misrouted, jammed): –Atraso na abertura do aeroporto com custo total estimado em US$360 Milhões •86 milhões para consertar o sistema
  21. 21. Ariane 5
  22. 22. Ariane 5 •Projeto da Agência Espacial Européia que custou: –10 anos. –US$ 8 Bilhões. •Capacidade 6 toneladas. •Garante supremacia européia no espaço.
  23. 23. Vôo inaugural em 4/junho/1996
  24. 24. Resultado •Explosão 40 segundos após a decolagem. •Destruição do foguete e carga avaliada em US$ 500 milhões.
  25. 25. O que aconteceu? (I) •Fato: o veículo detonou suas cargas explosivas de autodestruição e explodiu no ar. Por que? •Porque ele estava se quebrando devido às forças aerodinâmicas. Mas por que? •O foguete tinha perdido o controle de direção (atitude). Causa disso? •Os computadores principal e back-up deram shut-down ao mesmo tempo.
  26. 26. O que aconteceu? (II) •Por que o Shut-down? Ocorrera um run time error (out of range, overflow , ou outro) e ambos computadores se desligaram. De onde veio este erro? •Um programa que convertia um valor em ponto flutuante para um inteiro de 16 bits recebeu como entrada um valor que estava fora da faixa permitida.
  27. 27. Especificamente:O que faltou? strict precondition 1: { Set."x"=FLPT and Set."y"=INT16 and -32768 <= x <= +32767 } program code: y := int(x); postcondition: {Set."x"=FLPT and Set."y"=INT16 and y=int(x)}
  28. 28. Ironia... •O resultado desta conversão não era mais necessário após a decolagem...
  29. 29. Quais são os problemas? •A sofisticação do software ultrapassou nossa capacidade de construção. •Nossa capacidade de construir programas não acompanha a demanda por novos programas. •Nossa capacidade de manter programas é ameaçada por projetos ruins.
  30. 30. Perguntas que Engenharia de Software quer responder: •Porque demora tanto para concluir um projeto (não cumprimos prazos)? •Porque custa tanto (uma ordem de magnitude a mais)? •Porque não descobrimos os erros antes de entregar o software ao cliente? •Porque temos dificuldade de medir o progresso enquanto o software está sendo desenvolvido?
  31. 31. Causas óbvias •Não dedicamos tempo para coletar dados sobre o desenvolvimento do software - resulta em estimativas “a olho”. •Comunicação entre o cliente e o desenvolvedor é muito fraca. •Falta de testes sistemáticos e completos.
  32. 32. Causas menos óbvias •O Software é desenvolvido ou projetado por engenharia, não manufaturado no sentido clássico (característica 1). •Gerentes sem background em desenvolvimento de SW. •Profissionais recebem pouco treinamento formal. •Falta investimento (em ES). •Falta métodos e automação.
  33. 33. Mitos do Software - Administrativos •Um manual oferece tudo que se precisa saber. •Computadores de última geração solucionam problemas de desenvolvimento. •Se estamos atrasados, basta adicionar programadores e tirar o atraso (chamado “conceito de hordas de mongois”).
  34. 34. Mitos do Software - do Cliente •Uma declaração geral é suficiente para começar a escrever programas. •Mudanças podem ser facilmente acomodadas em um projeto.
  35. 35. Mitos do Software - do Profissional •Um programa está terminado ao funcionar. •Quanto mais cedo escrever o código, mais rápido terminarei o programa. •Só posso avaliar a qualidade de um programa em funcionamento. •A única coisa a ser entregue em um projeto é o programa funcionando.
  36. 36. Engenharia de Software: Definição •“Engenharia de Software é o estabelecimento e uso de sólidos princípios de engenharia para que se possa obter economicamente um software que seja confiável e que funcione eficientemente em máquinas reais” •É METODOLOGIA!
  37. 37. Engenharia de Software: Abrangência •E.S. possui 3 elementos fundamentais: –métodos: “como fazer” –ferramentas: apoio automatizado aos métodos. –Procedimentos: elo de ligação entre os métodos e os procedimentos •Existem diversos Paradigmas de Engenharia de Software: –abordagens que envolvem estes métodos, ferramentas e procedimentos
  38. 38. Paradigmas de Engenharia de Software •Existem dezenas. •4 principais: –Ciclo de Vida Clássico (modelo Cascata) –Prototipagem –Espiral –Técnicas de Quarta Geração (Pressman)
  39. 39. Ciclo de Vida Clássico: modelo Cascata (Waterfall) •Baseado em projetos de engenharia clássicos (não de Software) - 1970 •Fases: –Análise de requisitos –Definição –Projeto –Implementação –Integração e testes –Operação e manutenção
  40. 40. Ciclo de Vida Clássico (II) Requirements definition System and software design Implementation and unit testing Integr ation and system testing Operation and maintenance (Sommerville)
  41. 41. Ciclo de Vida Clássico (III) •Problemas: –projetos reais não seguem um fluxo seqüencial: dificuldade de acomodar mudanças depois de iniciado. –Dificuldade de declaração de todas as exigências pelo cliente. –Paciência!
  42. 42. Modelo Espiral de Boehm (1988)
  43. 43. Fases do modelo Espiral •Definição dos objetivos –Especificação dos objetivos específicos desta fase. •Análise dos riscos –Identificação e solução dos principais riscos •Desenvolvimento e validação •Planejamento –O projeto é revisto e se define planos para a próxima “volta da espiral”
  44. 44. Conclusão •Software é elemento chave para o sucesso. Mas: –Software não é hardware. –Software não é fácil. –Software mata. –Precisamos de ajuda.
  45. 45. Engenharia de Sistemas •“Se preocupa com o projeto, implementação, instalação e operação de sistemas que incluem hardware, software e pessoas”. (Sommerville)
  46. 46. O que é um Sistema? •Um conjunto de componentes inter-relacionados organizados para atingir um certo objetivo. •É organizado para executar certo método, procedimento ou controle ao processar informações. •Automatiza ou apóia a realização de atividades humanas através do processamento de informações.
  47. 47. Problemas da Engenharia de Sistemas •Sistemas grandes são projetados para resolver problemas “problemáticos”. •Sistemas requerem abordagem multi-disciplinar –Infinitas possibilidades –Falta de compreensão e confiança entre disciplinas •Sistemas devem ser projetados para durarem muitos anos em um ambiente dinâmico.
  48. 48. Sistema de Compra
  49. 49. Fases da Engenharia de Sistemas Podemos identificar três fases nos paradigmas de desenvolvimento vistos: •Definição: –Determina viabilidade, requisitos do software, especifica e projeta o sistema. •Desenvolvimento: –Implementação, integração e instalação. •Operação: –manutenção, correção e evolução.
  50. 50. Sobre a Definição do Software
  51. 51. Análise de Sistemas •Atividade que engloba as tarefas da engenharia de sistemas de computador. •Geralmente confundida com as atividades de análise de requisitos. •Concentra-se em todos os elementos do sistema, não apenas software. •Trabalha na fase de DEFINIÇÃO do sistema: especifica o sistema para o trabalho de desenvolvimento.
  52. 52. Problemas da análise de sistemas •Separar partes de hardware, software e peopleware requer muita negociação. •Pessoas assumem que problemas com difícil solução são facilmente resolvidos pelo computador. •Plataformas podem ser inapropriadas: software deve compensar isso.
  53. 53. Passos da Análise de Sistemas •Análise de sistemas envolve: –Identificação das necessidades. –Estudo de viabilidade. –Análise, especificação e validação dos Requisitos. –Projeto do sistema: •Arquitetura •Interface • Dados
  54. 54. Estudo de Viabilidade •Econômica: –análise custo benefício (pg 206 Pressman) •Técnica: –Estudo da função, desempenho e restrições para um sistema aceitável. •Legal: –infrações e violações legais (Ex: IA Médica) •Alternativas
  55. 55. Análise de requisitos de software •O processo que estabelece serviços necessários e restrições de operação e desenvolvimento. •Requisitos: –são objetivos ou restrições estabelecidas por clientes e usuários do sistema que definem as diversas propriedades do sistema (e que dizem respeito ao software).
  56. 56. Passos da análise de requisitos
  57. 57. Problema da Análise de Requisitos
  58. 58. Especificação dos Requisitos (I) •Pressman define um documento básico para a especificação dos requisitos. Ele contém 8 partes: I. Introdução 1. Referências do Sistema 2. Descrição Geral 3. Restrições de projeto do software
  59. 59. Especificação dos Requisitos (II) II. Descrição da Informação 1. Representação do fluxo de informação a. Fluxo de Dados b. Fluxo de Controle 2. Representação do conteúdo de informação 3. Descrição da interface com o sistema
  60. 60. Especificação dos Requisitos (III) III. Descrição Funcional 1. Divisão funcional em partições 2. Descrição funcional a. Narrativas b. Restrições/limitações c. Exigências de desempenho d. Restrições de projeto e. Diagramas de apoio 3. Descrição do controle a. Especificação do controle b. Restrições de projeto
  61. 61. Especificação dos Requisitos (IV) IV. Descrição Comportamental 1. Estados do Sistema 2. Eventos e ações V. Critérios de Validação 1. Limites de desempenho 2. Classes de testes 3. Reação esperada do software 4. Considerações especiais VI. Bibliografia VII Apêndice
  62. 62. Atividades de Projeto ArchitecturaldesignAbstractspecificationInterfacedesignComponentdesignDatastructuredesignAlgorithmdesignSystemarchitectureSoftwarespecificationInterfacespecificationComponentspecificationDatastructurespecificationAlgorithmspecificationRequirementsspecificationDesign activitiesDesign products
  63. 63. O processo do Projeto PartitionrequirementsIdentifysub-systemsAssign requirementsto sub-systemsSpecify sub-systemfunctionalityDefine sub-systeminterfaces
  64. 64. Abordagens para o Projeto •Existem diversas abordagens para o projeto de um sistema. •Geralmente é feito de maneira gráfica •Modelos possíveis: –Fluxo de Dados –Entidade-relacionamento –Estruturais –Orientados a Objetos
  65. 65. Fim do trabalho do analista!!!!!!!!!!
  66. 66. HORA DO DESABAFO!!! •Descreva 2 casos de problemas causados por erros em software que você conhece (OBS: não adianta falar do Windows) •Descreva 2 produtos (que não seja um computador) onde o software faz a diferença.
  67. 67. Fim da Aula, Obrigado e Boa Noite

×