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 ...
Agenda 
• Conceitos 
• Os 4 P’s da Engenharia de 
Software 
• Adote um processo 
• Utilize padrões 
• Preze pela qualidade...
Sustentabilidade
Sustentabilidade 
“Qualidade ou condição do que é sustentável." 
“Que tem condições para se manter ou conservar." 
Dicioná...
Engenharia de Software
Engenharia de Software 
"O estabelecimento e o emprego de sólidos 
princípios de engenharia de modo a obter software 
de m...
Software Legado 
• Programas antigos. 
• Sofrem contínua manutenção. 
• Muitos dão suporte a funções vitais. 
• Podem apre...
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 f...
“Escrever um trecho de código 
inteligente que funcione é uma coisa; 
projetar algo que possa dar suporte a 
negócios dura...
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 produc...
“Um processo define quem está fazendo o quê, 
quando e como para atingir determinado 
objetivo.” 
Processos 
[Ivar Jacobso...
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...
Processos 
1. Compreender o problema (comunicação e 
análise) 
2. Planejar uma solução (modelagem e projeto de 
software) ...
Processos 
Processos prescritivos 
• RUP (Rational Unified Process) 
Desenvolvimento Ágil 
• OpenUP 
• Manifesto para o De...
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 cern...
Padrões de Projeto 
“É uma regra de três partes que expressa uma 
relação entre um contexto, um problema e 
uma solução.” ...
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 Busi...
Preze pela Qualidade 
Satisfação do usuário 
= 
produto compatível 
+ 
boa qualidade 
+ 
entrega dentro do orçamento e do ...
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, 
provoc...
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 d...
Teste, teste e teste novamente 
• Para executar um teste eficaz, proceda com revisões 
técnicas eficazes. 
• O teste inici...
Teste, teste e teste novamente
Teste, teste e teste novamente 
Quando devo parar de testar? 
• Primeira resposta: “O teste nunca termina; o 
encargo simp...
Teste, teste e teste novamente 
“Teste que leva em conta somente os requisitos do 
usuário final é como a inspeção de um e...
Teste, teste e teste novamente 
• Teste Caixa-Branca 
• Teste de Estrutura de Controle 
• Teste Caixa-Preta 
• Teste Basea...
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...
Métricas 
• Formulação: A criação de medidas e métricas de software 
apropriadas. 
• Coleção: O mecanismo usado para armaz...
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.” 
[...
• Processo 
• Padrões 
• Qualidade 
• Testes 
• Métricas
Referências 
• PRESSMAN, Roger S. Engenharia de Software - 
Uma Abordagem Profissional. Porto Alegre. 7. ed. 
Bookman, 201...
Engenharia de Software: A ponte para um código sustentável
Engenharia de Software: A ponte para um código sustentável
Próximos SlideShares
Carregando em…5
×

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

392 visualizações

Publicada em

Dicas para o desenvolvimento de software com qualidade, que seja sustentável, entregue no prazo e dentro do orçamento.

Publicada em: Software
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
392
No SlideShare
0
A partir de incorporações
0
Número de incorporações
3
Ações
Compartilhamentos
0
Downloads
17
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

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

  1. 1. ENGENHARIA DE SOFTWARE A PONTE PARA UM CÓDIGO SUSTENTÁVEL Fernando Pontes
  2. 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. 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
  4. 4. Sustentabilidade
  5. 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
  6. 6. Engenharia de Software
  7. 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. 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. 9. O Objetivo da Engenharia de Software Moderna é o de “elaborar metodologias baseadas na noção de evolução" [Day99]
  10. 10. 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.
  11. 11. “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]
  12. 12. Engenharia de Software Ferramentas Métodos Processo Foco na qualidade [Roger Pressman]
  13. 13. Os 4 P’s da Engenharia de Software
  14. 14. 4 P’s da ES 1. Pessoas 2. Produto 3. Processo 4. Projeto
  15. 15. Adote um Processo
  16. 16. Processos "É um conjunto de atividades, ações e tarefas realizadas na criação de algum produto de trabalho (work product)." [Roger Pressman]
  17. 17. “Um processo define quem está fazendo o quê, quando e como para atingir determinado objetivo.” Processos [Ivar Jacobson, Grady Booch e James Rumbaugh]
  18. 18. Processos Metodologia de processo Atividades estruturais Atividades de apoio
  19. 19. Processos • Comunicação • Planejamento • Modelagem • Construção • Emprego Atividades estruturais
  20. 20. 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
  21. 21. 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]
  22. 22. Processos Processos prescritivos • RUP (Rational Unified Process) Desenvolvimento Ágil • OpenUP • Manifesto para o Desenvolvimento Ágil de Software • XP - EXTREME PROGRAMMING • Scrum
  23. 23. Utilize Padrões de Projeto
  24. 24. 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]
  25. 25. 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]
  26. 26. Padrões de Projeto • Criacionais • Estruturais • Comportamentais [Gamma e seus amigos]
  27. 27. Preze pela Qualidade
  28. 28. Preze pela Qualidade • Transcendental • Usuário • Fabricante • Produto • Baseada em valor [David Garvin Harvad Business School]
  29. 29. Preze pela Qualidade Satisfação do usuário = produto compatível + boa qualidade + entrega dentro do orçamento e do prazo [Robert Glass]
  30. 30. Preze pela Qualidade "Chega de desperdiçar US$ 78 bilhões por ano" [CIO Magazine 2001]
  31. 31. 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]
  32. 32. De quem é a culpa?
  33. 33. Preze pela Qualidade "De ambos. Tanto do cliente, quanto de quem desenvolve o software.” [Roger Pressman]
  34. 34. Preze pela Qualidade • ISO 9126 • ISO 9000 • Software Quality Assurance
  35. 35. Teste, teste e teste novamente
  36. 36. 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]
  37. 37. 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.
  38. 38. Teste, teste e teste novamente
  39. 39. 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."
  40. 40. 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]
  41. 41. Teste, teste e teste novamente • Teste Caixa-Branca • Teste de Estrutura de Controle • Teste Caixa-Preta • Teste Baseado em Modelos
  42. 42. Métricas
  43. 43. Métricas “Não se pode controlar aquilo que não se consegue medir.” [Tom DeMarco]
  44. 44. Métricas • Diretas • Total de linhas de códigos • Indiretas • Pontos de função • Base histórica
  45. 45. 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
  46. 46. 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]
  47. 47. 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]
  48. 48. • Processo • Padrões • Qualidade • Testes • Métricas
  49. 49. 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.

×