Co je Program Slicing?
V softwarových aplikacích je krájení programů metoda identifikace základních prvků softwarového programu a jejich jemného extrahování z komplikovanějšího kódu, který umožňuje programu fungovat. Proces krájení programů je obzvláště důležitý pro úsilí softwarového inženýrství, protože umožňuje softwarovému inženýrovi najít cestu skrz složité řetězce kódu, aby měl přístup ke zdrojovému kódu, který skutečně řídí aplikaci. Schopnost extrahovat tyto podprogramy a prohlížet si zdrojový kód umožňuje identifikovat širokou škálu potenciálních chyb, a tak umožnit běh softwaru s větší účinností.
Není neobvyklé, že kód je záměrně komplikovaný. Jedním z hlavních důvodů této akce je skutečnost, že složitější části kódu pomáhají chránit zdrojový kód před poškozením viry a pokusy o hackování. Programátor obvykle přidá velké množství extra kódu, který v zásadě vyžaduje projít řadou dalších kroků, aby bylo možné dosáhnout toho, co by mohl zdrojový kód spravovat, pouze několika kroky. I když je to žádoucí stav z hlediska ochrany softwaru před možnou korupcí, existují situace, kdy je třeba se dostat ke zdrojovému kódu. To je místo, kde se plátky programu začnou hrát.
Programování řezů jsou dva základní přístupy nebo dimenze. Sémantická dimenze se zaměřuje na prvky kódového řetězce, které jsou nezbytné a budou tedy zachovány. Statické i dynamické funkce jsou identifikovány a zachovány pomocí specifických metod krájení, které nezanechávají základní prvky, ale odstraňují většinu kódu vloženého jako součást procesu maskování. Při sémantickém krájení programů má inženýr dostatečnou volnost při rozhodování o tom, jaký extra kód skutečně existuje.
Syntaktické krájení programů neposkytuje technikovi stejné množství možností. S tímto přístupem se odstraní vše, co není podstatné pro základní funkci kódu. Pokud se zjistí, že řetězec nemá žádný skutečný účel a nemá žádný dopad na sémantiku zájmu nalezenou v kódu, jde to. Tento přístup pomáhá zachovat původní syntaxi programu bez jakýchkoli zvláštních ozdob.
Druhé a stále běžnější použití krájení syntaktického programu je známé jako krájení amorfního programu. Cílem tohoto přístupu je umožnit řezu pokračovat v práci s jakoukoli syntaktickou funkcí, která pomáhá udržovat sémantická omezení, která chce inženýr zachovat v kódu.