SlideShare uma empresa Scribd logo
1 de 35
Manutenção de
Software
Wagner Zaparoli
wzaparoli@gmail.com
Manutenção de Software 2
Agenda
Manutenção de Software 3
Parte 1 – Manutenção de Software
Manutenção de Software 4
Cenário
Manutenção de Software 5
Passado – Presente
 Os sistemas legados respondem pela maior parte do
processamento de dados mundial.
 Entre 60% e 70% dos sistemas estão em COBOL, estima-se em
200 milhões de linhas1
.
1
SEACORD et al, 2003 e ULRICH, 2002
 A participação do custo de manutenção no custo total de um
sistema tem crescido de 40%, nos anos 70, até 90%, atualmente2
.
 Destes custos, cerca de 20% são consumidos com correções e
80% com melhorias diversas.
2
PIGOSKI, 1996
Manutenção de Software 6
Futuro
Tempo
Linhas-Código
Manutenções  Inevitáveis
Manutenção de Software 7
Motivações
• Surgem novos requisitos.
• O ambiente do negócio muda.
• Erros devem ser reparados.
• Nova infra-estrutura deve ser incorporada.
• O desempenho do software pode ser melhorado.
Manutenção de Software 8
Fundamentos
Manutenção de Software 9
Conceito*
*
IEEE, 1998
Manutenção de Software 10
Classificação*
*
Pressman, 2002
Corretiva Adaptativa
Perfectiva Preventiva
Manutenção de Software 11
Corretiva
Visa corrigir defeitos de funcionalidade, incluindo
os acertos emergenciais
Manutenção de Software 12
Adaptativa
Visa adequar o software ao seu ambiente externo
(SO, infra-estrutura, periféricos, integrações)
Manutenção de Software 13
Perfectiva
Objetiva acrescentar novos recursos de
funcionalidades ao software, normalmente
solicitados pelo usuário
Manutenção de Software 14
Preventiva
Visa modificar o software para melhorar a
confiabilidade ou a manutenibilidade futura, ou
para oferecer uma base melhor para futuras
ampliações
Manutenção de Software 15
Quando Executar?
Pós-desenvolvimento
Desenvolvimento
Pré-desenvolvimento
Estudo Preliminar
ProjetoAnáliseConcepção
Construção Teste/Docum. Homologação Implantação
Planejamento
Manutenção
G
E
S
T
Ã
O
Manutenção de Software 16
Como Executar?
Receber, validar e
categorizar pedido
Executar a manutenção
Controlador de
Manutenção
Supervisor de
Sistemas
Pessoal de
Manutenção
Manutenção de Software 17
Receber, Validar e Categorizar
Gravidade
Ação
Tipo?
Tipo?
Avaliar,
categorizar e
colocar na fila
Avaliar e
categorizar
Informar
solicitante
Priorizar e
colocar na fila
Apagar incêndio
no alto da fila
Avaliar,
categorizar e
colocar na fila
Pedido
Manutenção
Outro Erro
AcréscimoAdaptação Muita Não muita
FazerCancelar
Manutenção de Software 18
Executar Manutenção
Faltam
tarefas?
Selecionar
próxima tarefa
da fila
Planejar, organizar e
aplicar engenharia de
software
Sim
Registrar e
encerrar
atividade
Não
Manutenção de Software 19
Pontos de
Atenção
Manutenção de Software 20
Problemas
Gerência Infra-estrutura
Humanos Software
Manutenção de Software 21
Fatores de Gerência
• Visão diferenciada entre equipe de
desenvolvimento e equipe de manutenção.
• Dificuldades de comunicação entre equipe
de manutenção e organização.
• Treinamento inadequado da equipe.
• Sobrecarga de tarefas.
• Estimativas equivocadas.
• Dificuldade em medir e avaliar
desempenho da equipe de manutenção.
• Contratação de temporários para auxiliar
execução da manutenção.
Manutenção de Software 22
Fatores de Infra-estrutura
• Estagnação do ambiente de trabalho.
• Falta de tecnologia operacional adequada.
• Falta de tecnologia gerencial adequada.
Manutenção de Software 23
Fatores Humanos
• Elevada rotatividade de profissionais.
• Falta de uma esquipe de manutenção.
• Preferência da equipe por trabalho de
desenvolvimento.
• Falhas de comunicação com usuários.
• Mudanças frequentes de prioridades por
parte do usuário.
• Métodos inadequados de teste.
Manutenção de Software 24
Fatores de Software
• Baixa qualidade da documentação do
software original.
• Má qualidade do fonte-original.
• Necessidade de integração com softwares
incompatíveis.
Alternativas de Mitigação
Manutenção de Software 25
• Processos
 Implantar a filosofia de projeto para manutenção.
 Enfatizar que todo código esteja cuidadosamente
documentado.
 Planejar cronogramas que incluam documentação e
testes.
 Promover os sucessos e evitar fracassos anteriores
com lições aprendidas.
 Instituir e reforçar práticas de qualidade.
 Melhorar a relação entre equipe técnica e clientes.
 Melhorar seleção de fornecedores e monitorar
processos, planos de estratégias, e tomadas de
decisões.
Alternativas de Mitigação
Manutenção de Software 26
• Pessoas
 Associar pessoas a papéis adequados.
 Melhorar o prestígio das tarefas de manutenção.
 Tornar mais efetivo o treinamento, especialmente em
relação ao uso de ferramentas, documentação e
padrões.
 Melhorar o projeto de comunicação e incentivar às
pessoas a utilizarem-no.
Alternativas de Mitigação
Manutenção de Software 27
• Tecnologia
 Investir em ferramentas mais efetivas, que abarcam
engenharia reversa, reengenharia, testes, gerência de
configuração e documentação.
 Melhorar a qualidade das ferramentas desenvolvidas
internamente.
 Melhorar as atividades e ferramentas que centralizem
comunicação entre projetos.
 Encorajar equipe técnica a comunicar suas
necessidades de ferramentas.
Manutenção de Software 28
Manutenibilidade
Manutenção de Software 29
Conceito*
*
Pressman, 2002
É a meta principal que orienta os passos de um processo de
engenharia de um software
Manutenção de Software 30
Fatores Controladores
*
Pressman, 2002
Ambiente de
Desenvolvimento
Medidas
Quantitativas
Revisões
Manutenção de Software 31
Ambiente de Desenvolvimento
 Disponibilidade de um pessoal de software qualificado.
 Estrutura de sistema compreensível.
 Facilidade de manuseio do sistema.
 Uso de linguagem de programação padronizada.
 Estrutura de documentação padronizada.
 Disponibilidade de casos de teste.
 Facilidades de depuração embutidas.
 Disponibilidade de um ambiente (sw/hw) adequado para
realizar a manutenção.
 Planejamento para a manutenibilidade.
Manutenção de Software 32
Medidas Quantitativas
 Tempo de reconhecimento do problema.
 Tempo de retardo administrativo.
 Tempo de coleta de ferramenta de manutenção.
 Tempo de análise do problema.
 Tempo de especificação das mudanças.
 Tempo de correção ativa.
 Tempo de testes locais.
 Tempo de testes globais.
 Tempo de revisão de manutenção.
 Tempo de recuperação total.
Manutenção de Software 33
Revisões
Revisão dos requisitos  Anotar possíveis acréscimos.
 Discutir as questões de portabilidade.
 Considerar interfaces que impactam.
Revisão da arquitetura  Projeto de dados, projeto arquitetural,
projeto procedimental e interfaces são
avaliadas quanto à facilidade de
modificação.
Revisão do Código  Estilo.
 Documentação.
Testes  Conhecer partes do software que
necessitam de manutenção antes do
deploy.
Sugestões Bibliográficas
• Seacord, Robert C., Plakosh, Daniel, Lewis, Grace A., Modernizing Legacy Systems:
Software Technologies, Engineering Processes, and Business Practices, Addison-
Wesley, 2003.
• Pigoski, T. M., Practical Software Maintenance: Best Practices for Managing Your
Software Investiment, John Wiley & Sons, Inc., 1996.
• ISO/IEC 14764, Information technology - Software Maintenance,1999.
• Pressman, R. S., Engenharia de Software. 5. ed. São Paulo: Makron Books, 2002.
• Ulrich, William M., Legacy Systems: Transformation Strategies, 2002 Prentice-Hall
PTR, 2002.
• Lientz, B. P., Swanson, E. B., Software Maintenance Management, Reading, MA,
Addison-Wesley, 1980.
• IEEE Computer Society. Swebok – Guide to the Software Engineering Body of
Knowledge, 2004.
Manutenção de Software 34
Manutenção de
Software
Wagner Zaparoli
wzaparoli@gmail.com

Mais conteúdo relacionado

Mais procurados

Introduction to software engineering
Introduction to software engineeringIntroduction to software engineering
Introduction to software engineeringHitesh Mohapatra
 
Requirements Engineering - System Vision
Requirements Engineering - System VisionRequirements Engineering - System Vision
Requirements Engineering - System VisionBirgit Penzenstadler
 
1. Onsite sanitation system and disposal of sludge slide series (1) septic tank
1. Onsite sanitation system and disposal of sludge slide series (1) septic tank1. Onsite sanitation system and disposal of sludge slide series (1) septic tank
1. Onsite sanitation system and disposal of sludge slide series (1) septic tankvvsasane
 
Software maintenance Unit5
Software maintenance  Unit5Software maintenance  Unit5
Software maintenance Unit5Mohammad Faizan
 
Bim challenges and potential
Bim challenges and potentialBim challenges and potential
Bim challenges and potentialThomas Goubau
 
Mep engineer portfolio
Mep engineer portfolioMep engineer portfolio
Mep engineer portfolioJithin Jose
 
2.software requirement specification
2.software requirement specification2.software requirement specification
2.software requirement specificationDeepak Sharma
 
The Future of BIM
The Future of BIMThe Future of BIM
The Future of BIMThe NBS
 
Object Oriented Software Engineering (OOSE) presentation on SOFTWARE MAINTENANCE
Object Oriented Software Engineering (OOSE) presentation on SOFTWARE MAINTENANCEObject Oriented Software Engineering (OOSE) presentation on SOFTWARE MAINTENANCE
Object Oriented Software Engineering (OOSE) presentation on SOFTWARE MAINTENANCEVipin Kumar
 
Requirement engineering evaluation
Requirement engineering evaluationRequirement engineering evaluation
Requirement engineering evaluationIshraq Al Fataftah
 

Mais procurados (20)

Requirements Elicitation
Requirements ElicitationRequirements Elicitation
Requirements Elicitation
 
Aula 2 - Modelos de processos
Aula 2 -  Modelos de processosAula 2 -  Modelos de processos
Aula 2 - Modelos de processos
 
Chapter 2 software process models
Chapter 2   software process modelsChapter 2   software process models
Chapter 2 software process models
 
Introduction to software engineering
Introduction to software engineeringIntroduction to software engineering
Introduction to software engineering
 
Analise de Requisitos Software
Analise de Requisitos SoftwareAnalise de Requisitos Software
Analise de Requisitos Software
 
Requirements Engineering - System Vision
Requirements Engineering - System VisionRequirements Engineering - System Vision
Requirements Engineering - System Vision
 
1. Onsite sanitation system and disposal of sludge slide series (1) septic tank
1. Onsite sanitation system and disposal of sludge slide series (1) septic tank1. Onsite sanitation system and disposal of sludge slide series (1) septic tank
1. Onsite sanitation system and disposal of sludge slide series (1) septic tank
 
Software maintenance Unit5
Software maintenance  Unit5Software maintenance  Unit5
Software maintenance Unit5
 
Bim challenges and potential
Bim challenges and potentialBim challenges and potential
Bim challenges and potential
 
Mep engineer portfolio
Mep engineer portfolioMep engineer portfolio
Mep engineer portfolio
 
Models of SDLC (Software Development Life Cycle / Program Development Life Cy...
Models of SDLC (Software Development Life Cycle / Program Development Life Cy...Models of SDLC (Software Development Life Cycle / Program Development Life Cy...
Models of SDLC (Software Development Life Cycle / Program Development Life Cy...
 
19481415 hidraulica-basica
19481415 hidraulica-basica19481415 hidraulica-basica
19481415 hidraulica-basica
 
Requirements engineering
Requirements engineeringRequirements engineering
Requirements engineering
 
2.software requirement specification
2.software requirement specification2.software requirement specification
2.software requirement specification
 
The Future of BIM
The Future of BIMThe Future of BIM
The Future of BIM
 
Object Oriented Software Engineering (OOSE) presentation on SOFTWARE MAINTENANCE
Object Oriented Software Engineering (OOSE) presentation on SOFTWARE MAINTENANCEObject Oriented Software Engineering (OOSE) presentation on SOFTWARE MAINTENANCE
Object Oriented Software Engineering (OOSE) presentation on SOFTWARE MAINTENANCE
 
Requirement engineering evaluation
Requirement engineering evaluationRequirement engineering evaluation
Requirement engineering evaluation
 
Capitulo 02 sommerville
Capitulo 02 sommervilleCapitulo 02 sommerville
Capitulo 02 sommerville
 
Generic process model
Generic process modelGeneric process model
Generic process model
 
Software Requirements engineering
Software Requirements engineeringSoftware Requirements engineering
Software Requirements engineering
 

Semelhante a Manutenção de Software

Rejuvenescimento Software
Rejuvenescimento SoftwareRejuvenescimento Software
Rejuvenescimento SoftwareMarcus Oliveira
 
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
 
Áreas de Conhecimento da Engenharia de Software
Áreas de Conhecimento da Engenharia de SoftwareÁreas de Conhecimento da Engenharia de Software
Áreas de Conhecimento da Engenharia de SoftwareElaine Cecília Gatto
 
Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de S...
Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de S...Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de S...
Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de S...Marcelo Schumacher
 
Aula 01 - Introdução Engenharia de requisitos - Prof.ª Cristiane Fidelix
Aula 01 - Introdução Engenharia de requisitos - Prof.ª Cristiane FidelixAula 01 - Introdução Engenharia de requisitos - Prof.ª Cristiane Fidelix
Aula 01 - Introdução Engenharia de requisitos - Prof.ª Cristiane FidelixCris Fidelix
 
Modelos e etapas do processo de software.pdf
Modelos e etapas do processo de software.pdfModelos e etapas do processo de software.pdf
Modelos e etapas do processo de software.pdfIvanFontainha
 
DevOps... O caminho! - Monitoramento de aplicações com App Insights
DevOps... O caminho! - Monitoramento de aplicações com App InsightsDevOps... O caminho! - Monitoramento de aplicações com App Insights
DevOps... O caminho! - Monitoramento de aplicações com App InsightsAdriano Bertucci
 
METACOM – Uma análise de correlação entre métricas de produto e propensão à m...
METACOM – Uma análise de correlação entre métricas de produto e propensão à m...METACOM – Uma análise de correlação entre métricas de produto e propensão à m...
METACOM – Uma análise de correlação entre métricas de produto e propensão à m...Gabriel Moreira
 
Utilização da Engenharia de Requisitos: Onde, quando e como utilizar
Utilização da Engenharia de Requisitos: Onde, quando e como utilizarUtilização da Engenharia de Requisitos: Onde, quando e como utilizar
Utilização da Engenharia de Requisitos: Onde, quando e como utilizarOpencadd Advanced Technology
 
Gerenciamento de Projeto para Desenvolvimento de Sistema
Gerenciamento de Projeto para Desenvolvimento de SistemaGerenciamento de Projeto para Desenvolvimento de Sistema
Gerenciamento de Projeto para Desenvolvimento de Sistemaelliando dias
 
Visão geral da engenharia de software qualidade de software
Visão geral da engenharia de software   qualidade de softwareVisão geral da engenharia de software   qualidade de software
Visão geral da engenharia de software qualidade de softwarejordanavy
 
Processo de Implantação de ERP
Processo de Implantação de ERPProcesso de Implantação de ERP
Processo de Implantação de ERPLuiz Araujo
 
Prodemge WTQS - Minicurso técnicas de verificação de requisitos
Prodemge WTQS - Minicurso técnicas de verificação de requisitosProdemge WTQS - Minicurso técnicas de verificação de requisitos
Prodemge WTQS - Minicurso técnicas de verificação de requisitosGustavo Lopes
 
Introdução Qualidade de Software
Introdução Qualidade de SoftwareIntrodução Qualidade de Software
Introdução Qualidade de SoftwareWellington Oliveira
 
Visão geral da engenharia de software qualidade de software
Visão geral da engenharia de software   qualidade de softwareVisão geral da engenharia de software   qualidade de software
Visão geral da engenharia de software qualidade de softwarejordanavy
 
Indicadores de políticas públicas e métricas de software: uma visão em paralelo
Indicadores de políticas públicas e métricas de software: uma visão em paraleloIndicadores de políticas públicas e métricas de software: uma visão em paralelo
Indicadores de políticas públicas e métricas de software: uma visão em paraleloRoberto de Pinho
 

Semelhante a Manutenção de Software (20)

Rejuvenescimento Software
Rejuvenescimento SoftwareRejuvenescimento Software
Rejuvenescimento Software
 
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
 
Aula1 introducao engsw
Aula1 introducao engswAula1 introducao engsw
Aula1 introducao engsw
 
Áreas de Conhecimento da Engenharia de Software
Áreas de Conhecimento da Engenharia de SoftwareÁreas de Conhecimento da Engenharia de Software
Áreas de Conhecimento da Engenharia de Software
 
Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de S...
Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de S...Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de S...
Gerenciamento de Requisitos como Alternativa de Otimização na Manutenção de S...
 
Aula 01 - Introdução Engenharia de requisitos - Prof.ª Cristiane Fidelix
Aula 01 - Introdução Engenharia de requisitos - Prof.ª Cristiane FidelixAula 01 - Introdução Engenharia de requisitos - Prof.ª Cristiane Fidelix
Aula 01 - Introdução Engenharia de requisitos - Prof.ª Cristiane Fidelix
 
Modelos e etapas do processo de software.pdf
Modelos e etapas do processo de software.pdfModelos e etapas do processo de software.pdf
Modelos e etapas do processo de software.pdf
 
DevOps... O caminho! - Monitoramento de aplicações com App Insights
DevOps... O caminho! - Monitoramento de aplicações com App InsightsDevOps... O caminho! - Monitoramento de aplicações com App Insights
DevOps... O caminho! - Monitoramento de aplicações com App Insights
 
DevOps e App Insights
DevOps e App InsightsDevOps e App Insights
DevOps e App Insights
 
METACOM – Uma análise de correlação entre métricas de produto e propensão à m...
METACOM – Uma análise de correlação entre métricas de produto e propensão à m...METACOM – Uma análise de correlação entre métricas de produto e propensão à m...
METACOM – Uma análise de correlação entre métricas de produto e propensão à m...
 
Utilização da Engenharia de Requisitos: Onde, quando e como utilizar
Utilização da Engenharia de Requisitos: Onde, quando e como utilizarUtilização da Engenharia de Requisitos: Onde, quando e como utilizar
Utilização da Engenharia de Requisitos: Onde, quando e como utilizar
 
Teste de Software
Teste de SoftwareTeste de Software
Teste de Software
 
Gerenciamento de Projeto para Desenvolvimento de Sistema
Gerenciamento de Projeto para Desenvolvimento de SistemaGerenciamento de Projeto para Desenvolvimento de Sistema
Gerenciamento de Projeto para Desenvolvimento de Sistema
 
Visão geral da engenharia de software qualidade de software
Visão geral da engenharia de software   qualidade de softwareVisão geral da engenharia de software   qualidade de software
Visão geral da engenharia de software qualidade de software
 
Análise de Sistemas Orientado a Objetos - 01
Análise de Sistemas Orientado a Objetos - 01Análise de Sistemas Orientado a Objetos - 01
Análise de Sistemas Orientado a Objetos - 01
 
Processo de Implantação de ERP
Processo de Implantação de ERPProcesso de Implantação de ERP
Processo de Implantação de ERP
 
Prodemge WTQS - Minicurso técnicas de verificação de requisitos
Prodemge WTQS - Minicurso técnicas de verificação de requisitosProdemge WTQS - Minicurso técnicas de verificação de requisitos
Prodemge WTQS - Minicurso técnicas de verificação de requisitos
 
Introdução Qualidade de Software
Introdução Qualidade de SoftwareIntrodução Qualidade de Software
Introdução Qualidade de Software
 
Visão geral da engenharia de software qualidade de software
Visão geral da engenharia de software   qualidade de softwareVisão geral da engenharia de software   qualidade de software
Visão geral da engenharia de software qualidade de software
 
Indicadores de políticas públicas e métricas de software: uma visão em paralelo
Indicadores de políticas públicas e métricas de software: uma visão em paraleloIndicadores de políticas públicas e métricas de software: uma visão em paralelo
Indicadores de políticas públicas e métricas de software: uma visão em paralelo
 

Mais de Wagner Zaparoli

Early Warning Systems For Epidemic
Early Warning Systems For EpidemicEarly Warning Systems For Epidemic
Early Warning Systems For EpidemicWagner Zaparoli
 
Transformações_Corporativas
Transformações_CorporativasTransformações_Corporativas
Transformações_CorporativasWagner Zaparoli
 
Técnicas_Implementação
Técnicas_ImplementaçãoTécnicas_Implementação
Técnicas_ImplementaçãoWagner Zaparoli
 
Checklist para Avaliação da Documentação.PDF
Checklist para Avaliação da Documentação.PDFChecklist para Avaliação da Documentação.PDF
Checklist para Avaliação da Documentação.PDFWagner Zaparoli
 
Padrões_Desenvolvimento
Padrões_DesenvolvimentoPadrões_Desenvolvimento
Padrões_DesenvolvimentoWagner Zaparoli
 
Gerência de Configuração
Gerência de ConfiguraçãoGerência de Configuração
Gerência de ConfiguraçãoWagner Zaparoli
 

Mais de Wagner Zaparoli (10)

Early Warning Systems For Epidemic
Early Warning Systems For EpidemicEarly Warning Systems For Epidemic
Early Warning Systems For Epidemic
 
Transformações_Corporativas
Transformações_CorporativasTransformações_Corporativas
Transformações_Corporativas
 
Técnicas_Implementação
Técnicas_ImplementaçãoTécnicas_Implementação
Técnicas_Implementação
 
Qualidade do Software
Qualidade do SoftwareQualidade do Software
Qualidade do Software
 
Checklist para Avaliação da Documentação.PDF
Checklist para Avaliação da Documentação.PDFChecklist para Avaliação da Documentação.PDF
Checklist para Avaliação da Documentação.PDF
 
Padrões_Desenvolvimento
Padrões_DesenvolvimentoPadrões_Desenvolvimento
Padrões_Desenvolvimento
 
Gerência de Configuração
Gerência de ConfiguraçãoGerência de Configuração
Gerência de Configuração
 
Ciclo de Vida
Ciclo de VidaCiclo de Vida
Ciclo de Vida
 
Projeto de Software
Projeto de SoftwareProjeto de Software
Projeto de Software
 
Gerenciamento_Projetos
Gerenciamento_ProjetosGerenciamento_Projetos
Gerenciamento_Projetos
 

Manutenção de Software

  • 3. Manutenção de Software 3 Parte 1 – Manutenção de Software
  • 5. Manutenção de Software 5 Passado – Presente  Os sistemas legados respondem pela maior parte do processamento de dados mundial.  Entre 60% e 70% dos sistemas estão em COBOL, estima-se em 200 milhões de linhas1 . 1 SEACORD et al, 2003 e ULRICH, 2002  A participação do custo de manutenção no custo total de um sistema tem crescido de 40%, nos anos 70, até 90%, atualmente2 .  Destes custos, cerca de 20% são consumidos com correções e 80% com melhorias diversas. 2 PIGOSKI, 1996
  • 6. Manutenção de Software 6 Futuro Tempo Linhas-Código Manutenções  Inevitáveis
  • 7. Manutenção de Software 7 Motivações • Surgem novos requisitos. • O ambiente do negócio muda. • Erros devem ser reparados. • Nova infra-estrutura deve ser incorporada. • O desempenho do software pode ser melhorado.
  • 8. Manutenção de Software 8 Fundamentos
  • 9. Manutenção de Software 9 Conceito* * IEEE, 1998
  • 10. Manutenção de Software 10 Classificação* * Pressman, 2002 Corretiva Adaptativa Perfectiva Preventiva
  • 11. Manutenção de Software 11 Corretiva Visa corrigir defeitos de funcionalidade, incluindo os acertos emergenciais
  • 12. Manutenção de Software 12 Adaptativa Visa adequar o software ao seu ambiente externo (SO, infra-estrutura, periféricos, integrações)
  • 13. Manutenção de Software 13 Perfectiva Objetiva acrescentar novos recursos de funcionalidades ao software, normalmente solicitados pelo usuário
  • 14. Manutenção de Software 14 Preventiva Visa modificar o software para melhorar a confiabilidade ou a manutenibilidade futura, ou para oferecer uma base melhor para futuras ampliações
  • 15. Manutenção de Software 15 Quando Executar? Pós-desenvolvimento Desenvolvimento Pré-desenvolvimento Estudo Preliminar ProjetoAnáliseConcepção Construção Teste/Docum. Homologação Implantação Planejamento Manutenção G E S T Ã O
  • 16. Manutenção de Software 16 Como Executar? Receber, validar e categorizar pedido Executar a manutenção Controlador de Manutenção Supervisor de Sistemas Pessoal de Manutenção
  • 17. Manutenção de Software 17 Receber, Validar e Categorizar Gravidade Ação Tipo? Tipo? Avaliar, categorizar e colocar na fila Avaliar e categorizar Informar solicitante Priorizar e colocar na fila Apagar incêndio no alto da fila Avaliar, categorizar e colocar na fila Pedido Manutenção Outro Erro AcréscimoAdaptação Muita Não muita FazerCancelar
  • 18. Manutenção de Software 18 Executar Manutenção Faltam tarefas? Selecionar próxima tarefa da fila Planejar, organizar e aplicar engenharia de software Sim Registrar e encerrar atividade Não
  • 19. Manutenção de Software 19 Pontos de Atenção
  • 20. Manutenção de Software 20 Problemas Gerência Infra-estrutura Humanos Software
  • 21. Manutenção de Software 21 Fatores de Gerência • Visão diferenciada entre equipe de desenvolvimento e equipe de manutenção. • Dificuldades de comunicação entre equipe de manutenção e organização. • Treinamento inadequado da equipe. • Sobrecarga de tarefas. • Estimativas equivocadas. • Dificuldade em medir e avaliar desempenho da equipe de manutenção. • Contratação de temporários para auxiliar execução da manutenção.
  • 22. Manutenção de Software 22 Fatores de Infra-estrutura • Estagnação do ambiente de trabalho. • Falta de tecnologia operacional adequada. • Falta de tecnologia gerencial adequada.
  • 23. Manutenção de Software 23 Fatores Humanos • Elevada rotatividade de profissionais. • Falta de uma esquipe de manutenção. • Preferência da equipe por trabalho de desenvolvimento. • Falhas de comunicação com usuários. • Mudanças frequentes de prioridades por parte do usuário. • Métodos inadequados de teste.
  • 24. Manutenção de Software 24 Fatores de Software • Baixa qualidade da documentação do software original. • Má qualidade do fonte-original. • Necessidade de integração com softwares incompatíveis.
  • 25. Alternativas de Mitigação Manutenção de Software 25 • Processos  Implantar a filosofia de projeto para manutenção.  Enfatizar que todo código esteja cuidadosamente documentado.  Planejar cronogramas que incluam documentação e testes.  Promover os sucessos e evitar fracassos anteriores com lições aprendidas.  Instituir e reforçar práticas de qualidade.  Melhorar a relação entre equipe técnica e clientes.  Melhorar seleção de fornecedores e monitorar processos, planos de estratégias, e tomadas de decisões.
  • 26. Alternativas de Mitigação Manutenção de Software 26 • Pessoas  Associar pessoas a papéis adequados.  Melhorar o prestígio das tarefas de manutenção.  Tornar mais efetivo o treinamento, especialmente em relação ao uso de ferramentas, documentação e padrões.  Melhorar o projeto de comunicação e incentivar às pessoas a utilizarem-no.
  • 27. Alternativas de Mitigação Manutenção de Software 27 • Tecnologia  Investir em ferramentas mais efetivas, que abarcam engenharia reversa, reengenharia, testes, gerência de configuração e documentação.  Melhorar a qualidade das ferramentas desenvolvidas internamente.  Melhorar as atividades e ferramentas que centralizem comunicação entre projetos.  Encorajar equipe técnica a comunicar suas necessidades de ferramentas.
  • 28. Manutenção de Software 28 Manutenibilidade
  • 29. Manutenção de Software 29 Conceito* * Pressman, 2002 É a meta principal que orienta os passos de um processo de engenharia de um software
  • 30. Manutenção de Software 30 Fatores Controladores * Pressman, 2002 Ambiente de Desenvolvimento Medidas Quantitativas Revisões
  • 31. Manutenção de Software 31 Ambiente de Desenvolvimento  Disponibilidade de um pessoal de software qualificado.  Estrutura de sistema compreensível.  Facilidade de manuseio do sistema.  Uso de linguagem de programação padronizada.  Estrutura de documentação padronizada.  Disponibilidade de casos de teste.  Facilidades de depuração embutidas.  Disponibilidade de um ambiente (sw/hw) adequado para realizar a manutenção.  Planejamento para a manutenibilidade.
  • 32. Manutenção de Software 32 Medidas Quantitativas  Tempo de reconhecimento do problema.  Tempo de retardo administrativo.  Tempo de coleta de ferramenta de manutenção.  Tempo de análise do problema.  Tempo de especificação das mudanças.  Tempo de correção ativa.  Tempo de testes locais.  Tempo de testes globais.  Tempo de revisão de manutenção.  Tempo de recuperação total.
  • 33. Manutenção de Software 33 Revisões Revisão dos requisitos  Anotar possíveis acréscimos.  Discutir as questões de portabilidade.  Considerar interfaces que impactam. Revisão da arquitetura  Projeto de dados, projeto arquitetural, projeto procedimental e interfaces são avaliadas quanto à facilidade de modificação. Revisão do Código  Estilo.  Documentação. Testes  Conhecer partes do software que necessitam de manutenção antes do deploy.
  • 34. Sugestões Bibliográficas • Seacord, Robert C., Plakosh, Daniel, Lewis, Grace A., Modernizing Legacy Systems: Software Technologies, Engineering Processes, and Business Practices, Addison- Wesley, 2003. • Pigoski, T. M., Practical Software Maintenance: Best Practices for Managing Your Software Investiment, John Wiley & Sons, Inc., 1996. • ISO/IEC 14764, Information technology - Software Maintenance,1999. • Pressman, R. S., Engenharia de Software. 5. ed. São Paulo: Makron Books, 2002. • Ulrich, William M., Legacy Systems: Transformation Strategies, 2002 Prentice-Hall PTR, 2002. • Lientz, B. P., Swanson, E. B., Software Maintenance Management, Reading, MA, Addison-Wesley, 1980. • IEEE Computer Society. Swebok – Guide to the Software Engineering Body of Knowledge, 2004. Manutenção de Software 34