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
Publications

Publications by Sara Filipa Fernandes

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.

2020

Helping software developers through live software metrics visualization

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

Publication
Programming'20: 4th International Conference on the Art, Science, and Engineering of Programming, Porto, Portugal, March 23-26, 2020

Abstract
With the increasing complexity of software systems, software developers would benefit from instant and continuous feedback about the system they are maintaining and evolving. Despite existing several solutions providing feedback and suggesting improvements, many tools require explicit invocations, leading developers to miss some improvement opportunities, such as important refactorings, due to the loss of their train of thought. Therefore, to address these limitations, we developed a Visual Studio Code plugin providing real-time feedback - - and also information about each commit made to the version control system. This tool is also capable of recommending two types of refactorings. To validate this approach, we did a preliminary controlled experiment using hypothesis-tests to check specific results. However, in this initial stage, we didn't have enough data to confirm our research questions, and we weren't able yet to confirm the main hypothesis. © 2020 Owner/Author.

2020

Live software inspection and refactoring

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

Publication
CEUR Workshop Proceedings

Abstract
With the increasing complexity of software systems, software developers would benefit from instant and continuous guidance about the system they are maintaining and evolving. Despite existing several solutions providing feedback and suggesting improvements, many tools require explicit invocation, leading to developers missing improvement opportunities, such as important refactorings, due to lost of train of thought. Therefore, to address these limitations, we propose an approach where developers receive instant and continuous feedback about their software systems. This guidance would include the detection of code smells and the suggestion of refactorings to improve the system, justified by relevant software quality metrics related to the recommendations. This research aims to improve the experience of developing and maintaining software systems by providing a live environment for continuous inspection and refactoring of software systems, that is informative, responsive, and tactically predictive, and thus helping developers to identify and solve quality problems in a quicker and better way.

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.

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.

  • 1
  • 2