Tratar o problema do ano 2000 de uma forma sistemática e semi-automatizada, buscando o desenvolvimento incremental com o objetivo de utilizar o conhecimento obtido nos incrementos anteriores. As atividades a serem executadas são as apresentadas na Figura 1 e detalhadas nos itens a seguir. É importante salientar que o diferencial que podemos oferecer é um sistema de identificação que utiliza heuristícas flexíveis para procurar as diferentes ocorrências de problemas de datas, tanto na parte de definição como na parte de procedimentos. Hoje dispomos de ferramental para a linguagem Cobol, mas face a arquitetura da máquina Draco-PUC é possível aplicar a estratégia para outras linguagens.
Figura 1 - Processo de Solução
Levantar as informações necessárias ao planejamento e particionamento dos trabalhos de correção do Problema do Ano 2000.
Esta fase será executada semi-automaticamente com o uso da Máquina Draco na construção do Modelo do Sistema. É necessária o auxilio dos usuários do sistema principalmente quando da inexistência de documentações do sistema. O produto final desta fase é o Modelo do Sistema.
A figura 2 mostra a fase de Levantamento Preliminar.
Figura 2 - Levantamento Preliminar
Planejar a estratégia de correção do Problema do Ano 2000 definindo os componentes a serem corrigidos, requisitos a serem alcançados, restrições, prazos e custos.
Esta fase será feita manualmente pelo Engenheiro de Software que identificará e ordenará em ordem de prioridade os componentes a serem corrigidos. Para tanto irá utilizar o Modelo do Sistema criado na fase anterior no qual poderá identificar conjuntos de componentes que possuam pouco acoplamento com os demais.
Os produtos finais desta fase são:
Localizar pontos de ocorrência de problemas referentes ao Ano 2000.
A localização dos problemas será executada através da aplicação de transformações nos arquivos fontes e de esquemas de bancos de dados. Estas transformações utilizam heurísticas armazenadas na Base de Conhecimento que pode ser refinada pelo Engenheiro de Software com o próprio conhecimento adquirido no sistema que estiver sendo corrigido.
Utilizando-se o Modelo do Sistema os problemas localizados são propagados aos outros módulos. Esta propagação baseia-se no fato que os procedimentos que estiverem utilizando um dado errado se constituem em outra ocorrência de problemas.
O produto final desta fase é uma lista de problemas identificados, suas localizações e tipos de problemas. Esta lista irá orientar a fase de correção dos problemas.
A figura 3 mostra a fase de Localização de Problemas.
Figura 3 - Fase de Localização de Problemas
Executar semi-automaticamente as transformações necessárias a correção dos problemas identificados e criar os procedimentos necessários aos testes e re-implantação do sistema na plataforma original.
A correção dos problemas será executada através da aplicação de transformações nos componentes do sistema original. A transformação a ser aplicada é definida pelo tipo do problema identificado na fase anterior e pelas técnicas armazenadas na Base de Conhecimento. O Engenheiro de Software pode interferir na seleção da técnica a ser utilizada na correção de cada problema.
A máquina Draco mantém um registro (Log de Modificações) de todas as transformações realizadas de maneira a permitir ações de undo, ou seja, o analista pode desfazer qualquer modificação realizada.
Na aplicação das transformações nos arquivos de dados é utilizado o Log de Modificações de maneira a poder selecionar quais dados modificar e que tipos de transformações utilizar.
Os produtos finais obtidos nesta fase são:
A figura 4 apresenta a Fase de Correção de Problemas
Figura 4 - Fase de Correção de Problemas
Testar as modificações realizadas no conjunto de componentes modificados
Esta fase é executada manualmente pelo Engenheiro de Software com a ajuda de algumas ferramentas, como por exemplo o diff do Unix. O trabalho do engenheiro é guiado pela Especificação de Testes que mantém um regsistro das tarefas já executadas e dos componetes que já foram certificados.
O mecanismo de undo é executado pela Máquina Draco e não deve ser feito manualmente pois criaria inconsistência entre o Log de Modificações e o Sistema Modificado.
Pode ser necessária a modificação manual do sistema pelo analista. Estas modificações devem ser registrados, na forma de comentário, no Log de Modificações.
Os produtos finais desta fase são:
A figura 5 apresenta as Fases de Teste de Unidades e de Teste de Integração que possuem os mesmos componentes sendo que a principal diferença entre elas é o enfoque e abrangência do sistema em teste.
Figura 5 - Fases de Teste de Unidades e Teste de Integração
Integrar o conjunto de componentes modificados a porção do sistema original que já foi corrigida e testada em incrementos anteriores procedendo os testes necessários.
Esta fase utiliza as mesmas ferramentas da fase anterior, apresentadas na Figura 2.5. A principal diferença é que nesta fase procedemos aos testes de todos os componentes que já foram modificados.
Colocar o sistema modificado em produção na plataforma original.
Esta fase é realizada com o auxílio dos usuários do sistema. São utilizandos os Arquivos de Importação que indicam as diversas atividades a serem executadas na re-implantação do sistema e na transição do sistema original para o modificado.
A figura 6 apresenta a Fase de Reimplantação.
Figura 6 - Fase de Re-Implantação
Verifique o exemplo do uso da Máquina Draco-PUC na localização de problemas de datas.