Top Banner
Leonardo Gresta Paulino Murta [email protected]ff.br
16

Leonardo Gresta Paulino Murta [email protected]

Nov 25, 2021

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 2: Leonardo Gresta Paulino Murta leomurta@ic.uff

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

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

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

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

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

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

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

Quais são os tipos de manutenção?

•  Manutenção emergencial – Não programada – Mantém temporariamente o sistema funcionando – Necessita uma manutenção corretiva posterior

•  Manutenção corretiva – Reativa – Corrige problemas reportados – Faz o software voltar a atender aos requisitos

Leonardo Murta Manutenção de Software 9

Page 10: Leonardo Gresta Paulino Murta leomurta@ic.uff

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

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

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

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

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

PrincipaisReferênciasBibliográficas•  Benne?,K.H.andV.T.Rajlich(2000).SoLwaremaintenanceandevoluOon:a

roadmap.InternaOonalConferenceonSoLwareEngineering,TheFutureofSoLwareEngineering,Limerick,Ireland,ACMPress.

•  Edelstein,D.(1993)."ReportontheIEEE1219-1993-StandardforSoLwareMaintenance."ACMSIGSOFTSoLwareEngineeringNotes18(4):94-95.

•  Erlikh,L.(2000)."LeveragingLegacySystemDollarsforE-Business."ITProfessional2(3):17-23.

•  IEEEStd14764-2006,“SoLwareEngineering–SoLwareLifeCycleProcesses–Maintenance”.

•  MCT(2006).QualidadeeProduOvidadenoSetordeSoLwareBrasileiro.Brasília,DF,MinistériodeCiênciaeTecnologia,SecretariadePolíOcadeInformáOca.

•  Pressman,R.S.(1997).SoLwareEngineering:APracOOoner'sApproach,McGraw-Hill.

•  Sommerville,I.(2000).SoLwareEngineering,Addison-Wesley.

Leonardo Murta Manutenção de Software 15