Che cos'è il programma Slicing?
Nelle applicazioni software, la suddivisione dei programmi è un metodo per identificare gli elementi chiave di un programma software ed estrarli delicatamente dal codice più complicato che consente al programma di funzionare. Il processo di suddivisione dei programmi è particolarmente importante per gli sforzi di ingegneria del software, in quanto consente all'ingegnere del software di trovare la strada attraverso stringhe di codice complicate per accedere al codice sorgente che guida effettivamente l'applicazione. Essere in grado di estrarre questi sottoprogrammi e visualizzare il codice sorgente consente di identificare una vasta gamma di potenziali bug e quindi far funzionare il software con maggiore efficienza.
Non è insolito che il codice sia intenzionalmente complicato. Uno dei motivi principali di questa azione è che le parti più complicate del codice aiutano a proteggere il codice sorgente dalla corruzione da virus e tentativi di hacking. Di solito, un programmatore aggiungerà una grande quantità di codice aggiuntivo che in sostanza rende necessario eseguire una serie di passaggi aggiuntivi per ottenere ciò che potrebbe essere gestito dal codice sorgente con pochi passaggi. Mentre questo è uno stato desiderabile dal punto di vista della protezione del software da possibili corruzioni, ci sono situazioni in cui è necessario accedere al codice sorgente. È qui che entra in gioco la suddivisione dei programmi.
Esistono due approcci o dimensioni di base per programmare lo slicing. La dimensione semantica si concentra sugli elementi della stringa di codice che sono necessari e quindi verranno mantenuti. Entrambe le funzioni statiche e dinamiche vengono identificate e preservate facendo uso di metodi specifici di slicing che lasciano indietro gli elementi essenziali ma rimuovono gran parte del codice inserito come parte del processo di mascheramento. Con la suddivisione semantica del programma, l'ingegnere ha una discreta discrezione nel decidere quale, se del caso, del codice aggiuntivo rimane effettivamente.
Il slicing del programma sintattico non fornisce all'ingegnere la stessa quantità di opzioni. Con questo approccio, tutto ciò che non è essenziale per la funzione principale del codice viene rimosso. Se si rileva che una stringa non ha alcuno scopo reale e non ha alcun impatto sulla semantica di interesse rilevata nel codice, va bene. Questo approccio aiuta a preservare la sintassi originale del programma senza ulteriori fronzoli.
Un secondo e sempre più comune uso del programma di suddivisione sintattica è noto come programma di suddivisione del programma amorfo. Con questo approccio, l'obiettivo è quello di consentire alla porzione di continuare a lavorare con qualsiasi funzione sintattica che aiuti a mantenere i vincoli semantici che l'ingegnere desidera preservare nel codice.