{"title":"混合程序切片框架","authors":"J. Rilling, Bhaskar Karanth","doi":"10.1109/SCAM.2001.972662","DOIUrl":null,"url":null,"abstract":"Program slicing is a decomposition technique that transforms a large program into a smaller one that contains only statements relevant to the computation of a selected function. Applications of program slicing can be found in software testing, debugging, and maintenance by reducing the amount of data that has to be analyzed in order to comprehend a program or parts of its functionality. In this paper, we present a general dynamic and static slicing algorithm. Both algorithms are based on the notion of removable blocks and compute executable slices for object-oriented programs. In the second part of the paper we present our hybrid-slicing framework that was designed to take advantage of static and dynamic slicing algorithms that share the common notion of removable blocks, to enhance traditional slicing techniques. The hybrid-slicing framework is an integrated part of our existing MOOSE software comprehension framework that is used to demonstrate the applications and usability of these algorithms for the comprehension of software systems.","PeriodicalId":190865,"journal":{"name":"Proceedings First IEEE International Workshop on Source Code Analysis and Manipulation","volume":"40 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2001-11-10","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"20","resultStr":"{\"title\":\"A hybrid program slicing framework\",\"authors\":\"J. Rilling, Bhaskar Karanth\",\"doi\":\"10.1109/SCAM.2001.972662\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Program slicing is a decomposition technique that transforms a large program into a smaller one that contains only statements relevant to the computation of a selected function. Applications of program slicing can be found in software testing, debugging, and maintenance by reducing the amount of data that has to be analyzed in order to comprehend a program or parts of its functionality. In this paper, we present a general dynamic and static slicing algorithm. Both algorithms are based on the notion of removable blocks and compute executable slices for object-oriented programs. In the second part of the paper we present our hybrid-slicing framework that was designed to take advantage of static and dynamic slicing algorithms that share the common notion of removable blocks, to enhance traditional slicing techniques. The hybrid-slicing framework is an integrated part of our existing MOOSE software comprehension framework that is used to demonstrate the applications and usability of these algorithms for the comprehension of software systems.\",\"PeriodicalId\":190865,\"journal\":{\"name\":\"Proceedings First IEEE International Workshop on Source Code Analysis and Manipulation\",\"volume\":\"40 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2001-11-10\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"20\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Proceedings First IEEE International Workshop on Source Code Analysis and Manipulation\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/SCAM.2001.972662\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings First IEEE International Workshop on Source Code Analysis and Manipulation","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/SCAM.2001.972662","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
Program slicing is a decomposition technique that transforms a large program into a smaller one that contains only statements relevant to the computation of a selected function. Applications of program slicing can be found in software testing, debugging, and maintenance by reducing the amount of data that has to be analyzed in order to comprehend a program or parts of its functionality. In this paper, we present a general dynamic and static slicing algorithm. Both algorithms are based on the notion of removable blocks and compute executable slices for object-oriented programs. In the second part of the paper we present our hybrid-slicing framework that was designed to take advantage of static and dynamic slicing algorithms that share the common notion of removable blocks, to enhance traditional slicing techniques. The hybrid-slicing framework is an integrated part of our existing MOOSE software comprehension framework that is used to demonstrate the applications and usability of these algorithms for the comprehension of software systems.