Abstract-En alternativ metod för att utveckla återanvändbara komponenter från grunden är att återvinna dem från befintliga system. I denna uppsats tillämpar vi programslicing, en program sönderdelningsmetod, på problemet med att extrahera återanvändbara funktioner från illstrukturerade program. Som med konventionell skivning först beskrivs av Weiser, en skiva erhålls genom iterativt lösa dataflöde ekvationer baserat på ett programflöde graf. Vi utökar definitionen av program bit till en transform skiva, en som innehåller uttalanden som direkt eller indirekt bidrar till att omvandla en uppsättning indatavariabler till en uppsättning utdatavariabler. Till skillnad från konventionell program skivning, innehåller dessa uttalanden varken de uttalanden som krävs för att få indata eller de uttalanden som testar de bindande villkoren för funktionen. Transformera skivning förutsätter kunskap om att en funktion utförs i koden och dess partiella specifikation, endast i form av indata och utdata. Med hjälp av domänkunskap diskuterar vi hur man formulerar förväntningar på de funktioner som implementeras i koden. Förutom input/output-parametrarna för funktionen, beror skivningskriteriet på en inledande förklaring, som är svår att få för stora program. Med hjälp av begreppen för nedbrytning skiva och koncept validering visar vi hur man producerar en uppsättning kandidatfunktioner, som är oberoende av linjenummer men måste utvärderas med avseende på det förväntade beteendet. Även om mänsklig interaktion krävs, den begränsade storleken av kandidatfunktioner gör denna uppgift lättare än att leta efter den sista funktionsinstruktioner i den ursprungliga källkoden.
Till exempel Lanubile et al. REF tillämpade en program sönderdelningsmetod på problemet med att extrahera återanvändbara funktioner från illstrukturerade program.
Extracting Reusable Functions by Flow Graph-Based Program Slicing
{'venue': 'ICSM', 'journal': None, 'mag_field_of_study': ['Computer Science']}