var bibbase_data = {"data":"\"Loading..\"\n\n
\n\n \n\n \n\n \n \n\n \n\n \n \n\n \n\n \n
\n generated by\n \n \"bibbase.org\"\n\n \n
\n \n\n
\n\n \n\n\n
\n\n Excellent! Next you can\n create a new website with this list, or\n embed it in an existing web page by copying & pasting\n any of the following snippets.\n\n
\n JavaScript\n (easiest)\n
\n \n <script src=\"https://bibbase.org/show?bib=https://moar82.github.io/myPapers/moralesBib.bib&jsonp=1&theme=mila&jsonp=1\"></script>\n \n
\n\n PHP\n
\n \n <?php\n $contents = file_get_contents(\"https://bibbase.org/show?bib=https://moar82.github.io/myPapers/moralesBib.bib&jsonp=1&theme=mila\");\n print_r($contents);\n ?>\n \n
\n\n iFrame\n (not recommended)\n
\n \n <iframe src=\"https://bibbase.org/show?bib=https://moar82.github.io/myPapers/moralesBib.bib&jsonp=1&theme=mila\"></iframe>\n \n
\n\n

\n For more details see the documention.\n

\n
\n
\n\n
\n\n This is a preview! To use this list on your own web site\n or create a new web site from it,\n create a free account. The file will be added\n and you will be able to edit it in the File Manager.\n We will show you instructions once you've created your account.\n
\n\n
\n\n

To the site owner:

\n\n

Action required! Mendeley is changing its\n API. In order to keep using Mendeley with BibBase past April\n 14th, you need to:\n

    \n
  1. renew the authorization for BibBase on Mendeley, and
  2. \n
  3. update the BibBase URL\n in your page the same way you did when you initially set up\n this page.\n
  4. \n
\n

\n\n

\n \n \n Fix it now\n

\n
\n\n
\n\n\n
\n \n \n
\n
\n  \n 2022\n \n \n (1)\n \n \n
\n
\n \n \n
\n \n\n \n \n \n \n \n Foreword to SERP4IoT 2022.\n \n \n \n\n\n \n \n\n\n \n\n\n\n In 2022 IEEE/ACM 4th International Workshop on Software Engineering Research and Practices for the IoT (SERP4IoT), pages vii-viii, 2022. \n \n\n\n\n
\n\n\n\n \n\n \n\n \n link\n  \n \n\n bibtex\n \n\n \n\n \n\n \n \n \n \n \n \n \n\n  \n \n \n\n\n\n
\n
\n
\n\n\n\n
\n\n\n\n\n\n
\n
\n\n
\n
\n  \n 2021\n \n \n (1)\n \n \n
\n
\n \n \n
\n \n\n \n \n \n \n \n \n SERP4IoT'21 Workshop Report.\n \n \n \n \n\n\n \n Guéhéneuc, Y.; Humayoun, S. R.; Morales, R.; and Saborido, R.\n\n\n \n\n\n\n SIGSOFT Softw. Eng. Notes, 46(4): 26–27. oct 2021.\n \n\n\n\n
\n\n\n\n \n \n \"SERP4IoT'21Paper\n  \n \n\n \n \n doi\n  \n \n\n \n link\n  \n \n\n bibtex\n \n\n \n  \n \n abstract \n \n\n \n  \n \n 8 downloads\n \n \n\n \n \n \n \n \n \n \n\n  \n \n \n\n\n\n
\n
@article{10.1145/3485952.3485959,\r\nauthor = {Gu\\'{e}h\\'{e}neuc, Yann-Ga\\"{e}l and Humayoun, Shah Rukh and Morales, Rodrigo and Saborido, Rub\\'{e}n},\r\ntitle = {SERP4IoT'21 Workshop Report},\r\nyear = {2021},\r\nissue_date = {October 2021},\r\npublisher = {Association for Computing Machinery},\r\naddress = {New York, NY, USA},\r\nvolume = {46},\r\nnumber = {4},\r\nissn = {0163-5948},\r\nurl = {https://doi.org/10.1145/3485952.3485959},\r\ndoi = {10.1145/3485952.3485959},\r\nabstract = {We face a new software crisis. In 1968, computer scientists learned that developing robust software requires skills, methods, and tools. Today, software and hardware engineers realize that developing a robust Internet of Things (IoT) also pushes the states of their art and practice. Recent news illustrate the many problems faced by IoT: from lack of interoperability to broken updates to massive security attacks. In this context, the 3rd International Workshop on Software Engineering Research and Practices for the Internet of Things (SERP4IoT) aims to provide a highly interactive forum for researchers and practitioners to address the challenges of, nd solutions for, and share experiences with the development, release, and testing of robust software for IoT systems.},\r\njournal = {SIGSOFT Softw. Eng. Notes},\r\nmonth = {oct},\r\npages = {26–27},\r\nnumpages = {2}\r\n}\r\n\r\n
\n
\n\n\n
\n We face a new software crisis. In 1968, computer scientists learned that developing robust software requires skills, methods, and tools. Today, software and hardware engineers realize that developing a robust Internet of Things (IoT) also pushes the states of their art and practice. Recent news illustrate the many problems faced by IoT: from lack of interoperability to broken updates to massive security attacks. In this context, the 3rd International Workshop on Software Engineering Research and Practices for the Internet of Things (SERP4IoT) aims to provide a highly interactive forum for researchers and practitioners to address the challenges of, nd solutions for, and share experiences with the development, release, and testing of robust software for IoT systems.\n
\n\n\n
\n\n\n\n\n\n
\n
\n\n
\n
\n  \n 2020\n \n \n (5)\n \n \n
\n
\n \n \n
\n \n\n \n \n \n \n \n Order in Chaos: Prioritizing Mobile App Reviews using Consensus Algorithms.\n \n \n \n\n\n \n Etaiwi, L.; Hamel, S.; Guéhéneuc, Y. -.; Flageol, W.; and Morales, R.\n\n\n \n\n\n\n In 2020 IEEE 44th Annual Computers, Software, and Applications Conference (COMPSAC), pages 912-920, July 2020. \n \n\n\n\n
\n\n\n\n \n\n \n \n doi\n  \n \n\n \n link\n  \n \n\n bibtex\n \n\n \n  \n \n abstract \n \n\n \n\n \n \n \n \n \n \n \n\n  \n \n \n \n \n \n \n \n \n \n \n \n \n\n\n\n
\n
@INPROCEEDINGS{9202613,\r\n  author={L. {Etaiwi} and S. {Hamel} and Y. -G. {Guéhéneuc} and W. {Flageol} and R. {Morales}},\r\n  booktitle={2020 IEEE 44th Annual Computers, Software, and Applications Conference (COMPSAC)}, \r\n  title={Order in Chaos: Prioritizing Mobile App Reviews using Consensus Algorithms}, \r\n  year={2020},\r\n  volume={},\r\n  number={},\r\n  pages={912-920},\r\n  abstract={The continuous growth of the mobile apps industry creates a competition among apps developers. To succeed, app developers must attract and retain users. User reviews provide a wealth of information about bugs to fix and features to add and can help app developers offer high-quality apps. However, apps may receive hundreds of unstructured reviews, which makes transforming them into change requests a difficult task. Approaches exist for analyzing and extracting topics from mobile app reviews, however, prioritizing these reviews has not gained much attention. In this study, we introduce the use of a consensus algorithm to help developers prioritize user reviews for the purpose of app evolution. We evaluate the usefulness of our approach and meaningfulness of its consensus rankings on four Android apps. We compare the rankings against reviews ranked by app developers manually and show that there is a strong correlation between the two (average Kendall rank correlation coefficient = 0.516). Thus, our approach can prioritize user reviews and help developers focus their time/effort on improving their apps instead of on identifying reviews to address in the next release.},\r\n  keywords={Android (operating system);feature extraction;mobile computing;smart phones;software engineering;text analysis;mobile app reviews;consensus algorithm;app developers;user reviews;app evolution;Android apps;app quality;topic extraction;topic analysis;Feature extraction;Computer bugs;Correlation;Google;Software;Androids;Humanoid robots;Consensus algorithms, Rankings, Review prioritization, User reviews, Software evolution},\r\n  doi={10.1109/COMPSAC48688.2020.0-151},\r\n  ISSN={0730-3157},\r\n  month={July},}\r\n\r\n\r\n\r\n
\n
\n\n\n
\n The continuous growth of the mobile apps industry creates a competition among apps developers. To succeed, app developers must attract and retain users. User reviews provide a wealth of information about bugs to fix and features to add and can help app developers offer high-quality apps. However, apps may receive hundreds of unstructured reviews, which makes transforming them into change requests a difficult task. Approaches exist for analyzing and extracting topics from mobile app reviews, however, prioritizing these reviews has not gained much attention. In this study, we introduce the use of a consensus algorithm to help developers prioritize user reviews for the purpose of app evolution. We evaluate the usefulness of our approach and meaningfulness of its consensus rankings on four Android apps. We compare the rankings against reviews ranked by app developers manually and show that there is a strong correlation between the two (average Kendall rank correlation coefficient = 0.516). Thus, our approach can prioritize user reviews and help developers focus their time/effort on improving their apps instead of on identifying reviews to address in the next release.\n
\n\n\n
\n\n\n
\n \n\n \n \n \n \n \n \n Guest Editorial Special Issue on Software Engineering Research and Practices for the Internet of Things.\n \n \n \n \n\n\n \n Morales, R.; Saborido, R.; Humayoun, S. R.; and Guéhéneuc, Y. -.\n\n\n \n\n\n\n IEEE Internet of Things Journal, 7(10): 10089-10090. 2020.\n \n\n\n\n
\n\n\n\n \n \n \"Guest paper\n  \n \n \n \"GuestPaper\n  \n \n\n \n \n doi\n  \n \n\n \n link\n  \n \n\n bibtex\n \n\n \n\n \n\n \n \n \n \n \n \n \n\n  \n \n \n\n\n\n
\n
@ARTICLE{9219255,  author={R. {Morales} and R. {Saborido} and S. R. {Humayoun} and Y. -G. {Guéhéneuc}},  journal={IEEE Internet of Things Journal},   title={Guest Editorial Special Issue on Software Engineering Research and Practices for the Internet of Things},   year={2020},  volume={7},  number={10},  pages={10089-10090},\r\ndoi={10.1109/JIOT.2020.3026565},\r\nurl_Paper = {https://moar82.github.io/preprint/jiot-morales-3026565-proof.pdf},\r\nurl={https://ieeexplore.ieee.org/document/9219255}\r\n,}\r\n\r\n
\n
\n\n\n\n
\n\n\n
\n \n\n \n \n \n \n \n SERP4IoT 2020 Organizing Committee.\n \n \n \n\n\n \n \n\n\n \n\n\n\n In Proceedings of the IEEE/ACM 42nd International Conference on Software Engineering Workshops, of ICSEW'20, New York, NY, USA, 2020. Association for Computing Machinery\n \n\n\n\n
\n\n\n\n \n\n \n \n doi\n  \n \n\n \n link\n  \n \n\n bibtex\n \n\n \n\n \n\n \n \n \n \n \n \n \n\n  \n \n \n\n\n\n
\n
\n
\n\n\n\n
\n\n\n
\n \n\n \n \n \n \n \n \n RePOR: Mimiking humans on refactoring tasks. Are we there yet?.\n \n \n \n \n\n\n \n Morales, R.; Khomh, F.; and Antoniol, G.\n\n\n \n\n\n\n Empirical Software Engineering, 25(4): 2960-2996. 2020.\n \n\n\n\n
\n\n\n\n \n \n \"RePOR: paper\n  \n \n \n \"RePOR:Paper\n  \n \n\n \n \n doi\n  \n \n\n \n link\n  \n \n\n bibtex\n \n\n \n  \n \n abstract \n \n\n \n\n \n \n \n \n \n \n \n\n  \n \n \n\n\n\n
\n
@Article{emse2020refturing,\r\nauthor="R. Morales and F. Khomh and G. Antoniol",\r\ntitle="RePOR: Mimiking humans on refactoring tasks. Are we there yet?",\r\njournal="Empirical Software Engineering",\r\nyear={2020},\r\nvolume={25}, \r\nnumber={4}, \r\npages={2960-2996}, \r\nabstract="Refactoring is a maintenance activity that aims to improve design quality while preserving the behavior of a system. Several (semi)automated approaches have been proposed to support developers in this maintenance activity, based on the correction of anti-patterns, which are “poor” solutions to recurring design problems. However, little quantitative evidence exists about the impact of automatically refactored code on program comprehension, and in which context automated refactoring can be as effective as manual refactoring. Leveraging RePOR, an automated refactoring approach based on partial order reduction techniques, we performed an empirical study to investigate whether automated refactoring code structure affects the understandability of systems during comprehension tasks. (1) We surveyed 80 developers, asking them to identify from a set of 20 refactoring changes if they were generated by developers or by a tool, and to rate the refactoring changes according to their design quality; (2) we asked 30 developers to complete code comprehension tasks on 10 systems that were refactored by either a freelancer or an automated refactoring tool. To make comparison fair, for a subset of refactoring actions that introduce new code entities, only synthetic identifiers were presented to practitioners. We measured developers’ performance using the NASA task load index for their effort, the time that they spent performing the tasks, and their percentages of correct answers. Our findings, despite current technology limitations, show that it is reasonable to expect refactoring tools to match developer code. Indeed, results show that for 3 out of the 5 anti-pattern types studied, developers could not recognize the origin of the refactoring (i.e., whether it was performed by a human or an automatic tool). We also observed that developers do not prefer human refactorings over automated refactorings, except when refactoring Blob classes; and that there is no statistically significant difference between the impact on code understandability of human refactorings and automated refactorings. We conclude that automated refactorings can be as effective as manual refactorings. However, for complex anti-patterns types like the Blob, the perceived quality achieved by developers is slightly higher",\r\nissn={1573-7616},\r\ndoi={10.1007/s10664-020-09826-7},\r\nurl_Paper = {https://moar82.github.io/preprint/refturing-EMSE-D-19-00094R1.pdf},\r\nurl={-},}\r\n\r\n\r\n\r\n\r\n
\n
\n\n\n
\n Refactoring is a maintenance activity that aims to improve design quality while preserving the behavior of a system. Several (semi)automated approaches have been proposed to support developers in this maintenance activity, based on the correction of anti-patterns, which are “poor” solutions to recurring design problems. However, little quantitative evidence exists about the impact of automatically refactored code on program comprehension, and in which context automated refactoring can be as effective as manual refactoring. Leveraging RePOR, an automated refactoring approach based on partial order reduction techniques, we performed an empirical study to investigate whether automated refactoring code structure affects the understandability of systems during comprehension tasks. (1) We surveyed 80 developers, asking them to identify from a set of 20 refactoring changes if they were generated by developers or by a tool, and to rate the refactoring changes according to their design quality; (2) we asked 30 developers to complete code comprehension tasks on 10 systems that were refactored by either a freelancer or an automated refactoring tool. To make comparison fair, for a subset of refactoring actions that introduce new code entities, only synthetic identifiers were presented to practitioners. We measured developers’ performance using the NASA task load index for their effort, the time that they spent performing the tasks, and their percentages of correct answers. Our findings, despite current technology limitations, show that it is reasonable to expect refactoring tools to match developer code. Indeed, results show that for 3 out of the 5 anti-pattern types studied, developers could not recognize the origin of the refactoring (i.e., whether it was performed by a human or an automatic tool). We also observed that developers do not prefer human refactorings over automated refactorings, except when refactoring Blob classes; and that there is no statistically significant difference between the impact on code understandability of human refactorings and automated refactorings. We conclude that automated refactorings can be as effective as manual refactorings. However, for complex anti-patterns types like the Blob, the perceived quality achieved by developers is slightly higher\n
\n\n\n
\n\n\n
\n \n\n \n \n \n \n \n \n MoMIT: Porting a JavaScript Interpreter on a Quarter Coin.\n \n \n \n \n\n\n \n Morales, R.; Saborido, R.; and Guéhéneuc, Y.\n\n\n \n\n\n\n IEEE Transactions on Software Engineering. 2020.\n \n\n\n\n
\n\n\n\n \n \n \"MoMIT: paper\n  \n \n \n \"MoMIT:Paper\n  \n \n\n \n \n doi\n  \n \n\n \n link\n  \n \n\n bibtex\n \n\n \n\n \n  \n \n 6 downloads\n \n \n\n \n \n \n \n \n \n \n\n  \n \n \n \n \n\n\n\n
\n
@ARTICLE{8966499momit,\r\nauthor={R. {Morales} and R. {Saborido} and Y. {Gu{\\'e}h{\\'e}neuc}},\r\njournal={IEEE Transactions on Software Engineering}, \r\ntitle={MoMIT: Porting a JavaScript Interpreter on a Quarter Coin}, \r\nyear={2020}, \r\nvolume={}, \r\nnumber={}, \r\npages={}, \r\nkeywords={Internet of Things;Software Miniaturization;Multiobjective optimization;embedded devices;JavaScript;Evolutionary algorithms}, \r\ndoi={10.1109/TSE.2020.2968061}, \r\nISSN={0098-5589}, \r\nurl_Paper = {MoMIT__Porting_a_JavaScript_Interpreter_on_a_Quarter_Coin.pdf},\r\nmonth={},\r\nurl ={https://doi.org/10.1109/TSE.2020.2968061},}\r\n\r\n\r\n\r\n
\n
\n\n\n\n
\n\n\n\n\n\n
\n
\n\n
\n
\n  \n 2019\n \n \n (1)\n \n \n
\n
\n \n \n
\n \n\n \n \n \n \n \n SERP4IoT 2019 Organizing Committee.\n \n \n \n\n\n \n Dig, D.; Morales, R.; Saborido, R.; Humayoun, S.; Dubinsky, Y.; and Guéhéneuc, Y.\n\n\n \n\n\n\n In 2019 IEEE/ACM 1st International Workshop on Software Engineering Research Practices for the Internet of Things (SERP4IoT), pages 9-9, May 2019. \n \n\n\n\n
\n\n\n\n \n\n \n \n doi\n  \n \n\n \n link\n  \n \n\n bibtex\n \n\n \n\n \n\n \n \n \n \n \n \n \n\n  \n \n \n\n\n\n
\n
@INPROCEEDINGS{8900776,\r\nauthor={D. {Dig} and R. {Morales} and R. {Saborido} and S. {Humayoun} and Y. {Dubinsky} and Y. {Gu{\\'e}h{\\'e}neuc}},\r\nbooktitle={2019 IEEE/ACM 1st International Workshop on Software Engineering Research Practices for the Internet of Things (SERP4IoT)},\r\ntitle={SERP4IoT 2019 Organizing Committee},\r\nyear={2019},\r\nvolume={},\r\nnumber={},\r\npages={9-9},\r\nkeywords={},\r\ndoi={10.1109/SERP4IoT.2019.00006},\r\nISSN={null},\r\nmonth={May},}\r\n\r\n
\n
\n\n\n\n
\n\n\n\n\n\n
\n
\n\n
\n
\n  \n 2018\n \n \n (4)\n \n \n
\n
\n \n \n
\n \n\n \n \n \n \n \n EARMO: An Energy-Aware Refactoring Approach for Mobile Apps.\n \n \n \n\n\n \n Morales, R.; Khomh, R. S. F.; Chicano, F.; and Antoniol, G.\n\n\n \n\n\n\n In 2018 IEEE/ACM 40th International Conference on Software Engineering (ICSE), pages 59-59, May 2018. \n \n\n\n\n
\n\n\n\n \n\n \n \n doi\n  \n \n\n \n link\n  \n \n\n bibtex\n \n\n \n  \n \n abstract \n \n\n \n\n \n \n \n \n \n \n \n\n  \n \n \n \n \n\n\n\n
\n
@INPROCEEDINGS{8453062,\r\nauthor={R. {Morales} and R. {Saborido} F. {Khomh} and F. {Chicano} and G. {Antoniol}},\r\nbooktitle={2018 IEEE/ACM 40th International Conference on Software Engineering (ICSE)},\r\ntitle={EARMO: An Energy-Aware Refactoring Approach for Mobile Apps},\r\nyear={2018},\r\nvolume={},\r\nnumber={},\r\npages={59-59},\r\nabstract={With millions of smartphones sold every year, the development of mobile apps has grown substantially. The battery power limitation of mobile devices has push developers and researchers to search for methods to improve the energy efficiency of mobile apps. We propose a multiobjective refactoring approach to automatically improve the architecture of mobile apps, while controlling for energy efficiency. In this extended abstract we briefly summarize our work.},\r\nkeywords={Energy efficiency;Software engineering;Batteries;Energy measurement;Mobile handsets;Energy consumption;Software;Refactoring;Anti-patterns;Mobile apps;Energy consumption},\r\ndoi={10.1145/3180155.3182524},\r\nISSN={1558-1225},\r\nmonth={May},}\r\n\r\n\r\n
\n
\n\n\n
\n With millions of smartphones sold every year, the development of mobile apps has grown substantially. The battery power limitation of mobile devices has push developers and researchers to search for methods to improve the energy efficiency of mobile apps. We propose a multiobjective refactoring approach to automatically improve the architecture of mobile apps, while controlling for energy efficiency. In this extended abstract we briefly summarize our work.\n
\n\n\n
\n\n\n
\n \n\n \n \n \n \n \n \n Efficient Refactoring Scheduling based on Partial order Reduction .\n \n \n \n \n\n\n \n Morales, R.; Chicano, F.; Khomh, F.; and Antoniol, G.\n\n\n \n\n\n\n Journal of Systems and Software , 145: 25-51. 2018.\n \n\n\n\n
\n\n\n\n \n \n \"Efficient paper\n  \n \n \n \"EfficientPaper\n  \n \n\n \n \n doi\n  \n \n\n \n link\n  \n \n\n bibtex\n \n\n \n  \n \n abstract \n \n\n \n  \n \n 1 download\n \n \n\n \n \n \n \n \n \n \n\n  \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n\n\n
\n
@article{Morales2018symred,\r\ntitle = "Efficient Refactoring Scheduling based on Partial order Reduction ",\r\nauthor = "Rodrigo Morales and Francisco Chicano  and Foutse Khomh and Giuliano Antoniol",\r\njournal = "Journal of Systems and Software ",\r\nvolume = "145",\r\nnumber = "",\r\npages = "25-51",\r\nyear = "2018",\r\nnote = "",\r\nissn = "0164-1212",\r\nabstract = {Anti-patterns are poor solutions to design problems that make software systems hard to understand and to extend. Components involved in anti-patterns are reported to be consistently related to high changes and faults rates. Developers are advised to perform refactoring to remove anti-patterns, and consequently improve software design quality and reliability. However, since the number of anti-patterns in a system can be very large, the process of manual refactoring can be overwhelming. To assist a software engineer who has to perform this task, we propose a novel approach RePOR (Refactoring approach based on Partial Order Reduction). We perform a case study with five open source systems to assess the performance of RePOR against two well-known metaheuristics (Genetic Algorithm, and Ant Colony Optimization), one conflict-aware refactoring approach and, a new approach based on sampling (Sway). Results show that RePOR can correct a median of 73% of anti-patterns (10% more than existing approaches) with a significant reduction in effort (measured by the number of refactorings applied) ranging from 69% to 85%, and a reduction of execution time ranging between 50% and 87%, in comparison to existing approaches.},\r\nkeywords = {Software Refactoring, Refactoring Schedule, Anti-patterns, Design Quality, Ant Colony Optimization, Genetic Algorithm},\r\ndoi = "https://doi.org/10.1016/j.jss.2018.07.076",\r\nurl_Paper = {Morales-JSS-symred.pdf},\r\nurl ={https://doi.org/10.1016/j.jss.2018.07.076} }\r\n\r\n\r\n
\n
\n\n\n
\n Anti-patterns are poor solutions to design problems that make software systems hard to understand and to extend. Components involved in anti-patterns are reported to be consistently related to high changes and faults rates. Developers are advised to perform refactoring to remove anti-patterns, and consequently improve software design quality and reliability. However, since the number of anti-patterns in a system can be very large, the process of manual refactoring can be overwhelming. To assist a software engineer who has to perform this task, we propose a novel approach RePOR (Refactoring approach based on Partial Order Reduction). We perform a case study with five open source systems to assess the performance of RePOR against two well-known metaheuristics (Genetic Algorithm, and Ant Colony Optimization), one conflict-aware refactoring approach and, a new approach based on sampling (Sway). Results show that RePOR can correct a median of 73% of anti-patterns (10% more than existing approaches) with a significant reduction in effort (measured by the number of refactorings applied) ranging from 69% to 85%, and a reduction of execution time ranging between 50% and 87%, in comparison to existing approaches.\n
\n\n\n
\n\n\n
\n \n\n \n \n \n \n \n \n Getting the most from map data structures in Android.\n \n \n \n \n\n\n \n Saborido, R.; Morales, R.; Khomh, F.; Guéhéneuc, Y.; and Antoniol, G.\n\n\n \n\n\n\n Empirical Software Engineering, 23(5): 2829-2864. 2018.\n \n\n\n\n
\n\n\n\n \n \n \"Getting paper\n  \n \n \n \"GettingPaper\n  \n \n\n \n \n doi\n  \n \n\n \n link\n  \n \n\n bibtex\n \n\n \n  \n \n abstract \n \n\n \n\n \n \n \n \n \n \n \n\n  \n \n \n\n\n\n
\n
@Article{Saborido2018,\r\nauthor="Saborido, Rub{\\'e}n\r\nand Morales, Rodrigo\r\nand Khomh, Foutse\r\nand Gu{\\'e}h{\\'e}neuc, Yann-Ga{\\"e}l\r\nand Antoniol, Giuliano",\r\ntitle="Getting the most from map data structures in Android",\r\njournal="Empirical Software Engineering",\r\nyear="2018",\r\nvolume={23}, \r\nnumber={5}, \r\npages={2829-2864}, \r\nabstract="A map is a data structure that is commonly used to store data as key--value pairs and retrieve data as keys, values, or key--value pairs. Although Java offers different map implementation classes, Android SDK offers other implementations supposed to be more efficient than HashMap: ArrayMap and SparseArray variants (SparseArray, LongSparseArray, SparseIntArray, SparseLongArray, and SparseBooleanArray). Yet, the performance of these implementations in terms of CPU time, memory usage, and energy consumption is lacking in the official Android documentation; although saving CPU, memory, and energy is a major concern of users wanting to increase battery life. Consequently, we study the use of map implementations by Android developers in two ways. First, we perform an observational study of 5713 Android apps in GitHub. Second, we conduct a survey to assess developers' perspective on Java and Android map implementations. Then, we perform an experimental study comparing HashMap, ArrayMap, and SparseArray variants map implementations in terms of CPU time, memory usage, and energy consumption. We conclude with guidelines for choosing among the map implementations: HashMap is preferable over ArrayMap to improve energy efficiency of apps, and SparseArray variants should be used instead of HashMap and ArrayMap when keys are primitive types.",\r\nissn={1573-7616},\r\ndoi={"10.1007/s10664-018-9607-8},\r\nurl_Paper = {map-data-structures.pdf},\r\nurl={https://doi.org/10.1007/s10664-018-9607-8}\r\n}\r\n\r\n
\n
\n\n\n
\n A map is a data structure that is commonly used to store data as key–value pairs and retrieve data as keys, values, or key–value pairs. Although Java offers different map implementation classes, Android SDK offers other implementations supposed to be more efficient than HashMap: ArrayMap and SparseArray variants (SparseArray, LongSparseArray, SparseIntArray, SparseLongArray, and SparseBooleanArray). Yet, the performance of these implementations in terms of CPU time, memory usage, and energy consumption is lacking in the official Android documentation; although saving CPU, memory, and energy is a major concern of users wanting to increase battery life. Consequently, we study the use of map implementations by Android developers in two ways. First, we perform an observational study of 5713 Android apps in GitHub. Second, we conduct a survey to assess developers' perspective on Java and Android map implementations. Then, we perform an experimental study comparing HashMap, ArrayMap, and SparseArray variants map implementations in terms of CPU time, memory usage, and energy consumption. We conclude with guidelines for choosing among the map implementations: HashMap is preferable over ArrayMap to improve energy efficiency of apps, and SparseArray variants should be used instead of HashMap and ArrayMap when keys are primitive types.\n
\n\n\n
\n\n\n
\n \n\n \n \n \n \n \n \n Exact search-space size for the refactoring scheduling problem.\n \n \n \n \n\n\n \n Morales, R.; Chicano, F.; Khomh, F.; and Antoniol, G.\n\n\n \n\n\n\n Automated Software Engineering, 25(2): 195–200. 2018.\n \n\n\n\n
\n\n\n\n \n \n \"Exact paper\n  \n \n \n \"ExactPaper\n  \n \n\n \n \n doi\n  \n \n\n \n link\n  \n \n\n bibtex\n \n\n \n  \n \n abstract \n \n\n \n\n \n \n \n \n \n \n \n\n  \n \n \n\n\n\n
\n
@Article{Morales2017,\r\nauthor="Morales, Rodrigo\r\nand Chicano, Francisco\r\nand Khomh, Foutse\r\nand Antoniol, Giuliano",\r\ntitle="Exact search-space size for the refactoring scheduling problem",\r\njournal="Automated Software Engineering",\r\nyear="2018",\r\nabstract="Ouni et al. ``Maintainability defects detection and correction: a multi-objective approach'' proposed a search-based approach for generating optimal refactoring sequences. They estimated the size of the search space for the refactoring scheduling problem using a formulation that is incorrect; the search space is estimated to be too much larger than it is. We provide in this paper the exact expression for computing the number of possible refactoring sequences of a software system. This could be useful for researchers and practitioners interested in developing new approaches to automate refactoring.",\r\nissn="0928-8910",\r\npages = {195--200}, \r\nnumber = {2}, \r\nvolume = {25}, \r\ndoi="10.1007/s10515-017-0213-6",\r\nurl_Paper =    {http://rdcu.be/paOV},\r\nurl="https://doi.org/10.1007/s10515-017-0213-6"\r\n}\r\n\r\n
\n
\n\n\n
\n Ouni et al. ``Maintainability defects detection and correction: a multi-objective approach'' proposed a search-based approach for generating optimal refactoring sequences. They estimated the size of the search space for the refactoring scheduling problem using a formulation that is incorrect; the search space is estimated to be too much larger than it is. We provide in this paper the exact expression for computing the number of possible refactoring sequences of a software system. This could be useful for researchers and practitioners interested in developing new approaches to automate refactoring.\n
\n\n\n
\n\n\n\n\n\n
\n
\n\n
\n
\n  \n 2017\n \n \n (3)\n \n \n
\n
\n \n \n
\n \n\n \n \n \n \n \n \n Automated Improvement of Software Design by Search-Based Refactoring.\n \n \n \n \n\n\n \n Morales, R.\n\n\n \n\n\n\n Ph.D. Thesis, Ecole Polytechnique de Montreal, 2017.\n Received Best thesis award 2017 from DGIGL at Polytechnique\n\n\n\n
\n\n\n\n \n \n \"Automated paper\n  \n \n \n \"AutomatedPaper\n  \n \n\n \n\n \n link\n  \n \n\n bibtex\n \n\n \n\n \n  \n \n 4 downloads\n \n \n\n \n \n \n \n \n \n \n\n  \n \n \n\n\n\n
\n
@phdthesis{Morales2017Phd,\r\n    title    = {Automated Improvement of Software Design by Search-Based Refactoring},\r\n    school   = {Ecole Polytechnique de Montreal},\r\n    author   = {Morales, Rodrigo},\r\n    year     = {2017}, \r\n    url_Paper = {RMorales_thesis.pdf},\r\n    url={https://publications.polymtl.ca/2878/},\r\n    note     = {Received Best thesis award 2017 from DGIGL at Polytechnique},\r\n}\r\n\r\n
\n
\n\n\n\n
\n\n\n
\n \n\n \n \n \n \n \n \n EARMO: An Energy-Aware Refactoring Approach for Mobile Apps.\n \n \n \n \n\n\n \n Morales, R.; Saborido, R.; Khomh, F.; Chicano, F.; and Antoniol, G.\n\n\n \n\n\n\n IEEE Transactions on Software Engineering, 44(12): 1176-1206. 12 2017.\n \n\n\n\n
\n\n\n\n \n \n \"EARMO: paper\n  \n \n\n \n \n doi\n  \n \n\n \n link\n  \n \n\n bibtex\n \n\n \n\n \n  \n \n 1 download\n \n \n\n \n \n \n \n \n \n \n\n  \n \n \n \n \n\n\n\n
\n
@ARTICLE{8052533EARMO, \r\nauthor={R. Morales and R. Saborido and F. Khomh and F. Chicano and G. Antoniol}, \r\njournal={IEEE Transactions on Software Engineering}, \r\ntitle={EARMO: An Energy-Aware Refactoring Approach for Mobile Apps}, \r\nyear={2017}, \r\nvolume={44}, \r\nnumber={12}, \r\npages={1176-1206}, \r\nkeywords={Anti-patterns;Energy consumption;Mobile apps;Refactoring;Search-based Software Engineering;Software maintenance}, \r\ndoi={10.1109/TSE.2017.2757486}, \r\nISSN={0098-5589}, \r\nurl_Paper =    {http://swat.polymtl.ca/~foutsekh/docs/EARMO-TSE.pdf},\r\nmonth={12},}\r\n\r\n
\n
\n\n\n\n
\n\n\n
\n \n\n \n \n \n \n \n \n On the use of developers’ context for automatic refactoring of software anti-patterns .\n \n \n \n \n\n\n \n Morales, R.; Soh, Z.; Khomh, F.; Antoniol, G.; and Chicano, F.\n\n\n \n\n\n\n Journal of Systems and Software , 128: 236 - 251. 2017.\n \n\n\n\n
\n\n\n\n \n \n \"On paper\n  \n \n \n \"OnPaper\n  \n \n\n \n \n doi\n  \n \n\n \n link\n  \n \n\n bibtex\n \n\n \n  \n \n abstract \n \n\n \n  \n \n 1 download\n \n \n\n \n \n \n \n \n \n \n\n  \n \n \n \n \n\n\n\n
\n
@article{Morales2017236,\r\ntitle = "On the use of developers’ context for automatic refactoring of software anti-patterns ",\r\njournal = "Journal of Systems and Software ",\r\nvolume = "128",\r\nnumber = "",\r\npages = "236 - 251",\r\nyear = "2017",\r\nnote = "",\r\nissn = "0164-1212",\r\ndoi = "https://doi.org/10.1016/j.jss.2016.05.042",\r\nurl_Paper = {http://swat.polymtl.ca/~foutsekh/docs/Morales-JSS.pdf},\r\nurl = "http://www.sciencedirect.com/science/article/pii/S0164121216300632",\r\nauthor = "Rodrigo Morales and Zéphyrin Soh and Foutse Khomh and Giuliano Antoniol and Francisco Chicano",\r\nkeywords = "Software maintenance",\r\nkeywords = "Automatic refactoring",\r\nkeywords = "Task context",\r\nkeywords = "Interaction traces",\r\nkeywords = "Anti-patterns",\r\nkeywords = "Metaheuristics ",\r\nabstract = "Abstract Anti-patterns are poor solutions to design problems that make software systems hard to understand and extend. Entities involved in anti-patterns are reported to be consistently related to high change and fault rates. Refactorings, which are behavior preserving changes are often performed to remove anti-patterns from software systems. Developers are advised to interleave refactoring activities with their regular coding tasks to remove anti-patterns, and consequently improve software design quality. However, because the number of anti-patterns in a software system can be very large, and their interactions can require a solution in a set of conflicting objectives, the process of manual refactoring can be overwhelming. To automate this process, previous works have modeled anti-patterns refactoring as a batch process where a program provides a solution for the total number of classes in a system, and the developer has to examine a long list of refactorings, which is not feasible in most situations. Moreover, these proposed solutions often require that developers modify classes on which they never worked before (i.e., classes on which they have little or no knowledge). To improve on these limitations, this paper proposes an automated refactoring approach, ReCon (Refactoring approach based on task Context), that leverages information about a developer’s task (i.e., the list of code entities relevant to the developer’s task) and metaheuristics techniques to compute the best sequence of refactorings that affects only entities in the developer’s context. We mine 1705 task contexts (collected using the Eclipse plug-in Mylyn) and 1013 code snapshots from three open-source software projects (Mylyn, PDE, Eclipse Platform) to assess the performance of our proposed approach. Results show that ReCon can remove more than 50% of anti-patterns in a software system, using fewer resources than the traditional approaches from the literature. "\r\n}\r\n\r\n\r\n\r\n
\n
\n\n\n
\n Abstract Anti-patterns are poor solutions to design problems that make software systems hard to understand and extend. Entities involved in anti-patterns are reported to be consistently related to high change and fault rates. Refactorings, which are behavior preserving changes are often performed to remove anti-patterns from software systems. Developers are advised to interleave refactoring activities with their regular coding tasks to remove anti-patterns, and consequently improve software design quality. However, because the number of anti-patterns in a software system can be very large, and their interactions can require a solution in a set of conflicting objectives, the process of manual refactoring can be overwhelming. To automate this process, previous works have modeled anti-patterns refactoring as a batch process where a program provides a solution for the total number of classes in a system, and the developer has to examine a long list of refactorings, which is not feasible in most situations. Moreover, these proposed solutions often require that developers modify classes on which they never worked before (i.e., classes on which they have little or no knowledge). To improve on these limitations, this paper proposes an automated refactoring approach, ReCon (Refactoring approach based on task Context), that leverages information about a developer’s task (i.e., the list of code entities relevant to the developer’s task) and metaheuristics techniques to compute the best sequence of refactorings that affects only entities in the developer’s context. We mine 1705 task contexts (collected using the Eclipse plug-in Mylyn) and 1013 code snapshots from three open-source software projects (Mylyn, PDE, Eclipse Platform) to assess the performance of our proposed approach. Results show that ReCon can remove more than 50% of anti-patterns in a software system, using fewer resources than the traditional approaches from the literature. \n
\n\n\n
\n\n\n\n\n\n
\n
\n\n
\n
\n  \n 2016\n \n \n (1)\n \n \n
\n
\n \n \n
\n \n\n \n \n \n \n \n \n Finding the Best Compromise Between Design Quality and Testing Effort During Refactoring.\n \n \n \n \n\n\n \n Morales, R.; Sabane, A.; Musavi, P.; Khomh, F.; Chicano, F.; and Antoniol, G.\n\n\n \n\n\n\n In 2016 IEEE 23rd International Conference on Software Analysis, Evolution, and Reengineering (SANER), volume 1, pages 24-35, 2016. \n \n\n\n\n
\n\n\n\n \n \n \"Finding paper\n  \n \n\n \n \n doi\n  \n \n\n \n link\n  \n \n\n bibtex\n \n\n \n\n \n\n \n \n \n \n \n \n \n\n  \n \n \n \n \n\n\n\n
\n
@inproceedings{Morales2016SanerTesting,\r\n   author = {Morales, Rodrigo and Sabane, Aminata and Musavi, Pooya and Khomh, Foutse and Chicano, Francisco. and Antoniol, Giuliano.},\r\n   title = {Finding the Best Compromise Between Design Quality and Testing Effort During Refactoring},\r\n   booktitle = {2016 IEEE 23rd International Conference on Software Analysis, Evolution, and Reengineering (SANER)},\r\n   volume = {1},\r\n\t year={2016},\r\n   pages = {24-35},\r\n   keywords = {genetic algorithms\r\nprogram testing\r\nsearch problems\r\nsoftware maintenance\r\nsoftware quality\r\nMOCell\r\nNSGA-II\r\nSPEA2\r\ndesign quality\r\nmanual refactoring\r\nnovel search-based multiobjective approach\r\nopen-source systems\r\nsemantic-preserving-code transformations\r\nsingle anti-patterns correction\r\nsoftware development\r\ntesting effort\r\nAnti-patterns\r\nRefactoring\r\nSearch-based software engineering},\r\n   DOI = {10.1109/SANER.2016.23},\r\n   url_Paper ={http://swat.polymtl.ca/rmorales/preprint/Morales-saner16.pdf},\r\n   type = {Conference Proceedings}\r\n   \r\n}\r\n\r\n
\n
\n\n\n\n
\n\n\n\n\n\n
\n
\n\n
\n
\n  \n 2015\n \n \n (2)\n \n \n
\n
\n \n \n
\n \n\n \n \n \n \n \n \n Do code review practices impact design quality? A case study of the Qt, VTK, and ITK projects.\n \n \n \n \n\n\n \n Morales, R.; McIntosh, S.; and Khomh, F.\n\n\n \n\n\n\n In 2015 IEEE 22nd International Conference on Software Analysis, Evolution, and Reengineering (SANER), pages 171-180, March 2015. \n \n\n\n\n
\n\n\n\n \n \n \"Do paper\n  \n \n\n \n \n doi\n  \n \n\n \n link\n  \n \n\n bibtex\n \n\n \n\n \n\n \n \n \n \n \n \n \n\n  \n \n \n \n \n\n\n\n
\n
@INPROCEEDINGS{7081827, \r\nauthor={R. Morales and S. McIntosh and F. Khomh}, \r\nbooktitle={2015 IEEE 22nd International Conference on Software Analysis, Evolution, and Reengineering (SANER)}, \r\ntitle={Do code review practices impact design quality? A case study of the Qt, VTK, and ITK projects}, \r\nyear={2015}, \r\nvolume={}, \r\nnumber={}, \r\npages={171-180}, \r\nkeywords={object-oriented programming;software quality;ITK project;Qt project;VTK project;code review practice;modern code review;open source project;post-release bugs;software components;software design quality;software release quality;software system;Analytical models;Complexity theory;Correlation;Measurement;Software design;Software systems}, \r\ndoi={10.1109/SANER.2015.7081827}, \r\nurl_Paper={http://swat.polymtl.ca/data/SANER15/Morales-saner15.pdf},\r\nISSN={1534-5351}, \r\nmonth={March},}\r\n\r\n
\n
\n\n\n\n
\n\n\n
\n \n\n \n \n \n \n \n \n Towards a framework for automatic correction of anti-patterns.\n \n \n \n \n\n\n \n Morales, R.\n\n\n \n\n\n\n In 2015 IEEE 22nd International Conference on Software Analysis, Evolution, and Reengineering (SANER), pages 603-604, March 2015. \n \n\n\n\n
\n\n\n\n \n \n \"Towards paper\n  \n \n\n \n \n doi\n  \n \n\n \n link\n  \n \n\n bibtex\n \n\n \n\n \n\n \n \n \n \n \n \n \n\n  \n \n \n \n \n\n\n\n
\n
@INPROCEEDINGS{7081891, \r\nauthor={R. Morales}, \r\nbooktitle={2015 IEEE 22nd International Conference on Software Analysis, Evolution, and Reengineering (SANER)}, \r\ntitle={Towards a framework for automatic correction of anti-patterns}, \r\nyear={2015}, \r\nvolume={}, \r\nnumber={}, \r\npages={603-604}, \r\nkeywords={software maintenance;software quality;antipattern detection;automated refactoring;automatic antipattern correction;automatic antipattern removal;metaheuristics;software design quality;software evolution;software maintenance;Correlation;Measurement;Software engineering;Software maintenance;Software systems;Space exploration}, \r\ndoi={10.1109/SANER.2015.7081891}, \r\nurl_Paper ={http://swat.polymtl.ca/rmorales/preprint/phdSaner.pdf},\r\nISSN={1534-5351}, \r\nmonth={March},}\r\n\r\n
\n
\n\n\n\n
\n\n\n\n\n\n
\n
\n\n
\n
\n  \n 2008\n \n \n (1)\n \n \n
\n
\n \n \n
\n \n\n \n \n \n \n \n \n Programación de guantes de datos y ambientes virtuales.\n \n \n \n \n\n\n \n Morales, R.\n\n\n \n\n\n\n Boletin electronico UPIITA, 13: -2. 09 2008.\n \n\n\n\n
\n\n\n\n \n \n \"Programación paper\n  \n \n\n \n\n \n link\n  \n \n\n bibtex\n \n\n \n\n \n\n \n \n \n \n \n \n \n\n  \n \n \n\n\n\n
\n
@article{moralesupiita2005,\r\nauthor = {Morales, Rodrigo},\r\nyear = {2008},\r\nmonth = {09},\r\npages = {-2},\r\ntitle = {Programación de guantes de datos y ambientes virtuales},\r\nvolume = {13},\r\njournal = {Boletin electronico UPIITA},\r\ndoi = {},\r\nurl_Paper = {https://moar82.github.io/myPapers/constanciaUPiita.jpg},\r\n}\r\n\r\n\r\n\r\n\r\n
\n
\n\n\n\n
\n\n\n\n\n\n
\n
\n\n
\n
\n  \n 2007\n \n \n (1)\n \n \n
\n
\n \n \n
\n \n\n \n \n \n \n \n \n Interfaz Para El Aprendizaje De La Realidad Virtual Haciendo Uso De Un Guante De Datos.\n \n \n \n \n\n\n \n Morales, R.\n\n\n \n\n\n\n Master's thesis, CIDETEC Instituto Politecnico Nacional, Mexico, 2007.\n -\n\n\n\n
\n\n\n\n \n \n \"Interfaz paper\n  \n \n \n \"InterfazPaper\n  \n \n\n \n\n \n link\n  \n \n\n bibtex\n \n\n \n\n \n\n \n \n \n \n \n \n \n\n  \n \n \n\n\n\n
\n
@MastersThesis{Morales2007Msc,\r\n    title    = {Interfaz Para El Aprendizaje De La Realidad Virtual Haciendo Uso De Un Guante De Datos},\r\n    school   = {CIDETEC Instituto Politecnico Nacional,  Mexico},\r\n    author   = {Morales, Rodrigo},\r\n    year     = {2007}, \r\n    url_Paper = {https://moar82.github.io/myPapers/master_tesis _morales.pdf},\r\n    url={-},\r\n    note     = {-},\r\n}\r\n\r\n
\n
\n\n\n\n
\n\n\n\n\n\n
\n
\n\n
\n
\n  \n 2005\n \n \n (1)\n \n \n
\n
\n \n \n
\n \n\n \n \n \n \n \n \n Programación de Sistemas de Cómputo Móviles.\n \n \n \n \n\n\n \n Herrera Lozada, J.; Zarate, I.; and Morales, R.\n\n\n \n\n\n\n Polibits, 31: 23-29. 01 2005.\n \n\n\n\n
\n\n\n\n \n \n \"Programación paper\n  \n \n\n \n \n doi\n  \n \n\n \n link\n  \n \n\n bibtex\n \n\n \n\n \n\n \n \n \n \n \n \n \n\n  \n \n \n\n\n\n
\n
@article{lozada2005,\r\nauthor = {Herrera Lozada, Juan and Zarate, Israel and Morales, Rodrigo},\r\nyear = {2005},\r\nmonth = {01},\r\npages = {23-29},\r\ntitle = {Programación de Sistemas de Cómputo Móviles},\r\nvolume = {31},\r\njournal = {Polibits},\r\ndoi = {10.17562/PB-31-4},\r\nurl_Paper = {https://moar82.github.io/myPapers/polibits.jpg},\r\n}\r\n\r\n
\n
\n\n\n\n
\n\n\n\n\n\n
\n
\n\n\n\n\n
\n\n\n \n\n \n \n \n \n\n
\n"}; document.write(bibbase_data.data);