Modifiable Source Code Virtual Views
Resumo
This paper introduces the modifiable source code virtual view concept, which is a variant of a source code fragment from the version used to generate the binary code for execution, enriched with information provided by the impact analysis process. A modifiable source code virtual view supports the maintenance process instead of the corresponding source code fragment used to generate the binary code, as is the current practice today. The set of key maintenance attributes (maintainability, reusability, etc.) are improved in the view, while the (opposite) set of key software execution attributes (performance, security, etc.) are improved in the source code fragment to generate the binary code. In between, there are refactoring transformations that adjust the metrics related to each set of key attributes, which also support the propagation of modifications from the view to its corresponding fragment in execution.
Referências
Giuliano Antoniol, Gerardo Canfora, Gerardo Casazza, and Andrea De Lucia. 2000. Identifying the Starting Impact Set of a Maintenance Request: A Case Study. In CSMR. IEEE Computer Society, 227--230.
Anonymous authors. [n. d.]. Not presented due to double blind review.
Rajiv D. Banker, Srikant M. Datar, Chris F. Kemerer, and Dani Zweig. 1993. Software Complexity and Maintenance Costs. Commun. ACM 36, 11 (nov 1993), 81--94. https://doi.org/10.1145/163359.163375
Keith H. Bennett and Václav T. Rajlich. 2000. Software maintenance and evolution: a roadmap. In Proceedings of the Conference on The Future of Software Engineering (ICSE '00). ACM, New York, NY, USA, 73--87. https: //doi.org/10.1145/336512.336534
G. Canfora and L. Cerulo. 2005. Impact Analysis by Mining Software and Change Request Repositories. In Software Metrics, IEEE International Symposium on. IEEE Computer Society, Los Alamitos, CA, USA, 29. https://doi.org/10.1109/METRICS.2005.28
Xiao Cheng, Yuting Chen, Zhenjiang Hu, Tao Zan, Mengyu Liu, Hao Zhong, and Jianjun Zhao. 2016. Supporting Selective Undo for Refactoring. In IEEE 23rd International Conference on Software Analysis, Evolution, and Reengineering, SANER 2016, Suita, Osaka, Japan, March 14-18, 2016 - Volume 1. 13--23. https://doi.org/10.1109/SANER.2016.20
Julien Cohen, Rémi Douence, and Akram Ajouli. 2012. Invertible Program Restructurings for Continuing Modular Maintenance. In CSMR. IEEE Computer Society, 347--352.
Bogdan Dit, Meghan Revelle, Malcom Gethers, and Denys Poshyvanyk. 2013. Feature location in source code: a taxonomy and survey. Journal of Software: Evolution and Process 25, 1 (2013), 53--95. http://dblp.uni-trier.de/db/journals/smr/smr25.html#DitRGP13
Martin Fowler. 1999. Refactoring: Improving the Design of Existing Code. Addison-Wesley, Boston, MA, USA.
Shadi Ghaith and Mel Ó Cinnéide. 2012. Improving Software Security Using Search-Based Refactoring. In SSBSE (Lecture Notes in Computer Science), Vol. 7515. Springer, 121--135.
Mark Harman. 2007. Search Based Software Engineering for Program Comprehension. In ICPC. IEEE Computer Society, 3--13.
Miryung Kim, Thomas Zimmermann, Nachiappan Nagappan, Nachi Nagappan, and Tom Zimmermann. 2014. An Empirical Study of Refactoring Challenges and Benefits at Microsoft. IEEE Transactions on Software Engineering 40, 7 (July 2014). https: //www.microsoft.com/en-us/research/publication/an-empirical-study-of-refactoring-challenges- and-benefits-at-microsoft/
Günter Kniesel and Helge Koch. 2004. Static composition of refactorings. Sci. Comput. Program. 52, 1-3 (Aug. 2004), 9--51. https://doi.org/10.1016/j.scico. 2004.03.002
Marko Leppänen, Simo Mäkinen, Samuel Lahtinen, Outi Sievi-Korte, Antti-Pekka Tuovinen, and Tomi Männistö. 2015. Refactoring-a Shot in the Dark? IEEE Software 32, 6 (2015), 62--70. https://doi.org/10.1109/MS.2015.132
Andrian Marcus, Václav Rajlich, Joseph Buchta, Maksym Petrenko, and Andrey Sergeyev. 2005. Static Techniques for Concept Location in Object-Oriented Code. In IWPC. IEEE Computer Society, 33--42.
Kim Mens, Tom Mens, and Michel Wermelinger. 2002. Maintaining Software Through Intentional Source-code Views. In Proceedings of the 14th International Conference on Software Engineering and Knowledge Engineering (SEKE '02). ACM, New York, NY, USA, 289--296. https://doi.org/10.1145/568760.568812
Mel Ó Cinnéide, Laurence Tratt, Mark Harman, Steve Counsell, and Iman Hemati Moghadam. 2012. Experimental Assessment of Software Metrics Using Automated Refactoring. In Proceedings of the ACM-IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM '12). ACM, New York, NY, USA, 49--58. https://doi.org/10.1145/2372251.2372260
Xin Peng, Zhenchang Xing, Xi Tan, Yijun Yu, and Wenyun Zhao. 2013. Improving feature location using structural similarity and iterative graph mapping. Journal of Systems and Software 86, 3 (2013), 664--676.
Maksym Petrenko and Václav Rajlich. 2009. Variable granularity for improving precision of impact analysis. In The 17th IEEE International Conference on Program Comprehension, ICPC 2009, Vancouver, British Columbia, Canada, May 17-19, 2009. 10--19. https://doi.org/10.1109/ICPC.2009.5090023
Chris Simons, Jeremy Singer, and David Robert White. 2015. Search-Based Refactoring: Metrics Are Not Enough. In Search-Based Software Engineering -7th International Symposium, SSBSE 2015, Bergamo, Italy, September 5-7, 2015, Proceedings. 47--61. https://doi.org/10.1007/978-3-319-22183-0_4
Gustavo Villavicencio. 2014. Software Maintenance Like Maintenance in Other Engineering Disciplines. In Proceedings of the 22Nd ACM SIGSOFT International Symposium on Foundations of Software Engineering (FSE 2014). ACM, New York, NY, USA, 853--856. https://doi.org/10.1145/2635868.2666613
Andrew Walenstein. 2002. Theory-based Analysis of Cognitive Support in Software Comprehension Tools. In IWPC. IEEE Computer Society, 75--84.
Yinxing Xue, Zhenchang Xing, and Stan Jarzabek. 2012. Feature Location in a Collection of Product Variants. In WCRE. IEEE Computer Society, 145--154.