Guia Completo de Manutenção e Engenharia de Software
Tipos de Manutenção
- Perfeita: Ações para melhorar a qualidade interna, reestruturação de código e otimização de desempenho e eficiência.
- Evolutiva: Adições, alterações e exclusões necessárias para cobrir a expansão ou mudanças nas necessidades do usuário.
- Adaptativa: Mudanças decorrentes de alterações nos ambientes de operação, como hardware, sistemas operacionais, bancos de dados ou comunicações.
- Corretiva: Alterações necessárias para corrigir erros no software.
Suporte Técnico
Técnicas de engenharia de software para fornecer soluções que minimizem o impacto da manutenção no custo do ciclo de vida.
Soluções Técnicas
- Engenharia Reversa: Análise de um sistema para identificar componentes e relações, criando representações em outro nível de abstração.
- Reengenharia: Modificação de um produto ou componente utilizando análise e engenharia reversa para reconstrução, visando facilitar a manutenção, reutilização e evolução.
- Reestruturação de Software: Mudança na representação de um produto de software mantendo o mesmo nível de abstração.
Objetivos e Conceitos
- Engenharia Direta: Desenvolvimento de software tradicional.
- Remodularização: Alteração da estrutura modular do sistema seguindo princípios de planejamento estruturado.
- Análise de Facilidade de Manutenção: Foco em módulos críticos.
- Medição e Análise: Estudo de propriedades específicas dos programas.
Análise de Casos
Para executar a manutenção, deve-se considerar:
- Custos de manutenção e oportunidades de desenvolvimento perdidas.
- Insatisfação do cliente por atrasos em reparos.
- Erros ocultos introduzidos durante a manutenção.
- Efeitos sobre outros projetos de desenvolvimento.
Técnicas e Métricas
Análise custo-benefício, Casos de Uso, Catalogação, Diagramas (Classe, Decomposição Funcional, Fluxo de Dados, Interação de Objetos), Matriz de Impacto, Modelo Entidade-Relacionamento e Planejamento.
Gestão de Mudanças
Processos fundamentais para controlar versões e alterações durante o ciclo de vida do sistema.
- Atividades principais: Registro de pedidos, relatórios de status, log de auditoria e análise de impacto.
- Avaliação de impacto: Avaliar solicitações em sistemas existentes, estimar recursos e documentar o escopo da mudança.
Gestão da Manutenção
A manutenção de software engloba todas as atividades de suporte financeiro e operacional:
- Atividades pré-entrega: Planejamento de operações, suporte e logística.
- Atividades pós-entrega: Modificação de software, treinamento de usuários e suporte (help desk).