SlideShare uma empresa Scribd logo
1 de 51
Baixar para ler offline
ENGENHARIA DE SOFTWARE 
A PONTE PARA UM CÓDIGO SUSTENTÁVEL 
Fernando Pontes
Fernando Pontes 
• Diretor/desenvolvedor na websonic - Agência Interativa. 
• Bacharel em Sistemas de Informação - FACIMP 
• Pós-graduando em Engenharia de Software - PUC Minas
Agenda 
• Conceitos 
• Os 4 P’s da Engenharia de 
Software 
• Adote um processo 
• Utilize padrões 
• Preze pela qualidade 
• Teste, teste e teste novamente 
• Métricas
Sustentabilidade
Sustentabilidade 
“Qualidade ou condição do que é sustentável." 
“Que tem condições para se manter ou conservar." 
Dicionário Aurélio 
Sustentável
Engenharia de Software
Engenharia de Software 
"O estabelecimento e o emprego de sólidos 
princípios de engenharia de modo a obter software 
de maneira econômica, que seja confiável e 
funcione de forma eficiente em máquinas reais." 
Fritz Bauer
Software Legado 
• Programas antigos. 
• Sofrem contínua manutenção. 
• Muitos dão suporte a funções vitais. 
• Podem apresentar baixa qualidade. 
• Documentação pobre ou inexistente. 
• Testes e resultados não arquivados. 
• Histórico de modificações mal administrado.
O Objetivo da Engenharia de Software Moderna é o de 
“elaborar metodologias baseadas na 
noção de evolução" 
[Day99]
Dados 
• Mais de 1 bilhão de usuários. 
• Os usuários curtem 6 bilhões de coisas por dia. 
• Compartilham 400 bilhões de fotos. 
• 7 petabytes de armazenamento de fotos em 2012.
“Escrever um trecho de código 
inteligente que funcione é uma coisa; 
projetar algo que possa dar suporte a 
negócios duradouros é outra totalmente 
diferente." 
[C. Ferguson]
Engenharia de Software 
Ferramentas 
Métodos 
Processo 
Foco na qualidade 
[Roger Pressman]
Os 4 P’s da Engenharia 
de Software
4 P’s da ES 
1. Pessoas 
2. Produto 
3. Processo 
4. Projeto
Adote um Processo
Processos 
"É um conjunto de atividades, ações e tarefas 
realizadas na criação de algum produto de 
trabalho (work product)." 
[Roger Pressman]
“Um processo define quem está fazendo o quê, 
quando e como para atingir determinado 
objetivo.” 
Processos 
[Ivar Jacobson, Grady Booch e James Rumbaugh]
Processos 
Metodologia de processo 
Atividades 
estruturais 
Atividades 
de apoio
Processos 
• Comunicação 
• Planejamento 
• Modelagem 
• Construção 
• Emprego 
Atividades estruturais
Processos 
Atividades de apoio 
• Controle e acompanhamento do projeto 
• Administração de riscos 
• Garantia da qualidade de software 
• Revisões técnicas 
• Medição 
• Gerenciamento da configuração de software 
• Gerenciamento da reusabilidade 
• Preparo e produção de artefatos de software
Processos 
1. Compreender o problema (comunicação e 
análise) 
2. Planejar uma solução (modelagem e projeto de 
software) 
3. Executar o plano (geração de código) 
4. Examinar o resultado para ter precisão (testes e 
garantia da qualidade) 
[How to Solve It - George Polya]
Processos 
Processos prescritivos 
• RUP (Rational Unified Process) 
Desenvolvimento Ágil 
• OpenUP 
• Manifesto para o Desenvolvimento Ágil de Software 
• XP - EXTREME PROGRAMMING 
• Scrum
Utilize Padrões de Projeto
Padrões de Projeto 
“Cada padrão descreve um problema que 
ocorre repetidamente em nosso ambiente e 
então descreve o cerne de uma solução para 
aquele problema para podermos usar a 
solução repetidamente um milhão de vezes 
sem jamais ter de fazer a mesma coisa duas 
vezes.” 
[Christopher Alexander]
Padrões de Projeto 
“É uma regra de três partes que expressa uma 
relação entre um contexto, um problema e 
uma solução.” 
[Christopher Alexander]
Padrões de Projeto 
• Criacionais 
• Estruturais 
• Comportamentais 
[Gamma e seus amigos]
Preze pela Qualidade
Preze pela Qualidade 
• Transcendental 
• Usuário 
• Fabricante 
• Produto 
• Baseada em valor 
[David Garvin 
Harvad Business School]
Preze pela Qualidade 
Satisfação do usuário 
= 
produto compatível 
+ 
boa qualidade 
+ 
entrega dentro do orçamento e do prazo 
[Robert Glass]
Preze pela Qualidade 
"Chega de desperdiçar US$ 78 bilhões por ano" 
[CIO Magazine 2001]
Preze pela Qualidade 
“Software de má qualidade está em praticamente 
todas as organizações que usam computadores, 
provocando horas de trabalho perdidas durante o 
tempo em que a máquina fica parada […] custos de 
suporte e manutenção de TI elevados e baixa 
satisfação do cliente.” 
[ComputerWorld 2005]
De quem é a culpa?
Preze pela Qualidade 
"De ambos. Tanto do cliente, quanto de quem 
desenvolve o software.” 
[Roger Pressman]
Preze pela Qualidade 
• ISO 9126 
• ISO 9000 
• Software Quality Assurance
Teste, teste 
e teste novamente
Teste, teste e teste novamente 
“O teste é uma parte inevitável de qualquer trabalho 
responsável para o desenvolvimento de um sistema 
de software." 
[William Howden]
Teste, teste e teste novamente 
• Para executar um teste eficaz, proceda com revisões 
técnicas eficazes. 
• O teste inicia no nível de componentes e progride em 
direção à integração do sistema como um todo. 
• Diferentes técnicas de teste são apropriadas para 
diferentes abordagens de engenharia de software e em 
diferentes pontos no tempo. 
• O teste é feito pelo desenvolvedor do software e (para 
grandes projetos) por um grupo independente de teste.
Teste, teste e teste novamente
Teste, teste e teste novamente 
Quando devo parar de testar? 
• Primeira resposta: “O teste nunca termina; o 
encargo simplesmente passa do engenheiro de 
software para o usuário final”. 
• Segunda resposta: “O teste acaba quando o tempo 
ou o dinheiro acabam."
Teste, teste e teste novamente 
“Teste que leva em conta somente os requisitos do 
usuário final é como a inspeção de um edifício baseado 
apenas no trabalho executado pelo projetista de 
interiores, não considerando as fundações, vigas e 
tubulações.” 
[Boris Beizer]
Teste, teste e teste novamente 
• Teste Caixa-Branca 
• Teste de Estrutura de Controle 
• Teste Caixa-Preta 
• Teste Baseado em Modelos
Métricas
Métricas 
“Não se pode controlar aquilo que não se consegue 
medir.” 
[Tom DeMarco]
Métricas 
• Diretas 
• Total de linhas de códigos 
• Indiretas 
• Pontos de função 
• Base histórica
Métricas 
• Melhorar a previsibilidade e a chance de sucesso 
de projetos 
• Permitir melhor gerenciamento sobre o projeto 
• Avaliar a produtividade e a qualidade de um 
processo 
• Avaliar o benefício de métodos e ferramentas 
• Reduzir pressão sobre os cronogramas
Métricas 
• Formulação: A criação de medidas e métricas de software 
apropriadas. 
• Coleção: O mecanismo usado para armazenar dados 
necessários para criar as métricas formuladas. 
• Análise: A computação das métricas. 
• Interpretação: A avaliação de métricas que resultam e 
informações. 
• Feedback: Recomendações derivadas da interpretação de 
métricas de produto transmitidas para a equipe de software. 
[Roche]
Métricas 
“A experiência indica que a métrica de um produto 
será usada somente se ela for clara e fácil de 
computar.” 
[Roger Pressman]
• Processo 
• Padrões 
• Qualidade 
• Testes 
• Métricas
Referências 
• PRESSMAN, Roger S. Engenharia de Software - 
Uma Abordagem Profissional. Porto Alegre. 7. ed. 
Bookman, 2011. 
• GAMMA, Erich; HELM, Richard; JOHNSON, 
Ralph; VLISSIDES, John. Padrões de Projeto - 
Soluções reutilizáveis de software orientado a 
objetos. Porto Alegre. Bookman, 2000.

Mais conteúdo relacionado

Mais procurados

Modelos de Processo de Software Parte 1
Modelos de Processo de Software Parte 1Modelos de Processo de Software Parte 1
Modelos de Processo de Software Parte 1Elaine Cecília Gatto
 
Modelos de Processo de Software Parte 4
Modelos de Processo de Software Parte 4Modelos de Processo de Software Parte 4
Modelos de Processo de Software Parte 4Elaine Cecília Gatto
 
Modelos de Processo de Software Parte 2
Modelos de Processo de Software Parte 2Modelos de Processo de Software Parte 2
Modelos de Processo de Software Parte 2Elaine Cecília Gatto
 
Qualidade de Software - Introdução
Qualidade de Software - Introdução Qualidade de Software - Introdução
Qualidade de Software - Introdução Elaine Cecília Gatto
 
PSP - Personal Software Process
PSP - Personal Software ProcessPSP - Personal Software Process
PSP - Personal Software ProcessRafael Queiroz
 
Conhecendo o eXtreme Programming
Conhecendo o eXtreme ProgrammingConhecendo o eXtreme Programming
Conhecendo o eXtreme ProgrammingDaniel Wildt
 
Fatores de Qualidade de MacCall e ISO/IEC 9126
Fatores de Qualidade de MacCall e ISO/IEC 9126Fatores de Qualidade de MacCall e ISO/IEC 9126
Fatores de Qualidade de MacCall e ISO/IEC 9126Elaine Cecília Gatto
 
Introducao a analise de testes de softwares
Introducao a analise de testes de softwaresIntroducao a analise de testes de softwares
Introducao a analise de testes de softwaresIntellecta
 
Teste de software - Processo de Verificação e Validação
Teste de software - Processo de Verificação e ValidaçãoTeste de software - Processo de Verificação e Validação
Teste de software - Processo de Verificação e ValidaçãoJoeldson Costa Damasceno
 
Introdução a Metodologia XP (E Xtreme Programming)
Introdução a Metodologia XP (E Xtreme Programming)Introdução a Metodologia XP (E Xtreme Programming)
Introdução a Metodologia XP (E Xtreme Programming)Rennan Martini
 
Introdução a Engenharia de Software - Prof.ª Cristiane Fidelix
Introdução a Engenharia de Software - Prof.ª Cristiane FidelixIntrodução a Engenharia de Software - Prof.ª Cristiane Fidelix
Introdução a Engenharia de Software - Prof.ª Cristiane FidelixCris Fidelix
 

Mais procurados (20)

Modelos de Processo de Software Parte 1
Modelos de Processo de Software Parte 1Modelos de Processo de Software Parte 1
Modelos de Processo de Software Parte 1
 
Modelos de Processo de Software Parte 4
Modelos de Processo de Software Parte 4Modelos de Processo de Software Parte 4
Modelos de Processo de Software Parte 4
 
Modelos de Processo de Software Parte 2
Modelos de Processo de Software Parte 2Modelos de Processo de Software Parte 2
Modelos de Processo de Software Parte 2
 
Outras Metodologias Ágeis Parte1
Outras Metodologias Ágeis Parte1Outras Metodologias Ágeis Parte1
Outras Metodologias Ágeis Parte1
 
Qualidade de Software - Introdução
Qualidade de Software - Introdução Qualidade de Software - Introdução
Qualidade de Software - Introdução
 
PSP - Personal Software Process
PSP - Personal Software ProcessPSP - Personal Software Process
PSP - Personal Software Process
 
Conhecendo o eXtreme Programming
Conhecendo o eXtreme ProgrammingConhecendo o eXtreme Programming
Conhecendo o eXtreme Programming
 
Fatores de Qualidade de MacCall e ISO/IEC 9126
Fatores de Qualidade de MacCall e ISO/IEC 9126Fatores de Qualidade de MacCall e ISO/IEC 9126
Fatores de Qualidade de MacCall e ISO/IEC 9126
 
Qualidade de Software: MPS.BR
Qualidade de Software: MPS.BRQualidade de Software: MPS.BR
Qualidade de Software: MPS.BR
 
Metodologia Ágil
Metodologia ÁgilMetodologia Ágil
Metodologia Ágil
 
DSDM
DSDMDSDM
DSDM
 
Crystal Clear
Crystal ClearCrystal Clear
Crystal Clear
 
CMMI
CMMICMMI
CMMI
 
Introducao a analise de testes de softwares
Introducao a analise de testes de softwaresIntroducao a analise de testes de softwares
Introducao a analise de testes de softwares
 
Teste de software - Processo de Verificação e Validação
Teste de software - Processo de Verificação e ValidaçãoTeste de software - Processo de Verificação e Validação
Teste de software - Processo de Verificação e Validação
 
Outras Metodologias Ágeis Parte 2
Outras Metodologias Ágeis Parte 2Outras Metodologias Ágeis Parte 2
Outras Metodologias Ágeis Parte 2
 
Outras Metodologias Ágeis Parte 3
Outras Metodologias Ágeis Parte 3Outras Metodologias Ágeis Parte 3
Outras Metodologias Ágeis Parte 3
 
Scrum - conceitos iniciais
Scrum - conceitos iniciaisScrum - conceitos iniciais
Scrum - conceitos iniciais
 
Introdução a Metodologia XP (E Xtreme Programming)
Introdução a Metodologia XP (E Xtreme Programming)Introdução a Metodologia XP (E Xtreme Programming)
Introdução a Metodologia XP (E Xtreme Programming)
 
Introdução a Engenharia de Software - Prof.ª Cristiane Fidelix
Introdução a Engenharia de Software - Prof.ª Cristiane FidelixIntrodução a Engenharia de Software - Prof.ª Cristiane Fidelix
Introdução a Engenharia de Software - Prof.ª Cristiane Fidelix
 

Semelhante a Engenharia de Software: A ponte para um código sustentável

Automação de testes de desempenho para sistemas web utilizando a ferramenta J...
Automação de testes de desempenho para sistemas web utilizando a ferramenta J...Automação de testes de desempenho para sistemas web utilizando a ferramenta J...
Automação de testes de desempenho para sistemas web utilizando a ferramenta J...Leandro Ugioni
 
Métricas de software: modelos de contratação e planejamento de projetos
Métricas de software: modelos de contratação e planejamento de projetosMétricas de software: modelos de contratação e planejamento de projetos
Métricas de software: modelos de contratação e planejamento de projetosJosé Claudemir Pacheco Júnior
 
Papéis em Teste e Qualidade de Software
Papéis em Teste e Qualidade de SoftwarePapéis em Teste e Qualidade de Software
Papéis em Teste e Qualidade de SoftwareCamilo Ribeiro
 
Gerenciamento PDS
Gerenciamento PDSGerenciamento PDS
Gerenciamento PDSFatec Jales
 
Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida d...
Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida d...Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida d...
Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida d...Igor Abade
 
Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?Igor Abade
 
4 engenharia de software
4   engenharia de software4   engenharia de software
4 engenharia de softwareFelipe Bugov
 
Gerenciamento de equipes no desenvolvimento de software
Gerenciamento de equipes no desenvolvimento de softwareGerenciamento de equipes no desenvolvimento de software
Gerenciamento de equipes no desenvolvimento de softwareRoberto Brandini
 
Qualidade de Software, Conceitos Modelos e Situação Atual
Qualidade de Software, Conceitos Modelos e Situação AtualQualidade de Software, Conceitos Modelos e Situação Atual
Qualidade de Software, Conceitos Modelos e Situação AtualSidnei Viana Dos Santos
 
Apresentação artigo teste software 26042010
Apresentação artigo   teste software 26042010Apresentação artigo   teste software 26042010
Apresentação artigo teste software 26042010Fabio Franzotti
 
Es2 modelo de processo de software
Es2 modelo de processo de softwareEs2 modelo de processo de software
Es2 modelo de processo de softwareluacal
 
Gerenciando Testes Com Qualidade V2a
Gerenciando Testes Com Qualidade V2aGerenciando Testes Com Qualidade V2a
Gerenciando Testes Com Qualidade V2aLeonardo Molinari
 
Modelos de Processo de Software Parte 5
Modelos de Processo de Software Parte 5Modelos de Processo de Software Parte 5
Modelos de Processo de Software Parte 5Elaine Cecília Gatto
 

Semelhante a Engenharia de Software: A ponte para um código sustentável (20)

Aula 3 - Engenharia de Software
Aula 3 - Engenharia de SoftwareAula 3 - Engenharia de Software
Aula 3 - Engenharia de Software
 
Introdução ao RUP
Introdução ao RUPIntrodução ao RUP
Introdução ao RUP
 
Automação de testes de desempenho para sistemas web utilizando a ferramenta J...
Automação de testes de desempenho para sistemas web utilizando a ferramenta J...Automação de testes de desempenho para sistemas web utilizando a ferramenta J...
Automação de testes de desempenho para sistemas web utilizando a ferramenta J...
 
Métricas de software: modelos de contratação e planejamento de projetos
Métricas de software: modelos de contratação e planejamento de projetosMétricas de software: modelos de contratação e planejamento de projetos
Métricas de software: modelos de contratação e planejamento de projetos
 
Aula 02
Aula 02Aula 02
Aula 02
 
Papéis em Teste e Qualidade de Software
Papéis em Teste e Qualidade de SoftwarePapéis em Teste e Qualidade de Software
Papéis em Teste e Qualidade de Software
 
Teste de Software
Teste de SoftwareTeste de Software
Teste de Software
 
Gerenciamento PDS
Gerenciamento PDSGerenciamento PDS
Gerenciamento PDS
 
Metodologias Ageis
Metodologias AgeisMetodologias Ageis
Metodologias Ageis
 
Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida d...
Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida d...Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida d...
Scrum e Team Foundation Server - Qualidade ao longo de todo o ciclo de vida d...
 
Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?Menos teste e mais qualidade - como equilibrar essa equação?
Menos teste e mais qualidade - como equilibrar essa equação?
 
4 engenharia de software
4   engenharia de software4   engenharia de software
4 engenharia de software
 
Gerenciamento de equipes no desenvolvimento de software
Gerenciamento de equipes no desenvolvimento de softwareGerenciamento de equipes no desenvolvimento de software
Gerenciamento de equipes no desenvolvimento de software
 
Qualidade de Software, Conceitos Modelos e Situação Atual
Qualidade de Software, Conceitos Modelos e Situação AtualQualidade de Software, Conceitos Modelos e Situação Atual
Qualidade de Software, Conceitos Modelos e Situação Atual
 
Apresentação artigo teste software 26042010
Apresentação artigo   teste software 26042010Apresentação artigo   teste software 26042010
Apresentação artigo teste software 26042010
 
Es2 modelo de processo de software
Es2 modelo de processo de softwareEs2 modelo de processo de software
Es2 modelo de processo de software
 
Gerenciando Testes Com Qualidade V2a
Gerenciando Testes Com Qualidade V2aGerenciando Testes Com Qualidade V2a
Gerenciando Testes Com Qualidade V2a
 
SCRUM - Aula1
SCRUM - Aula1SCRUM - Aula1
SCRUM - Aula1
 
O que é Teste de Software?
O que é Teste de Software?O que é Teste de Software?
O que é Teste de Software?
 
Modelos de Processo de Software Parte 5
Modelos de Processo de Software Parte 5Modelos de Processo de Software Parte 5
Modelos de Processo de Software Parte 5
 

Engenharia de Software: A ponte para um código sustentável

  • 1. ENGENHARIA DE SOFTWARE A PONTE PARA UM CÓDIGO SUSTENTÁVEL Fernando Pontes
  • 2. Fernando Pontes • Diretor/desenvolvedor na websonic - Agência Interativa. • Bacharel em Sistemas de Informação - FACIMP • Pós-graduando em Engenharia de Software - PUC Minas
  • 3. Agenda • Conceitos • Os 4 P’s da Engenharia de Software • Adote um processo • Utilize padrões • Preze pela qualidade • Teste, teste e teste novamente • Métricas
  • 5. Sustentabilidade “Qualidade ou condição do que é sustentável." “Que tem condições para se manter ou conservar." Dicionário Aurélio Sustentável
  • 7. Engenharia de Software "O estabelecimento e o emprego de sólidos princípios de engenharia de modo a obter software de maneira econômica, que seja confiável e funcione de forma eficiente em máquinas reais." Fritz Bauer
  • 8. Software Legado • Programas antigos. • Sofrem contínua manutenção. • Muitos dão suporte a funções vitais. • Podem apresentar baixa qualidade. • Documentação pobre ou inexistente. • Testes e resultados não arquivados. • Histórico de modificações mal administrado.
  • 9. O Objetivo da Engenharia de Software Moderna é o de “elaborar metodologias baseadas na noção de evolução" [Day99]
  • 10.
  • 11.
  • 12. Dados • Mais de 1 bilhão de usuários. • Os usuários curtem 6 bilhões de coisas por dia. • Compartilham 400 bilhões de fotos. • 7 petabytes de armazenamento de fotos em 2012.
  • 13. “Escrever um trecho de código inteligente que funcione é uma coisa; projetar algo que possa dar suporte a negócios duradouros é outra totalmente diferente." [C. Ferguson]
  • 14. Engenharia de Software Ferramentas Métodos Processo Foco na qualidade [Roger Pressman]
  • 15. Os 4 P’s da Engenharia de Software
  • 16. 4 P’s da ES 1. Pessoas 2. Produto 3. Processo 4. Projeto
  • 18. Processos "É um conjunto de atividades, ações e tarefas realizadas na criação de algum produto de trabalho (work product)." [Roger Pressman]
  • 19. “Um processo define quem está fazendo o quê, quando e como para atingir determinado objetivo.” Processos [Ivar Jacobson, Grady Booch e James Rumbaugh]
  • 20. Processos Metodologia de processo Atividades estruturais Atividades de apoio
  • 21. Processos • Comunicação • Planejamento • Modelagem • Construção • Emprego Atividades estruturais
  • 22. Processos Atividades de apoio • Controle e acompanhamento do projeto • Administração de riscos • Garantia da qualidade de software • Revisões técnicas • Medição • Gerenciamento da configuração de software • Gerenciamento da reusabilidade • Preparo e produção de artefatos de software
  • 23. Processos 1. Compreender o problema (comunicação e análise) 2. Planejar uma solução (modelagem e projeto de software) 3. Executar o plano (geração de código) 4. Examinar o resultado para ter precisão (testes e garantia da qualidade) [How to Solve It - George Polya]
  • 24. Processos Processos prescritivos • RUP (Rational Unified Process) Desenvolvimento Ágil • OpenUP • Manifesto para o Desenvolvimento Ágil de Software • XP - EXTREME PROGRAMMING • Scrum
  • 26. Padrões de Projeto “Cada padrão descreve um problema que ocorre repetidamente em nosso ambiente e então descreve o cerne de uma solução para aquele problema para podermos usar a solução repetidamente um milhão de vezes sem jamais ter de fazer a mesma coisa duas vezes.” [Christopher Alexander]
  • 27. Padrões de Projeto “É uma regra de três partes que expressa uma relação entre um contexto, um problema e uma solução.” [Christopher Alexander]
  • 28. Padrões de Projeto • Criacionais • Estruturais • Comportamentais [Gamma e seus amigos]
  • 30. Preze pela Qualidade • Transcendental • Usuário • Fabricante • Produto • Baseada em valor [David Garvin Harvad Business School]
  • 31. Preze pela Qualidade Satisfação do usuário = produto compatível + boa qualidade + entrega dentro do orçamento e do prazo [Robert Glass]
  • 32. Preze pela Qualidade "Chega de desperdiçar US$ 78 bilhões por ano" [CIO Magazine 2001]
  • 33. Preze pela Qualidade “Software de má qualidade está em praticamente todas as organizações que usam computadores, provocando horas de trabalho perdidas durante o tempo em que a máquina fica parada […] custos de suporte e manutenção de TI elevados e baixa satisfação do cliente.” [ComputerWorld 2005]
  • 34. De quem é a culpa?
  • 35. Preze pela Qualidade "De ambos. Tanto do cliente, quanto de quem desenvolve o software.” [Roger Pressman]
  • 36. Preze pela Qualidade • ISO 9126 • ISO 9000 • Software Quality Assurance
  • 37. Teste, teste e teste novamente
  • 38. Teste, teste e teste novamente “O teste é uma parte inevitável de qualquer trabalho responsável para o desenvolvimento de um sistema de software." [William Howden]
  • 39. Teste, teste e teste novamente • Para executar um teste eficaz, proceda com revisões técnicas eficazes. • O teste inicia no nível de componentes e progride em direção à integração do sistema como um todo. • Diferentes técnicas de teste são apropriadas para diferentes abordagens de engenharia de software e em diferentes pontos no tempo. • O teste é feito pelo desenvolvedor do software e (para grandes projetos) por um grupo independente de teste.
  • 40. Teste, teste e teste novamente
  • 41. Teste, teste e teste novamente Quando devo parar de testar? • Primeira resposta: “O teste nunca termina; o encargo simplesmente passa do engenheiro de software para o usuário final”. • Segunda resposta: “O teste acaba quando o tempo ou o dinheiro acabam."
  • 42. Teste, teste e teste novamente “Teste que leva em conta somente os requisitos do usuário final é como a inspeção de um edifício baseado apenas no trabalho executado pelo projetista de interiores, não considerando as fundações, vigas e tubulações.” [Boris Beizer]
  • 43. Teste, teste e teste novamente • Teste Caixa-Branca • Teste de Estrutura de Controle • Teste Caixa-Preta • Teste Baseado em Modelos
  • 45. Métricas “Não se pode controlar aquilo que não se consegue medir.” [Tom DeMarco]
  • 46. Métricas • Diretas • Total de linhas de códigos • Indiretas • Pontos de função • Base histórica
  • 47. Métricas • Melhorar a previsibilidade e a chance de sucesso de projetos • Permitir melhor gerenciamento sobre o projeto • Avaliar a produtividade e a qualidade de um processo • Avaliar o benefício de métodos e ferramentas • Reduzir pressão sobre os cronogramas
  • 48. Métricas • Formulação: A criação de medidas e métricas de software apropriadas. • Coleção: O mecanismo usado para armazenar dados necessários para criar as métricas formuladas. • Análise: A computação das métricas. • Interpretação: A avaliação de métricas que resultam e informações. • Feedback: Recomendações derivadas da interpretação de métricas de produto transmitidas para a equipe de software. [Roche]
  • 49. Métricas “A experiência indica que a métrica de um produto será usada somente se ela for clara e fácil de computar.” [Roger Pressman]
  • 50. • Processo • Padrões • Qualidade • Testes • Métricas
  • 51. Referências • PRESSMAN, Roger S. Engenharia de Software - Uma Abordagem Profissional. Porto Alegre. 7. ed. Bookman, 2011. • GAMMA, Erich; HELM, Richard; JOHNSON, Ralph; VLISSIDES, John. Padrões de Projeto - Soluções reutilizáveis de software orientado a objetos. Porto Alegre. Bookman, 2000.