Modifiable Source Code Virtual Views

  • Gustavo Villavicencio

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

Mohammad Alshayeb. 2009. Empirical Investigation of Refactoring Effect on Software Quality. Inf. Softw. Technol. 51, 9 (Sept. 2009), 1319--1326. https: //doi.org/10.1016/j.infsof.2009.04.002

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.
Publicado
21/01/2020
VILLAVICENCIO, Gustavo. Modifiable Source Code Virtual Views. In: INSIGHTFUL IDEAS AND EMERGING RESULTS - SIMPÓSIO BRASILEIRO DE ENGENHARIA DE SOFTWARE (SBES), 33. , 2019, Salvador. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2020 .