Ce este Program Slicing?

În aplicațiile software, felierea programului este o metodă de identificare a elementelor de bază ale unui program software și de extragere ușor din codul mai complicat care permite programului să funcționeze. Acest lucru este deosebit de important pentru eforturile de inginerie software, deoarece îi permite inginerului software să găsească calea prin șiruri complicate de cod pentru a accesa codul sursă care conduce de fapt aplicația. Posibilitatea de a extrage aceste subprograme și de a vizualiza codul sursă face posibilă identificarea unei game largi de erori potențiale și astfel face ca software-ul să ruleze cu mai multă eficiență.

Nu este neobișnuit ca codul să fie complicat în mod intenționat. Unul dintre principalele motive pentru această acțiune este că porțiunile mai complicate ale codului ajută la protejarea codului sursă împotriva corupției cauzate de viruși și tentative de hacking. De obicei, un programator va adăuga o mulțime de cod suplimentar care, în esență, face necesar să parcurgă o serie de pași suplimentari pentru a realiza ceea ce ar putea fi gestionat de codul sursă cu doar câțiva pași. Deși aceasta este o stare dezirabilă din perspectiva protecției software-ului de o posibilă corupție, există situații în care este nevoie să ajungeți la codul sursă. Aici intră în joc tăierea programului.

Există două abordări sau dimensiuni de bază pentru a programa tăierea. Dimensiunea semantică se concentrează pe elementele șirului de cod care sunt necesare și astfel vor fi reținute. Atât funcțiile statice, cât și cele dinamice sunt identificate și păstrate prin utilizarea unor metode specifice de tăiere care lasă în urmă elementele esențiale, dar elimină o mare parte din codul inserat ca parte a procesului de mascare. Cu slicing-ul semantic al programului, inginerul are o discreție destul de mare în a decide ce, dacă există, din codul suplimentar rămâne de fapt.

Tăierea sintactică a programului nu oferă inginerului aceeași cantitate de opțiuni. Cu această abordare, orice lucru care nu este esențial pentru funcția de bază a codului este eliminat. Dacă se constată că un șir nu servește un scop real și nu are niciun impact asupra semanticii de interes găsite în cod, merge. Această abordare ajută la păstrarea sintaxei inițiale a programului, fără bibelouri suplimentare.

O a doua utilizare, din ce în ce mai comună, a tăierii sintactice a programelor este cunoscută sub denumirea de tăiere amorfă a programelor. Prin această abordare, scopul este de a face posibil ca felia să continue să lucreze cu orice funcție sintactică care ajută la menținerea constrângerilor semantice pe care inginerul dorește să le păstreze în cod.