Вы находитесь на странице: 1из 22

UENF Engenharia de Software

Vinicius Luiz do Nascimento Passos


MANUTENO DE SOFTWARE
1. Introduo
Os desenvolvedores de software se esforam para obter um
resultado satisfatrio para os usurios de seus produtos, atendendo
s suas respectivas necessidades. Uma vez em
funcionamento os programas podem mudar ou evoluir.
Descobrem-se defeitos, a interface pode se alterar, e novas
necessidades podem surgir. Esse ciclo de mudanas chamado de
manuteno de software.
O processo de manuteno de um software uma das partes
que integram o ciclo de vida de um programa, porm ele no
recebe uma devida ateno, diferentemente de outras demais
partes. No contexto histrico, o desenvolvimento de software tem
mais nfase em relao manuteno do mesmo, mas isso
ultimamente tem mudado em organizaes, no intuito de manter o
software operante durante um bom tempo, reduzindo assim o
custo de investimento em novos aplicativos. Esse fato tem
ocorrido ainda mais com a introduo do paradigma de softwares
de cdigo aberto. Com isso, dizemos que a manuteno de um
software se baseia em alteraes no mesmo aps a sua introduo
no mercado.
Apesar do conceito de manuteno definido para qualquer
produto destinado a software em geral, existem diferenas entre a
manuteno com propsitos distintos.

2. Tipos de Software
Antes de entrarmos mais afundo no conceito de manuteno
de software, devemos saber os diversos tipos de software que
encontramos para executarmos alteraes.
Primeiramente, podemos citar aqueles softwares desenvolvidos
com base em uma especificao de maneira bem definida e rgida,
com resultados exatos e conhecidos. Nesse modelo de aplicativo
as manutenes dificilmente so necessrias, pelo fato de ter sido
gerado atravs de uma implementao correta do mtodo. Um
exemplo simples um software para realizar operaes
matemticas.
Outro tipo de software aquele que precisam de solues
aproximadas para problemas do mundo real, uma vez que as
resolues dos problemas so conseguidas somente na teoria
nesses casos. Como exemplo, pode-se citar um jogo de xadrez.
Embora suas regras sejam bem definidas, no possvel construir
um software que calcule a cada passo todos os possveis
movimentos de peas do tabuleiro, de forma a determinar o
melhor movimento. Isso porque o nmero de movimentos
possveis muito grande para ser calculado em um intervalo de
tempo relativamente curto. A tcnica utilizada para desenvolver
esse tipo de soluo baseia-se em descrever o problema de forma
abstrata e ento definir os requisitos de software a partir dessa
abstrao.
A ltima classe de softwares consiste em alteraes onde o
software vai ser utilizado, caracterstica essa que no existe nas
outras classificaes. Programas criados com esse propsito so
gerados com base em um modelo dos processos abstratos
envolvidos no sistema, e precisar mudar sempre que ocorrer
mudanas nesses modelos, sendo, portanto, parte do ambiente que
ele modela. Um exemplo de software dessa classificao aquele
que mostra as informaes sobre a economia sobre um
determinado pas. partir da compreenso maior da economia, o
modelo de software se modifica e o problema se torna mais
abstrato, o que causa necessidade inevitvel de manuteno no
sistema. Esta classificao possui interesse particular nesse tipo
de atividade.

3. Fundamentos de Manuteno de Software


Aqui sero apresentados os conceitos que formam uma base
para compreendermos melhor o papel da manuteno de software.
Os tpicos a seguir mostram como necessrio o uso da
manuteno e como so fundamentais suas respectivas
caractersticas. Na figura abaixo podemos ver os aspectos de uma
manuteno de software completa.

3.1 Definio e Terminologia


De acordo com o padro internacional, (ISO / IEC / IEEE
14764), a manuteno de software essencialmente um dos
processos tcnicos da engenharia de software.
O objetivo dessa metodologia modificar um programa j
existente, preservando sua integridade. O padro internacional
tambm afirma a importncia da manuteno preventiva antes da
entrega final do produto.

3.2 Natureza da Manuteno


A manuteno de um software sustenta seu
produto em todo o seu ciclo de vida. Quando
pedidos de modificao surgem, eles so
monitorados, o impacto das alteraes propostas
determinado, cdigos e objetos so modificados,
testes realizados e ento uma nova verso do
software liberada. Alm disso, so fornecidos aos
usurios apoio e suporte para os usurios. O
funcionrio responsvel pela manuteno quem
realiza essas atividades.
O padro IEEE 14764 identifica as principais atividades da
manuteno de software como a implementao de processos e
alteraes, anlise e modificao de problemas, reviso e
aceitao de mudanas, migrao e retirada de circulao. Essas
atividades sero discutidas mais detalhadamente em um outro
tpico.
Para a vida til de um software se manter constante, os
responsveis pela manuteno devem estar sempre em contato
com os desenvolvedores, para haver compartilhamento de
informaes necessrias.

3.3 Necessidades de Manuteno


A manuteno necessria para assegurar que o
determinado programa possa continuar a satisfazer as
necessidades dos usurios. Ela aplicvel a todo software que no
possui soluo nica (citado no captulo 2), independente do seu
tipo de ciclo de vida.
O processo de manuteno deve ser realizada a fim de:
corrigir falhas;
melhorar o design;
implementar melhorias;
Interface com outros softwares;
adaptar os programas para diferentes modelos de
hardware, software, sistemas de recursos e de telecomunicaes;
migraes;
e finalizar software.
Os responsveis pela manuteno possuem cinco aspectoschave para se manterem ativos em suas tarefas:
manter o controle sobre as funes dirias do
software;
manter o controle sobre as modificaes
aperfeioar as funes existentes;
identificao de ameaas segurana;
e prevenir o mau desempenho insesperado do
software

3.4 Maioria dos Custos em Manuteno


A manuteno consome uma parte importante nos recursos
financeiros em um ciclo de vida de software. Cerca de 80% da
manuteno ocorre em decorrncia de alteraes sem correo.
Compreender as categorias da manuteno de software e os
fatores que influenciam na capacidade da manuteno pode ajudar
a conter custos. Fatores ambientais e sua relao com os custos de
manuteno tambm podem ser includos:

Ambiente de operacional: hardware e


software,

ambiente organizacional: refere-se a

polticas,
concorrncia, o processo, o produto e pessoal.

3.5 Evoluo do Software


Por volta do fim dos anos 60 foi abordado o primeiro
processo de manuteno de software. Ao longo de 20 anos levouse a formulao de oito Leis da evoluo (mudana contnua,
complexidade crescente, auto-regulao, conservao da
estabilidade organizacional, conservao de familiaridade,
crescimento contnuo, qualidade, feedback).
Os principais resultados da evoluo incluem uma
proposta em que a manuteno desenvolvimento evolutivo e que
as decises de manuteno tem auxlio da compreenso do
software com o tempo. Alguns afirmam que a manuteno de
desenvolvimento contnuo, em outras palavras, um programa de
grande porte nunca completo e continua evoluindo
constantemente.

3.6 Tipos de Manuteno de Software


Programadores e engenheiros de software executam
uma srie de funes de manuteno para manter os
programas funcionando com a menor quantidade possvel de
problemas. Os envolvidos na manuteno tambm procuram
melhorar a confiabilidade e funcionalidade dos softwares
constantemente.
Diferente da manuteno de produtos desenvolvidos
pela indstria, a manuteno de software no realizada
para reparar danos causados pelo tempo de uso, mas sim
para corrigir erros que j existiam antes de entrar em
produo. Estes erros no haviam sido detectados antes, por
algum motivo. Porm, a manuteno no consiste apenas em
corrigir erros, como veremos agora, classificando os tipos de

manuteno em quatro tipos: Adaptativas, Corretivas,


Evolutivas e Preventivas.
Adaptativas: so alteraes onde o software
mantm-se atualizado em paralelo s novas realidades
ou ambiente externo. Podemos exemplificar como
adaptativa a manuteno de um sistema onde novas
leis e normas so implementadas, seja pelo governo
local ou por determinada organizao. Verses mais
recentes de aplicativos e introduo de processadores
mais potentes tambm so exemplos de manutenes
adaptativas.
Corretivas: tm como objetivo a reparao de
erros no programa detectados geralmente pelos
prprios usurios do mesmo. O erro em si corrigido,
porm normalmente a correo s implementada em
uma nova verso do software. basicamente o
processo de correo de erros que no foram antes
identificados, como foi citado anteriormente. Correo
de danos no hardware tambm pode ser considerada
manuteno corretiva.
Evolutivas: tambm chamadas de Manutenes
Perfectivas, consistem em mudanas que promovem
novas aplicaes ao sistema, com o objetivo de trazer
melhoria e novas funcionalidades, para trazer assim
maior legibilidade e/ou adequaes aos paradigmas de
programao. Essas modificaes geralmente no
esto previstas no documento de requisitos do software
original. A integrao de um sistema com outro
tambm considerada uma evoluo.
Preventivas: como seu nome j diz, tem como
intuito prevenir erros que podem surgir no futuro. A
utilizao dessa abordagem antecipa, em sua maioria
das vezes, o uso dos outros tipos de manuteno.
Assim como em uma empresa de veculos, os
programadores testam seus softwares para garantirem
a adaptao com altas cargas de dados e outras
operaes estressantes. Eles tambm fazem testes de

compatibilidade do software com outros programas


que podem estar presentes no computador para no
haver novos problemas. O conhecido conceito de
Engenharia Reversa a base da Manuteno
Preventiva.

Neste grfico acima podemos ver uma minoria notvel


na quantidade de manutenes preventivas que so realizadas, o
que uma gravidade. A proporo de uso de manuteno
preventiva precisa necessariamente aumentar, para evitar o uso
das demais manutenes. Podemos dizer que a partir desse
grfico, os programadores esto mais preocupados,
respectivamente, em melhorar o software, mant-lo atualizado ao
ambiente e corrigir pequenos erros, em vez que prevenir a
aplicao de todos esses aspectos.

4. Aspectos fundamentais da manuteno de


software
Uma srie de fatores importantes deve ser tratada para
ocorrer garantia da manuteno efetiva de um software. Para
promover uma boa manuteno, diversas questes devem ser
abordadas:

questes tcnicas,
questes de gesto,
estimativa de custo,
e medio.

4.1 Questes Tcnicas


4.1.1 Entendimento Limitado
Uma compreenso limitada se refere velocidade
que um engenheiro de software pode entender o que ou onde
executar uma alterao ou correo no software que ele no
desenvolveu. O entendimento se torna ainda mais complicado se
no houver uma documentao detalhada do programa, ou se os
desenvolvedores na esto disponveis para qualquer explicao,
caso que muitas vezes acontece.

4.1.2 Testes
O custo de repetir o teste completo em uma
grande parte do software significativo em termos monetrios. A
fim de validar seus relatrios, o responsvel pela manuteno
deve verificar os problemas realizando os testes adequados. O
teste regressivo (anlise seletiva de um componente para verificar
se a modificao causa ou no efeito no programa) um conceito
importante nesse quesito. Existem desafios nessa questo, como
muitas pessoas trabalhando em problemas diferentes, o at mesmo
a falta de tempo para fazer testes.

4.1.3 Anlise de Impacto


A anlise de impacto se refere anlise de como as
mudanas aplicadas afetaram no software modificado. As
solicitaes de mudana no software podem ser chamadas de
Solicitao de Modificao (MR) ou Relatrio de Problemas
(PR). Essas solicitaes so concretizadas atravs da anlise e

traduo, em termos de software. O padro internacional define a


anlise de impacto da seguinte maneira:
analisar MRs/PRs;
replicar ou verificar o problema;
desenvolver opes para modificao;
documentar MR/PR, os resultados e as opes de
execuo;
obter a aprovao da opo selecionada

4.1.4 Conservao
O IEEE 14764 define a conservao de requisitos
como a capacidade do software em relao a modificaes. Como
uma caracterstica de software principal, a conservao dever ser
especificada, revisada e controlada durante o processo de
desenvolvimento do software, com o objetivo de reduzir os custos
de manuteno. A capacidade de conservao do software nem
sempre so atingidas com facilidade porque durante o
desenvolvimento no se foca muito nas subcaractersticas do
software. Os desenvolvedores se preocupam mais com outras
atividades e assim ignoram a conservao de requisitos.
Conseqentemente, outras coisas tambm so ignoradas como a
documentao e testes no ambiente do software, o que leva falta
de compreenso do programa e problemas na anlise de impacto.

4.2 Questes de gesto


4.2.1 Alinhamento com os problemas da
organizao
Os objetivos de uma organizao descrevem como
demonstram o retorno sobre o investimento em atividades de
manuteno de software. O desenvolvimento inicial de um
software se baseia no tempo definido e no oramento do projeto.
As necessidades do cliente nem sempre pode ser atendidas, pelo
fato desses dois aspectos no serem compatveis com o grau de
possibilidade do desenvolvedor.

4.2.2 Escolha de pessoal


Refere-se forma de atrair pessoas para uma equipe de
manuteno e como mant-las. Muitas das vezes o membro da
equipe pode ser menosprezado ou at sobrecarregado de trabalho,
o que leva desistncia de muitos.

4.2.3 Processo
O processo de ciclo de vida do software
um conjunto de atividades, mtodos, prticas e
transformaes que as pessoas usam para
desenvolver e manter o software e seus produtos
associados . Ao nvel do processo, atividades de
manuteno de software tm muito em comum com
desenvolvimento de software ( por exemplo,
gerenciamento de configurao de software uma
atividade crucial para ambos). A manuteno
tambm requer vrias atividades que no so
encontrados no desenvolvimento de software. Estas
atividades apresentam desafios para a gesto.

4.2.4 Aspectos organizacionais de


manuteno
Aspectos organizacionais descrevem como
identificar que organizao e/ou funo ser responsvel pela
manuteno do software. A equipe que desenvolve o software no
necessariamente colocada para manter o software , uma vez que
operacional.
Ao decidir onde a manuteno de software ser feita,
organizaes de engenharia de software podem, por exemplo,

ficar com o desenvolvedor original ou ter uma equipe de


manuteno fixa. Tendo uma equipe permanente tem muitos
benefcios, como:
permite a especializao ;
cria canais de comunicao ;
promove uma atmosfera mais amigvel;
reduz a dependncia de indivduos;
permite verificaes peridicas da auditoria.
Uma vez que existem muitos prs e contras de cada opo, a
deciso deve ser feita dependendo do caso. O que importante a
atribuio da responsabilidade a uma manuteno para um nico
grupo ou pessoa, independentemente da organizao da estrutura.

4.2.5 Terceirizao
Organizaes de manuteno terceirizadas se
tornou uma grande indstria. O maior desafio dessas empresas
manter a regularidade na qualidade de seus servios, e
consequentemente, seus clientes. Para se iniciar uma empresa
dessa rea exige um investimento inicial significativo e um
processo de manuteno na qual exigido automao.

4.3 Estimativa nos custos de manuteno


Os engenheiros de software devem compreender as
diferentes categorias de manuteno de software a fim de abordar
a questo do custo de manuteno estimado, fator muito
importante para o planejamento de manuteno.

4.3.1 Custo estimado


Os custos de manuteno so afetados por
diversos fatores, tanto tcnicos quanto no tcnicos. O padro
14764 diz que atravs da utilizao de modelos paramtricos e
uso de experincia ajudam na estimativa de custos. Uma
combinao dos dois fatores tambm pode ser feito.

4.3.2 Modelos paramtricos


A modelagem de custos paramtricos (modelos
matemticos) uma aplicao da manuteno de software. Ela
consiste no uso e calibrao de dados histricos de manutenes
anteriores atravs de modelos matemticos.

4.3.3 Experincia
A experincia freqentemente usada para estimar
a capacidade do agente responsvel pela manuteno. Claramente,
a melhor abordagem para estimar a manuteno combinar dados
e experincia histrica.

4.3.4 Mtricas da Manuteno de Software


Entidades relacionadas manuteno de software,
cujos atributos podem ser submetidos a medio, incluem
processo, recurso e produto. Atribuidos a esses aspectos, devem
tomar as seguintes mtricas para promover uma boa manuteno
de sotware: tamanho da mudana, complexidade, qualidade,
facilidade de compreenso, conservao e esforo. Medidas de
complexidade tambm podem ser obtidas usando ferramentas
comerciais.

4.3.5 Mtricas Especficas


O responsvel pela manuteno deve determinar
quais medidas so adequadas para uma determinada organizao
baseando-se no contexto da prpria organizao. Para seguir os
padres de um software de qualidade preciso cumprir as
seguintes mtricas para as subcaracteristicas de manuteno:
Analisabilidade: o responsvel analisa e
diagnostica deficincias ou causas de falhas para identificar o erro
a ser corrigido.

Mutabilidade: responsabilizada pela


especificao de determinada modificao no software.
Estabilidade: so executadas quando
ocorre um comportamento inesperado no software
Testabilidade: adotada pelo
responsvel e pelos usurios para testar uma certa
modificao
Outras mtricas: tamanho do
software, complexidade, compreenso e
conservao

5. Processo de manuteno
Os processos de manuteno proporcionam atividades
necessrias e entradas/sadas para essas atividades, segundo a
descrio no padro internacional. As atividades do processo de
manuteno incluem:
implementao do processo ,
problema e anlise de modificao,
implementao de mudana,
reviso / aceitao da manuteno,
migrao e
retirada de circulao.

Processo de Manuteno de Software

Recentemente, metodologias geis que promovem processos


leves foram tambm adaptadas para manuteno. Este requisito
surge a partir da crescente demanda por retorno rpido em
servios de manuteno.

5.1 Atividades de Manuteno


O processo de manuteno contm as atividades e
tarefas necessrias para modificar um software existente,
preservando sua integridade. Essas atividades so realizadas pelo
responsvel pela manuteno do software. Atividades de
manuteno podem ser semelhantes a atividades de
desenvolvimento, como a anlise, projeto, codificao, testes e

documentao. O controle de atividades deve ser feito assim


como no desenvolvimento. Apesar de parecidos, o processo de
manuteno de software possui alguns processos exclusivos.

5.1.1 Atividades nicas


H uma boa quantidade de atividades, prticas e
processos exclusivos na manuteno de software:
Compreenso do software: so as
atividades necessrias para obter um conhecimento
geral do que um software faz e como as partes
trabalham juntas.
Transio : uma controlada e
coordenada
seqncia de atividades, na qual o software
transferido progressivamente do desenvolvedor
para o responsvel pela manuteno.
Pedido de aceitao ou rejeio
de mudana: modificaes solicitando trabalho alm
de um certo
tamanho / esforo / complexidade pode ser rejeitado
por mantenedores e reencaminhadas para um
desenvolvedor .
Central de Ajuda da manuteno:
o usurio solicita ajuda ao responsvel pela
manuteno
Anlise de impacto : uma tcnica
para identificar as reas impactadas por uma
mudana potencial;
Acordos de Manuteno de
servio de nvel (SLAs) e licenas de manuteno e
contratos : acordos contratuais que descrevem os
servios e objectivos de qualidade .

5.1.2 Atividades de suporte

Os
funcionrios
responsveis
pela
manuteno tambm podem exercer atividades de suporte, tais
como documentao, configurao, gesto, verificao e validade,
resoluo de problemas, garantia de qualidade de software,
avaliaes e auditorias. Outra funo importante o treinamento
de funcionrios da rea e usurios.

5.1.3 Atividades de planejamento


O planejamento uma atividade importante na
manuteno de software. Os responsveis devem abordar
questes associadas a uma srie de perspectivas (nveis) de
planejamento, incluindo:
planejamento de negcios ( nvel
organizacional ) ,
planejamento de manuteno ( nvel de
transio ) ,
planejamento de verso (nvel de software ),
e
planejamento individual de solicitao de
mudana no software ( nvel de solicitao ) .
No nvel individual, o planejamento
realizado durante a anlise de impacto. Isso requer
que o responsvel possa:
coletar as datas disponveis para pedidos
individuais,
concordar com os usurios sobre o contedo
das prximas verses do software
identificar conflitos e desenvolver
alternativas ,
avaliar os riscos de uma determinada verso
e desenvolver um plano de recuperao caso ocorra
erros e
informar todos as stakeholders.
Considerando
que
os
projetos
de
desenvolvimento de software podem durar de alguns meses a
alguns anos, a fase de manuteno geralmente dura anos. A

deciso de desenvolver novas verses exige uma documentao


necessria contendo as estimativas de recursos e objetivos na
parte qualitativa. No documento deve conter:
contexto da manuteno de software,
adaptao do processo da manuteno de
software,
organizao da manuteno de software e
estimativa de custos de manuteno.
O prximo passo consiste em desenvolver um
plano de manuteno de software. Este plano deve ser preparado
durante o desenvolvimento do software e deve especificar como
os usurios devem solicitar mudanas no mesmo ou reportar
problemas apresentados no uso. O IEEE 14764 fornece diretrizes
para a um plano de organizao padro.
No ultimo nvel a organizao da manuteno
ter de realizar planejamentos de negcios (financeiros,
oramentais e de RH).

5.1.4 Gesto de configurao de software


O padro internacional descreve a configurao de
software como um elemento crtico do processo de manuteno.
No gerenciamento dos procedimentos da configurao de
software devem prever a verificao, validao e auditoria de
cada etapa necessria para identificar, autorizar, implementar e
colocar o produto no mercado.
Os pedidos de modificaes e relatrios de
problemas no so suficientes para a gesto de configurao. O
software desenvolvido e quaisquer alteraes feitas nele devem
ser controlados, atravs da Gesto de Configurao de Software
(SCM, sigla em ingls). O SCM fornece detalhes e discute o
processo pelo qual o software modificado, e como essas
mudanas so submetidas, avaliadas e aprovadas. O SCM de uma
manuteno de software diferente de um SCM de um
desenvolvimento de software.

5.1.5 Qualidade de software

A qualidade de um software no vai


surgir simplesmente realizando a manuteno. Os
funcionrios da manuteno devem ter em mos
um programa destinado para a qualidade de
software. Para alcanar o nivel desejado de
qualidade, este programa deve realizar processos
de SQA (traduzido, Garantia de Qualidade de
Software), processos de V&V (verificao e
validao), reviso e auditorias.

6. Tcnicas para manuteno


6.1 Compreenso do programa
Programadores gastam muito tempo lendo tentando
entender o contedo dos programas, a fim de implementar coisas
novas ou alterar outras j existentes. Navegadores de cdigo so
instrumentos fundamentais para o programa
compreenso e so usadas para organizar e
apresentar cdigo fonte. Documentao clara e
concisa tambm pode auxiliar na compreenso
programa .

6.2 Reengenharia
O exame e alterao de software para reconstru-lo
em outra forma e incluir a nova aplicao em um novo
formulrio. A refatorao um processo de reengenharia que visa
reorganizar um software sem mudar seu comportamento, com o
objetivo de melhorar sua estrutura. Essa tcnica pode ser usada
durante pequenas alteraes no software.

6.3 Engenharia reversa

A engenharia reversa o processo de anlise do


software para identificar os seus componentes e suas interrelaes e criar representaes do software atravs de outra forma
ou em nveis mais altos de abstrao. Esse processo passivo, ou
seja, ele no altera o programa e nem se resulta a um novo. Como
processos de engenharia reversa, podemos citar a redocumentao
e a recuperao de projetos (recriao de abstraes de design
atravs de combinaes de cdigos).

6.4 Migrao
Durante o tempo de vida de um software, ele pode
ser modificado para ser executado em diferentes ambientes. Para
efetuar uma migrao bem sucedida preciso determinar as aes
necessrias e em seguida desenvolver e documentar seus passos.
Um plano de migrao inclui requisitos, ferramentas, converso
do produto e de dados, execuo, verificao e apoio. A migrao
tambm pode implicar uma srie de atividades adicionais, como:
notificao de inteno: uma declarao
explicando o motivo da mudana de ambiente, e a
descrio detalhada do novo a ser utilizado.
operaes paralelas: mudana de ambiente
aos poucos, sem ocorrer mudanas drsticas
imediatas
notificao de concluso: quando a migrao
planejada concluda, um notificao enviada a
todos os interessados
avaliao ps-operatrio : avaliao das
operaes paralelas e o impacto da mudana para o
novo ambiente ;
arquivamento de dados : armazenar os
dados da verso anterior do software

6.5 Retirada de circulao


Uma vez que o tempo de vida til de um
software tenha chegado ao fim, ele deve ser

aposentado. Para ocorrer uma retirada de circulao


do software sem arrependimentos, se deve seguir
um plano de aposentadoria que abrange requisitos
de retirada, impacto, substituio, cronograma e
esforo. Arquivo de cpias de dados tambm pode
ser includo. A retirada de um software de circulao
implica uma srie de atividades ligadas migrao
de software.

7. Ferramentas de manuteno
de software
Aqui abordaremos sobre as ferramentas
que so particularmente importantes na
manuteno de software, onde o j mesmo
existente est sendo modificado.
Programas de corte, que selecionam apenas
partes de um programa afectado por uma
alterao ;
analisadores estticos, que permitem a
visualizao geral e resumos de contedo do
programa;
analisadores dinmicos, que permitem que o
responsvel pela manuteno rastreie o caminho de
execuo de um programa;
analisadores de fluxo de dados, que
permitem que o funcionrio da manuteno
acompanhe todos os fluxos de dados possveis
programa;
referncias cruzadas, que geram ndices de
componentes do programa; e

analisadores de dependncia , que ajudam


os funcionrios a analisar e compreender as interrelaes entre os componentes de um programa.
Ferramentas de engenharia reversa
auxiliam o processo, assim como seus processos
tambm contribuem para gerar um novo produto a
partir de um antigo. Funcionrios da manuteno
tambm podem usar de testes, configuraes,
documentaes e ferramentas mtricas.