No universo do desenvolvimento de software, a manutenção preventiva assume um papel crucial, agindo como uma antecipação estratégica para assegurar a longevidade e o desempenho otimizado de seus sistemas e aplicações. É uma abordagem que visa garantir que o software continue a funcionar da maneira esperada pelo máximo de tempo possível.
Imagine que sua organização investiu em um sistema avançado e de alto custo para otimizar as operações diárias. Ou, talvez, você tenha optado por constituir uma equipe interna de desenvolvedores para construir um sistema sob medida. Em ambos os casos, a aquisição inicial é apenas o ponto de partida.
O custo total de um software não se limita à sua implementação inicial. Para garantir que ele funcione sem problemas e com eficiência, é indispensável investir em manutenção contínua. A manutenção pode ser categorizada em quatro tipos: adaptativa, corretiva, perfectiva e preventiva. Embora cada uma delas possua seus próprios benefícios, neste artigo, focaremos na manutenção preventiva.
No contexto atual, a manutenção preventiva envolve a análise de dados operacionais, o uso de aprendizado de máquina e o monitoramento preditivo da integridade dos ativos. Essas práticas visam otimizar a manutenção e minimizar os riscos à confiabilidade das operações, seja em um ambiente de negócios ou industrial.
A importância da manutenção preventiva
A manutenção preventiva de software tem como principal objetivo aperfeiçoar e corrigir falhas. Ela é uma consequência natural da evolução constante do software. Como organização, é essencial acompanhar as tendências tecnológicas para garantir a melhor experiência possível para seus clientes e maximizar a eficiência de suas plataformas.
Antes que um sistema seja completamente mantido, ele passa por algumas etapas cruciais:
#1. Fase de Identificação do Problema
Nesta fase, as solicitações de modificação são identificadas e categorizadas através de um número de identificação. Cada Solicitação de Modificação (MR) é avaliada para determinar o tipo de manutenção mais adequado. Essa etapa é fundamental, pois existem diferentes tipos de solicitações de manutenção de software, e cada modificação deve ser armazenada em um repositório específico, levando em consideração seu tipo e prioridade. Se a manutenção preventiva for a solução mais adequada, o processo avança para a próxima etapa.
#2. Fase de Análise do Problema
Aqui, o escopo e a viabilidade de cada solicitação de modificação validada são avaliados, e um plano detalhado é estabelecido. Uma estimativa inicial de recursos, informações do repositório e a documentação do projeto são definidos nesta fase. Um relatório de viabilidade é elaborado, incluindo:
- O impacto esperado das mudanças propostas;
- Os objetivos organizacionais de curto e longo prazo;
- As soluções alternativas disponíveis;
- As implicações de segurança e proteção do processo.
#3. Fase de Design
Uma vez que se decide que as mudanças são necessárias, é hora de projetar como a manutenção preventiva será implementada. Nesta fase, são realizadas as seguintes atividades:
- Identificação dos módulos de software que serão afetados;
- Modificação da documentação dos módulos de software identificados, incluindo a avaliação da linguagem de design do programa e os diagramas de fluxo de dados;
- Criação de casos de teste para o novo design;
- Documentação dos requisitos atualizados.
#4. Fase de Implementação

Nesta fase, as modificações no código são realizadas. As etapas seguidas incluem:
- Codificação e testes unitários;
- Integração do software codificado ao sistema existente;
- Análise e revisão de riscos. É importante avaliar os riscos associados à manutenção antecipadamente, como a necessidade de backups e a prevenção de falhas de dados.
#5. Fase de Teste
Esta fase garante que nenhuma falha seja introduzida no sistema existente. A documentação atualizada do software, o sistema atualizado e o relatório de revisão de preparação para o teste são usados como referência. O software modificado é submetido a testes funcionais do sistema, testes de regressão e testes de interface.
#6. Fase de Teste de Aceitação
Após o teste do módulo de software modificado, é crucial verificar se o sistema totalmente integrado opera conforme esperado. Esta fase tem o objetivo de detectar erros e verificar se as modificações foram feitas de acordo com os padrões aceitáveis. Os elementos verificados incluem o sistema totalmente integrado, procedimentos de teste de aceitação, planos de teste de aceitação e casos de teste de aceitação. Um relatório FCA e um relatório de teste de aceitação são produzidos ao final desta fase.
#7. Fase de Entrega
Nesta etapa, o software modificado é apresentado aos usuários finais, juntamente com arquivos e documentação atualizada que explicam como o software opera. As etapas típicas da fase de entrega incluem:
- Auditoria de configuração física (PCA);
- Informar os usuários sobre as novas alterações;
- Instalar o sistema modificado e informar os usuários;
- Disponibilizar um sistema de backup.
Tipos de Manutenção Preventiva

#1. Baseada no Uso
A manutenção preventiva baseada no uso é realizada após um determinado nível de utilização do sistema. Esta abordagem leva em consideração o uso diário do sistema para definir ou prever uma data para manutenção ou inspeção.
#2. Baseada no Tempo
A manutenção preventiva baseada no tempo/calendário ocorre após um período específico. Pode ser semanal, quinzenal, mensal, trimestral, semestral ou anual. A ação de manutenção é automaticamente ativada quando a data de vencimento se aproxima e todas as ordens de serviço necessárias são criadas.
#3. Preditiva
A manutenção preditiva programa ações de manutenção corretiva antes que um problema ou falha ocorra. A equipe precisa avaliar o estado do sistema para estimar quando a manutenção deve ser realizada. As tarefas de manutenção são agendadas para evitar falhas inesperadas do sistema.
#4. Prescritiva
A manutenção prescritiva vai um passo além, mostrando quando uma falha ocorrerá e suas causas. Essa abordagem analisa diferentes opções e resultados possíveis para mitigar riscos.
Quando a Manutenção Preventiva é Necessária?
Correção de bugs e erros
Bugs e erros podem existir em sistemas de software. Mesmo que não estejam causando problemas imediatos, eles podem causar falhas quando novos recursos são adicionados. A manutenção preventiva corrige esses bugs para evitar problemas futuros.
Garantia de operações estáveis
Sistemas podem falhar inesperadamente. Interrupções nas operações podem gerar perda de tempo e dinheiro. A manutenção preventiva reduz essas interrupções e garante a estabilidade operacional.
Solução de problemas antecipadamente
Rotinas simples de manutenção podem reduzir problemas relacionados à produção. Por exemplo, se houver picos de tráfego previstos, as mudanças necessárias podem ser feitas para evitar que os servidores caiam.
Garantia do cumprimento de garantias
Se um sistema ou produto adquirido de outro fornecedor estiver na garantia, a maioria dos fornecedores exigirá prova de que a falha não ocorreu por negligência. A manutenção preventiva auxilia a garantir que a negligência não seja um problema.
Exemplos de Manutenção Preventiva

Reconstrução do Código
A manutenção preventiva de software pode envolver a transformação da estrutura do código por meio da redução do código-fonte. Isso pode tornar o código mais compreensível ou compatível com novos produtos de hardware ou software.
Otimização do Código
Mesmo que um sistema esteja funcionando, a otimização do código pode permitir que ele consuma menos recursos, como CPU e memória. Essa otimização pode ser realizada como manutenção preventiva para a introdução de novos hardwares ou para reduzir custos.
Atualização da Documentação
A documentação explica o funcionamento do programa e as mudanças feitas ao longo do tempo. A atualização da documentação garante que ela esteja de acordo com o estado atual do sistema.
Ferramentas para Manutenção Preventiva

Para garantir uma manutenção de software eficaz, independente do tipo, é essencial utilizar as seguintes ferramentas:
- Comparador de arquivos: compara dois sistemas ou arquivos e indica as diferenças, verificando se são idênticos.
- Compilador e vinculador: o compilador verifica erros de sintaxe e pode ser usado para encontrar a origem dos erros. O vinculador une o código compilado a outros componentes para execução.
- Depurador: rastreia a lógica do programa. Alguns navegadores, como o Google Chrome, possuem ferramentas de depuração.
- Gerador de referência cruzada: garante que as mudanças no código estejam de acordo com o sistema existente, determinando como vários componentes e projetos serão afetados por mudanças em um requisito.
Recursos de Aprendizagem
#1. Guia Completo de Manutenção Preventiva e Preditiva
Este guia compartilha as melhores práticas, passos essenciais para o sucesso, erros e conquistas na manutenção preventiva, abordando quatro aspectos: psicológico, engenharia, gestão e econômico.
#2. Série Estratégia de Manutenção Volume 1 – Manutenção Preventiva
Este livro explora a importância da manutenção preventiva na estratégia geral de manutenção dos sistemas de uma empresa, oferecendo um fluxograma ilustrativo com todas as etapas a serem seguidas.
#3. Guia do Engenheiro para Manutenção Preventiva
Este guia auxilia na documentação dos modos de falha e análise de efeitos na manutenção preventiva, ensinando a documentar códigos de falha e hierarquias de sistemas/ativos, avaliar riscos e analisar modos de falha.
#4. Fundamentos da Manutenção Preventiva
Este livro oferece etapas economicamente viáveis e fáceis de seguir na manutenção preventiva, detalhando as causas de falhas, como identificá-las e corrigi-las e o processo de manutenção.
Conclusão
A manutenção preventiva é fundamental para evitar falhas nos sistemas e garantir a continuidade das operações. Os custos associados à manutenção preventiva variam de acordo com as mudanças implementadas. Ter um plano de manutenção bem definido garante que o processo seja eficaz. Além disso, vale a pena explorar ferramentas de teste de software.