Manutenção de Software
-
Upload
wagner-zaparoli -
Category
Documents
-
view
10 -
download
1
Transcript of Manutenção de Software
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 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 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
GESTÃ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 deManutençã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 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 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