{"title":"方法替代指标:分析行为替代的度量","authors":"R. Schauer, R. Keller","doi":"10.1109/ICSM.2001.972796","DOIUrl":null,"url":null,"abstract":"Object-oriented programming is about the creation of reusable classes that are to be extended to capture the specific requirements of the application at hand. However, instead of extending the methods of these classes, programmers often introduce subclasses in which they replace these methods with implementations that are completely detached from the superclass; that is, the subclass method does not invoke, directly or indirectly, its counterpart in the superclass. In this paper we apply the SPOOL environment to the reverse-engineered C++ source code of two industrial systems to investigate the occurrences and causes for method replacements, both at the method and at the class level. We define the method replacement indicator (MRI), which quantifies the extent of method replacements. Based on the data obtained in the analysis, we identify and discuss the causes why programmers replace non-primitive method implementations of reusable classes.","PeriodicalId":160032,"journal":{"name":"Proceedings IEEE International Conference on Software Maintenance. ICSM 2001","volume":"1 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2001-11-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"1","resultStr":"{\"title\":\"The method replacement indicator: a metric for analyzing behavioral substitution\",\"authors\":\"R. Schauer, R. Keller\",\"doi\":\"10.1109/ICSM.2001.972796\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Object-oriented programming is about the creation of reusable classes that are to be extended to capture the specific requirements of the application at hand. However, instead of extending the methods of these classes, programmers often introduce subclasses in which they replace these methods with implementations that are completely detached from the superclass; that is, the subclass method does not invoke, directly or indirectly, its counterpart in the superclass. In this paper we apply the SPOOL environment to the reverse-engineered C++ source code of two industrial systems to investigate the occurrences and causes for method replacements, both at the method and at the class level. We define the method replacement indicator (MRI), which quantifies the extent of method replacements. Based on the data obtained in the analysis, we identify and discuss the causes why programmers replace non-primitive method implementations of reusable classes.\",\"PeriodicalId\":160032,\"journal\":{\"name\":\"Proceedings IEEE International Conference on Software Maintenance. ICSM 2001\",\"volume\":\"1 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2001-11-07\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"1\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Proceedings IEEE International Conference on Software Maintenance. ICSM 2001\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/ICSM.2001.972796\",\"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 IEEE International Conference on Software Maintenance. ICSM 2001","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/ICSM.2001.972796","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
The method replacement indicator: a metric for analyzing behavioral substitution
Object-oriented programming is about the creation of reusable classes that are to be extended to capture the specific requirements of the application at hand. However, instead of extending the methods of these classes, programmers often introduce subclasses in which they replace these methods with implementations that are completely detached from the superclass; that is, the subclass method does not invoke, directly or indirectly, its counterpart in the superclass. In this paper we apply the SPOOL environment to the reverse-engineered C++ source code of two industrial systems to investigate the occurrences and causes for method replacements, both at the method and at the class level. We define the method replacement indicator (MRI), which quantifies the extent of method replacements. Based on the data obtained in the analysis, we identify and discuss the causes why programmers replace non-primitive method implementations of reusable classes.