Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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.
polticas,
concorrncia, o processo, o produto e pessoal.
questes tcnicas,
questes de gesto,
estimativa de custo,
e medio.
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.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.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.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.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.
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.
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.
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.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
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