![Page 1: Leonardo(Gresta(Paulino(Murta leomurta@ic.uff.br(leomurta/courses/2015.1/es2/aula8.pdf · • Indentação e espaçamento • Evitar o uso de armadilhas clássicas das linguagens](https://reader033.vdocuments.mx/reader033/viewer/2022060211/5f04c61b7e708231d40fa2c1/html5/thumbnails/1.jpg)
Leonardo Gresta Paulino Murta [email protected]
![Page 2: Leonardo(Gresta(Paulino(Murta leomurta@ic.uff.br(leomurta/courses/2015.1/es2/aula8.pdf · • Indentação e espaçamento • Evitar o uso de armadilhas clássicas das linguagens](https://reader033.vdocuments.mx/reader033/viewer/2022060211/5f04c61b7e708231d40fa2c1/html5/thumbnails/2.jpg)
Cenário atual
Leonardo Murta Manutenção de Software 2
90% do custo total [Erlikh 2000]
60% do esforço total [Pressman 1997]
250 bilhões de linhas de código em manutenção [Sommerville 2000]
70 bilhões de dólares anuais nos EUA [Edelstein 1993]
![Page 3: Leonardo(Gresta(Paulino(Murta leomurta@ic.uff.br(leomurta/courses/2015.1/es2/aula8.pdf · • Indentação e espaçamento • Evitar o uso de armadilhas clássicas das linguagens](https://reader033.vdocuments.mx/reader033/viewer/2022060211/5f04c61b7e708231d40fa2c1/html5/thumbnails/3.jpg)
Cenário Mundial • Somente 21% do esforço de manutenção é
despendido em correções de erros (Bennett and Rajlich 2000)
• Manutenção é necessária mesmo em sistema com qualidade – Adaptação para novas regulamentações legais – Novos requisitos – Torná-lo mais simples de compreender e manter
Leonardo Murta Manutenção de Software 3
![Page 4: Leonardo(Gresta(Paulino(Murta leomurta@ic.uff.br(leomurta/courses/2015.1/es2/aula8.pdf · • Indentação e espaçamento • Evitar o uso de armadilhas clássicas das linguagens](https://reader033.vdocuments.mx/reader033/viewer/2022060211/5f04c61b7e708231d40fa2c1/html5/thumbnails/4.jpg)
Cenário Brasileiro
• Manutenção no Brasil [MCT 2006] – 2500 empresas
entrevistadas – 95% de
confiabilidade – Erro máximo de 5,5%
0%
5%
10%
15%
20%
25%
30%
1997 1999 2001 2005
Gestão demudançaGerência deconfiguração
Manutenção de Software 4 Leonardo Murta
![Page 5: Leonardo(Gresta(Paulino(Murta leomurta@ic.uff.br(leomurta/courses/2015.1/es2/aula8.pdf · • Indentação e espaçamento • Evitar o uso de armadilhas clássicas das linguagens](https://reader033.vdocuments.mx/reader033/viewer/2022060211/5f04c61b7e708231d40fa2c1/html5/thumbnails/5.jpg)
O que é a manutenção? O processo de modificar um sistema de
software ou componente, depois da entrega, para corrigir falhas, melhorar desempenho ou outros atributos, ou adaptar a mudanças no ambiente.
IEEE Std 620.12 1990
Leonardo Murta Manutenção de Software 5
![Page 6: Leonardo(Gresta(Paulino(Murta leomurta@ic.uff.br(leomurta/courses/2015.1/es2/aula8.pdf · • Indentação e espaçamento • Evitar o uso de armadilhas clássicas das linguagens](https://reader033.vdocuments.mx/reader033/viewer/2022060211/5f04c61b7e708231d40fa2c1/html5/thumbnails/6.jpg)
Quando inicia a manutenção?
Leonardo Murta Manutenção de Software 6
Desenvolvimento Manutenção Release
![Page 7: Leonardo(Gresta(Paulino(Murta leomurta@ic.uff.br(leomurta/courses/2015.1/es2/aula8.pdf · • Indentação e espaçamento • Evitar o uso de armadilhas clássicas das linguagens](https://reader033.vdocuments.mx/reader033/viewer/2022060211/5f04c61b7e708231d40fa2c1/html5/thumbnails/7.jpg)
Quando inicia a manutenção?
Leonardo Murta Manutenção de Software 7
Desenvolvimento Manutenção Release
Desenv.
Manut.
Release
Desenv. Release
Manut.
Desenv.
![Page 8: Leonardo(Gresta(Paulino(Murta leomurta@ic.uff.br(leomurta/courses/2015.1/es2/aula8.pdf · • Indentação e espaçamento • Evitar o uso de armadilhas clássicas das linguagens](https://reader033.vdocuments.mx/reader033/viewer/2022060211/5f04c61b7e708231d40fa2c1/html5/thumbnails/8.jpg)
Quais são os tipos de manutenção?
Manutenção de Software 8 Leonardo Murta
Manutenção
Correção Evolução
Emergencial Corretiva Adaptativa Perfectiva Preventiva
![Page 9: Leonardo(Gresta(Paulino(Murta leomurta@ic.uff.br(leomurta/courses/2015.1/es2/aula8.pdf · • Indentação e espaçamento • Evitar o uso de armadilhas clássicas das linguagens](https://reader033.vdocuments.mx/reader033/viewer/2022060211/5f04c61b7e708231d40fa2c1/html5/thumbnails/9.jpg)
Quais são os tipos de manutenção?
• Manutenção corretiva – Reativa – Corrige problemas reportados – Faz o software voltar a atender aos requisitos
• Manutenção emergencial – Não programada – Mantém temporariamente o sistema funcionando – Necessita uma manutenção corretiva posterior
Leonardo Murta Manutenção de Software 9
![Page 10: Leonardo(Gresta(Paulino(Murta leomurta@ic.uff.br(leomurta/courses/2015.1/es2/aula8.pdf · • Indentação e espaçamento • Evitar o uso de armadilhas clássicas das linguagens](https://reader033.vdocuments.mx/reader033/viewer/2022060211/5f04c61b7e708231d40fa2c1/html5/thumbnails/10.jpg)
Quais são os tipos de manutenção?
• Manutenção preventiva – Pró-ativa – Corrige problemas latentes
• Manutenção adaptativa – Mantém o software usável após mudanças no
ambiente • Manutenção perfectiva
– Provê melhorias para o usuário – Melhora atributos de qualidade do software
Leonardo Murta Manutenção de Software 10
![Page 11: Leonardo(Gresta(Paulino(Murta leomurta@ic.uff.br(leomurta/courses/2015.1/es2/aula8.pdf · • Indentação e espaçamento • Evitar o uso de armadilhas clássicas das linguagens](https://reader033.vdocuments.mx/reader033/viewer/2022060211/5f04c61b7e708231d40fa2c1/html5/thumbnails/11.jpg)
Processo de manutenção
Manutenção de Software 11 Leonardo Murta
Solicitação de Modificação
Análise
Implementação
Revisão
Planejamento
Migração
Descontinuidade
![Page 12: Leonardo(Gresta(Paulino(Murta leomurta@ic.uff.br(leomurta/courses/2015.1/es2/aula8.pdf · • Indentação e espaçamento • Evitar o uso de armadilhas clássicas das linguagens](https://reader033.vdocuments.mx/reader033/viewer/2022060211/5f04c61b7e708231d40fa2c1/html5/thumbnails/12.jpg)
Contratos de manutenção • Tipo 1
– Um único contrato para desenvolvimento e manutenção – Valor fixo, disponível para todos os tipos de manutenção
• Tipo 2 – Contrato separado para manutenção – Período de manutenções corretivas predefinido – Cada manutenção preventiva, adaptativa ou perfectiva
contratada separadamente
Leonardo Murta Manutenção de Software 12
![Page 13: Leonardo(Gresta(Paulino(Murta leomurta@ic.uff.br(leomurta/courses/2015.1/es2/aula8.pdf · • Indentação e espaçamento • Evitar o uso de armadilhas clássicas das linguagens](https://reader033.vdocuments.mx/reader033/viewer/2022060211/5f04c61b7e708231d40fa2c1/html5/thumbnails/13.jpg)
Boas práticas para manutenção (de código)
• Legibilidade • Estruturação • Redução da complexidade • Comentários precisos • Indentação e espaçamento • Evitar o uso de armadilhas clássicas das linguagens
– Ex.: Goto, herança múltipla, etc. • Usar técnicas que ajudam a rastrear erros
– Ex.: Controle de exceções
Leonardo Murta Manutenção de Software 13
![Page 14: Leonardo(Gresta(Paulino(Murta leomurta@ic.uff.br(leomurta/courses/2015.1/es2/aula8.pdf · • Indentação e espaçamento • Evitar o uso de armadilhas clássicas das linguagens](https://reader033.vdocuments.mx/reader033/viewer/2022060211/5f04c61b7e708231d40fa2c1/html5/thumbnails/14.jpg)
Boas práticas para manutenção (de código)
• Rastreabilidade – Código para requisitos, análise e projeto – Código para solicitações de modificação
• Padronização • Inspeções • Testes • Atualização da documentação
– Ex.: Modelos
Leonardo Murta Manutenção de Software 14
![Page 15: Leonardo(Gresta(Paulino(Murta leomurta@ic.uff.br(leomurta/courses/2015.1/es2/aula8.pdf · • Indentação e espaçamento • Evitar o uso de armadilhas clássicas das linguagens](https://reader033.vdocuments.mx/reader033/viewer/2022060211/5f04c61b7e708231d40fa2c1/html5/thumbnails/15.jpg)
Principais Referências Bibliográficas • Benne?, K. H. and V. T. Rajlich (2000). SoLware maintenance and evoluOon: a
roadmap. InternaOonal Conference on SoLware Engineering, The Future of SoLware Engineering, Limerick, Ireland, ACM Press.
• Edelstein, D. (1993). "Report on the IEEE 1219-‐1993-‐ Standard for SoLware Maintenance." ACM SIGSOFT SoLware Engineering Notes 18(4): 94-‐95.
• Erlikh, L. (2000). "Leveraging Legacy System Dollars for E-‐Business." ITProfessional 2(3): 17-‐23.
• IEEE Std 14764-‐2006, “SoLware Engineering – SoLware Life Cycle Processes – Maintenance”.
• MCT (2006). Qualidade e ProduOvidade no Setor de SoLware Brasileiro. Brasília, DF, Ministério de Ciência e Tecnologia, Secretaria de PolíOca de InformáOca.
• Pressman, R. S. (1997). SoLware Engineering: A PracOOoner's Approach, McGraw-‐Hill.
• Sommerville, I. (2000). SoLware Engineering, Addison-‐Wesley.
Leonardo Murta Manutenção de Software 15
![Page 16: Leonardo(Gresta(Paulino(Murta leomurta@ic.uff.br(leomurta/courses/2015.1/es2/aula8.pdf · • Indentação e espaçamento • Evitar o uso de armadilhas clássicas das linguagens](https://reader033.vdocuments.mx/reader033/viewer/2022060211/5f04c61b7e708231d40fa2c1/html5/thumbnails/16.jpg)
Leonardo Gresta Paulino Murta [email protected]