Cookies Policy
The website need some cookies and similar means to function. If you permit us, we will use those means to collect data on your visits for aggregated statistics to improve our service. Find out More
Accept Reject
  • Menu
Interest
Topics
Details

Details

  • Name

    Sara Filipa Fernandes
  • Role

    External Student
  • Since

    01st October 2018
Publications

2022

LiveRef: a Tool for Live Refactoring Java Code

Authors
Fernandes, S; Aguiar, A; Restivo, A;

Publication
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

Towards a Live Environment for Code Refactoring

Authors
Fernandes, S;

Publication
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

A Live Environment to Improve the Refactoring Experience

Authors
Fernandes, S; Aguiar, A; Restivo, A;

Publication
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

A Live Environment for Inspection and Refactoring of Software Systems

Authors
Fernandes, S;

Publication
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

Development of an AlphaBot2 Simulator for RPi Camera and Infrared Sensors

Authors
Rafael, A; Santos, C; Duque, D; Fernandes, S; Sousa, A; Reis, LP;

Publication
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.