No curso de sua atividade profissional, um programador tem que lidar com muitas situações que requerem análises complexas de grandes fragmentos de código-fonte ou mesmo de aplicativos inteiros. Pesquisar soluções e práticas de sucesso, analisar algoritmos já implementados ou simplesmente transferir outro projeto para uma equipe muitas vezes torna necessário desmontar um programa escrito por outra pessoa.
Necessário
- - programa para visualizar o código-fonte;
- - possivelmente engenharia reversa e ferramentas de case.
Instruções
Passo 1
Examine o fluxo de transferência de controle do programa que está sendo analisado Identifique o ponto de entrada. É, por exemplo, a função principal em C e C ++, o início de um bloco de estrutura de primeiro nível sem nome, terminando com a palavra-chave END com um ponto, em pascal. Partindo do ponto de entrada, trace todas as rotas de chamadas para funções, procedimentos, métodos de classes. Elabore um diagrama de fluxo de controle de alto nível. Para simplificar esse processo, você pode usar várias ferramentas de engenharia reversa. Analise o código-fonte dos elementos estruturais do programa analisado com mais detalhes. Desenhe diagramas de fluxo de controle ou diagramas de fluxo para funções e métodos individuais.
Passo 2
Analise os fluxos de dados do programa que está sendo analisado. Identifique as estruturas usadas para armazenar informações e transferi-las entre os elementos funcionais da aplicação. Identifique os fragmentos de código que convertem dados de um formulário para outro. Faça uma lista de locais no programa onde as informações são recebidas do ambiente externo, bem como sua saída em algum lugar. Ferramentas de reengenharia e ferramentas de caso (por exemplo, para construir um diagrama de herança e um diagrama de dependência) também ajudarão com esse tipo de análise.
etapa 3
Desmonte o programa, tendo um entendimento completo dos princípios de seu funcionamento. Com base no conhecimento sobre o fluxo de transferência de controle entre os elementos estruturais, bem como dentro deles, o conhecimento dos fluxos e tipos de transformações de dados, identifique os principais algoritmos de trabalho Separar os algoritmos de processamento de dados e controle de interface. Selecione algoritmos de processamento típicos e classifique-os. Identifique algoritmos com base na interação de vários componentes (por exemplo, a pesquisa pode ser usada tanto de forma independente quanto como parte de uma classificação). Se necessário, elabore fluxogramas com vários graus de detalhes para ilustrar a operação do programa.