O que é Fatiamento de Programa?
Em aplicativos de software, a divisão de programas é um método para identificar os elementos principais de um programa de software e extraí-los suavemente do código mais complicado que permite que o programa funcione. O processo de divisão do programa é especialmente importante para os esforços de engenharia de software, pois permite que o engenheiro de software encontre o caminho através de cadeias complicadas de código para acessar o código-fonte que realmente impulsiona o aplicativo. A capacidade de extrair esses subprogramas e visualizar o código fonte permite identificar uma ampla variedade de possíveis bugs e, assim, tornar o software executado com mais eficiência.
Não é incomum o código ser intencionalmente complicado. Uma das principais razões para essa ação é que as partes mais complicadas do código ajudam a proteger o código-fonte da corrupção por vírus e tentativas de invasão. Normalmente, um programador adiciona uma grande quantidade de código extra que essencialmente torna necessário executar várias etapas extras para realizar o que poderia ser gerenciado pelo código fonte com apenas algumas etapas. Embora esse seja um estado desejável da perspectiva de proteger o software de uma possível corrupção, há situações em que é necessário acessar o código-fonte. É aí que a fatia do programa entra em jogo.
Existem duas abordagens ou dimensões básicas para programar o fatiamento. A dimensão semântica se concentra nos elementos da cadeia de código que são necessários e, portanto, serão mantidos. As funções estáticas e dinâmicas são identificadas e preservadas usando métodos específicos de fatiamento que deixam para trás os elementos essenciais, mas removem grande parte do código inserido como parte do processo de mascaramento. Com a divisão semântica do programa, o engenheiro tem uma boa dose de discrição ao decidir qual, se houver, o código extra realmente permanece.
A divisão do programa sintático não fornece ao engenheiro a mesma quantidade de opções. Com essa abordagem, qualquer coisa que não seja essencial para a função principal do código é removida. Se for encontrado que uma string não serve a nenhum propósito real e não tem nenhum impacto na semântica de interesse encontrada no código, ela continua. Essa abordagem ajuda a preservar a sintaxe original do programa sem nenhum recurso extra.
Um segundo e cada vez mais comum uso de fatias sintáticas de programas é conhecido como fatias amorfas de programas. Com essa abordagem, o objetivo é possibilitar que a fatia continue trabalhando com qualquer função sintática que ajude a manter as restrições semânticas que o engenheiro deseja preservar no código.