Detalhes
Nome
Sara Filipa FernandesCargo
Estudante ExternoDesde
01 outubro 2018
Nacionalidade
PortugalCentro
Computação Centrada no Humano e Ciência da InformaçãoContactos
+351222094000
sara.f.fernandes@inesctec.pt
2022
Autores
Fernandes, S; Aguiar, A; Restivo, A;
Publicação
PROCEEDINGS OF THE 37TH IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING, ASE 2022
Abstract
Refactoring software can be hard and time-consuming. Several refactoring tools assist developers in reaching more readable and maintainable code. However, most of them are characterized by long feedback loops that impoverish their refactoring experience. We believe that we can reduce this problem by focusing on the concept of Live Refactoring and its main principles: the live recommendation and continuous visualization of refactoring candidates, and the immediate visualization of results from applying a refactoring to the code. Therefore, we implemented a Live Refactoring Environment that identifies, suggests, and applies Extract Method refactorings. To evaluate our approach, we carried out an empirical experiment. Early results showed us that our refactoring environment improves several code quality aspects, being well received, understood, and used by the experiment participants. The source code of our tool is available on: https://github.com/saracouto1318/LiveRef. Its demonstration video can be found at: https://youtu.be/_jxx21ZiQ0o.
2022
Autores
Fernandes, S;
Publicação
PROCEEDINGS OF THE 37TH IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING, ASE 2022
Abstract
Refactoring code manually can be complex. Several refactoring tools were developed to mitigate the effort needed to create more readable, adaptable, and maintainable code. However, most of them continue to provide late feedback, assistance, and support on how developers should improve their software. That's where the concept of Live Refactoring comes in. We believe the immediate and continuous suggestion of refactoring candidates to the code will help reduce this problem. Therefore, we prototyped a Live Refactoring Environment that identifies, recommends, and applies Extract Method refactorings. We carried out an empirical experiment that showed us that our approach helped developers reach better code, with more quality, improving their refactoring experience.
2022
Autores
Fernandes, S; Aguiar, A; Restivo, A;
Publicação
Proceedings of the 6th International Conference on the Art, Science, and Engineering of Programming, Programming 2022, Porto, Portugal, March 21-25, 2022
Abstract
Refactoring helps improve the design of software systems, making them more understandable, readable, maintainable, cleaner, and self-explanatory. Many refactoring tools allow developers to select and execute the best refactorings for their code. However, most of them lack quick and continuous feedback, support, and guidance, leading to a poor refactoring experience. To fill this gap, we are researching ways to increase liveness in refactoring. Live Refactoring consists of continuously knowing, in real-time, what and why to refactor. To explore the concept of Live Refactoring and its main components - recommendation, visualization, and application, we prototyped a Live Refactoring Environment focused on the Extract Method refactoring. With it, developers can receive recommendations about the best refactoring options and have support to apply them automatically. This work helped us reinforce the hypothesis that early and continuous refactoring feedback helps to shorten the time needed to create high-quality systems. © 2022 ACM.
2021
Autores
Fernandes, S;
Publicação
PROCEEDINGS OF THE 29TH ACM JOINT MEETING ON EUROPEAN SOFTWARE ENGINEERING CONFERENCE AND SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING (ESEC/FSE '21)
Abstract
Refactoring helps to improve the design of software systems, making them more readable, maintainable, cleaner, and easy to expand. Most of the tools that already exist on this concept allow developers to select and execute the best refactoring techniques for a particular programming context. However, they aren't interactive and prompt enough, providing a poor programming experience. In this gap, we can introduce and combine the topic of liveness with refactoring methods. Live Refactoring allows to know continuously, while programming, the blocks of code that we should refactor and why they were classified as problematic. Therefore, it shortens the time needed to create high-quality systems, due to early and continuous refactoring feedback, support, and guidance. This paper presents our research project based on a live refactoring environment. This environment is focused on a refactoring tool that aims to explore the concept of Live Refactoring and its main components - recommendation, visualization, and application.
2020
Autores
Rafael, A; Santos, C; Duque, D; Fernandes, S; Sousa, A; Reis, LP;
Publicação
FOURTH IBERIAN ROBOTICS CONFERENCE: ADVANCES IN ROBOTICS, ROBOT 2019, VOL 1
Abstract
In recent years robots have been used as a tool for teaching purposes, motivating the development of fully virtual environments for combined real/simulated robotics teaching. The AlphaBot2 Raspberry Pi (RPi), a robot used for education, has no currently available simulator. A Gazebo simulator was produced and a ROS framework was implemented for hardware abstraction and control of low-level modules facilitating students control of the robot's physical behaviours in the real and simulated robot, simultaneously. For the demonstration of the basic model operation, an algorithm for detection of obstacles and lines was implemented for the IR sensors, however, some discrepancies in a line track timed test were detected justifying the need for further work in modelling and performance assessment. Despite that, the implemented ROS structure was verified to be functional in the simulation and the real AlphaBot2 for its motion control, through the input sensors and camera.
The access to the final selection minute is only available to applicants.
Please check the confirmation e-mail of your application to obtain the access code.