Francis Palma

dblp:34/10082 · DBLP profile ↗
← Back
19ranked-venue papers
10as first author
7since 2021 · last 2025
0000-0001-7092-2244ORCID · corroborated

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 16 · 8 first-author · 7 since 2021Databases, data management, data science and information retrieval · 3 · 2 first-author · 1 since 2021Applied, interdisciplinary, general and emerging computing · 1 · 1 since 2021
YearPublicationVenuePosition
2025 Android Source Code Smells: A Systematic Literature Review
abstract
ABSTRACT Introduction Modern software developers strive to develop applications that are robust, easy to maintain, and possess high levels of quality. However, code smells can hinder this goal as they are visible signs of underlying issues. Numerous techniques and tools have been proposed for detecting code smells in various contexts and programming languages. Despite this, research on Android‐specific code smells and their impact on external quality attributes is still in its early stages. Objective This study aims to provide a comprehensive summary of state‐of‐the‐art techniques, tools, and approaches used for detecting and refactoring code smells in Android applications. Methodology A systematic literature review was conducted between November 2007 and December 2023, adhering to standard guidelines. In total, 79 primary studies were identified, analyzed, and synthesized. Results A total of 237 code smells were identified using 51 techniques and tools, based on seven distinct approaches. Efficiency was found to be the most affected external quality attribute. The code smell Durable Wakelock was the most studied. Challenges Despite the extensive research, the software engineering community faces numerous challenges. These include a lack of in‐depth investigation into Android‐specific code smells, a limited number of studied quality attributes, insufficient involvement of industry experts in the research process, scarcity of Android‐oriented metrics, and dependence on industry‐exclusive datasets. Future Directions This review suggests potential research directions that are valuable for researchers and practitioners seeking to gain insights into current open research problems in this domain.
Muhammad Fawad, Ghulam Rasool 0002, Francis Palma
Softw. Pract. Exp.3
2024 Dynamic Hybrid Recommendation System for E-Commerce: Overcoming Challenges of Sparse Data and Anonymity
Kailash Chowdary Bodduluri, Arianit Kurti, Francis Palma, Ilir Jusufi, Henrik Löwenadler
ICWE3
2022 The Impact of Forced Working-From-Home on Code Technical Debt: An Industrial Case Study
abstract
Background: The COVID-19 outbreak interrupted regular activities for over a year in many countries and resulted in a radical change in ways of working for software development companies, i.e., most software development companies switched to a forced Working-From-Home (WFH) mode. Aim: Although several studies have analysed different aspects of forced WFH mode, it is unknown whether and to what extent WFH impacted the accumulation of technical debt (TD) when developers have different ways to coordinate and communicate with peers. Method: Using the year 2019 as a baseline, we carried out an industrial case study to analyse the evolution of TD in five components that are part of a large project while WFH. As part of the data collection, we carried out a focus group with developers to explain the different patterns observed from the quantitative data analysis. Results: TD accumulated at a slower pace during WFH as compared with the working-from-office period in four components out of five. These differences were found to be statistically significant. Through a focus group, we have identified different factors that might explain the changes in TD accumulation. One of these factors is responsibility diffusion which seems to explain why TD grows faster during the WFH period in one of the components. Conclusion: The results suggest that when the ways of working change, the change between working from office and working from home does not result in an increased accumulation of TD.
Ehsan Zabardast, Javier Gonzalez-Huerta, Francis Palma
SEAA3
2022 Assessing the linguistic quality of REST APIs for IoT applications
abstract
Internet of Things (IoT) is a growing technology that relies on connected ‘things’ that gather data from peer devices and send data to servers via APIs (Application Programming Interfaces). The design quality of those APIs has a direct impact on their understandability and reusability. This study focuses on the linguistic design quality of REST APIs for IoT applications and assesses their linguistic quality by performing the detection of linguistic patterns and antipatterns in REST APIs for IoT applications. Linguistic antipatterns are considered poor practices in the naming, documentation, and choice of identifiers. In contrast, linguistic patterns represent best practices to APIs design. The linguistic patterns and their corresponding antipatterns are hence contrasting pairs. We propose the SARAv2 (Semantic Analysis of REST APIs version two) approach to perform syntactic and semantic analyses of REST APIs for IoT applications. Based on the SARAv2 approach, we develop the REST-Ling tool and empirically validate the detection results of nine linguistic antipatterns. We analyse 19 REST APIs for IoT applications. Our detection results show that the linguistic antipatterns are prevalent and the REST-Ling tool can detect linguistic patterns and antipatterns in REST APIs for IoT applications with an average accuracy of over 80%. Moreover, the tool performs the detection of linguistic antipatterns on average in the order of seconds, i.e., 8.396 s. We found that APIs generally follow good linguistic practices, although the prevalence of poor practices exists.
Francis Palma, Tobias Olsson, Anna Wingkvist, Javier Gonzalez-Huerta
J. Syst. Softw.1
2022 A Mixed-Method Approach to Recommend Corrections and Correct REST Antipatterns
abstract
Many companies, e.g., Facebook and YouTube, use the REST architecture and provide REST APIs to their clients. Like any other software systems, REST APIs need maintenance and must evolve to improve and stay relevant. Antipatterns—poor design practices—hinder this maintenance and evolution. Although the literature defines many antipatterns and proposes approaches for their (automatic) detection, theircorrectiondid not receive much attention. Therefore,we apply a mixed-method approach to study REST APIs and REST antipatterns with the objectives to recommend corrections or, when possible, actually correct the REST antipatterns.Qualitatively, via case studies, we analyse the evolution of 11 REST APIs, including Facebook, Twitter, and YouTube, over six years. We detect occurrences of eight REST antipatterns in the years 2014, 2017, and 2020 in 17 versions of 11 REST APIs. Thus, we show that (1) REST APIs and antipatterns evolve over time and (2) developers seem to remove antipatterns.Qualitatively via a discourse analysis, we analyse developers’ forums and report that developers are concerned with the occurrences of REST antipatterns and discuss corrections to these antipatterns. Following these qualitative studies, using anengineering-research approach, we propose the following novel and unique contributions: (1) we describe and compare the corrections of eight REST antipatterns from the academic literature and from developers’ forums; (2) we devise and describe algorithms to recommend corrections to some of these antipatterns; (3) we present algorithms and a tool to correct some of these antipatterns by intercepting and modifying responses from REST APIs; and, (4) we validate the recommendations and the corrections manually and via a survey answered by 24 REST developers.Thus, we propose to REST API developers and researchers the first, grounded approach to correct REST antipatterns.
Fatima Sabir, Yann-Gaël Guéhéneuc, Francis Palma, Naouel Moha, Ghulam Rasool 0002, Hassan Akhtar
IEEE Trans. Software Eng.3
2021 Are Developers Equally Concerned About Making Their APIs RESTful and the Linguistic Quality? A Study on Google APIs
Francis Palma, Osama Zarraa, Ahmad Sadia
ICSOC1
2021 An empirical study on the effect of community smells on bug prediction
Beyza Eken, Francis Palma, Ayse Basar Bener, Ayse Tosun Misirli
Softw. Qual. J.2
2019 A systematic literature review on the detection of smells and their evolution in object-oriented and service-oriented systems
abstract
Summary This systematic literature review paper investigates the key techniques employed to identify smells in different paradigms of software engineering from object‐oriented (OO) to service‐oriented (SO). In this review, we want to identify commonalities and differences in the identification of smells in OO and SO systems. Our research method relies on an automatic search from the relevant digital libraries to find the studies published since January 2000 on smells until December 2017. We have conducted a pilot and author‐based search that allows us to select the 78 most relevant studies after applying inclusion and exclusion criteria. We evaluated the studies based on the smell detection techniques and the evolution of different methodologies in OO and SO. Among the 78 relevant studies selected, we have identified six different studies in which linguistic source code analysis received less attention from the researchers as compared to the static source code analysis. Smells like the yo‐yo problem, unnamed coupling, intensive coupling, and interface bloat received considerably less attention in the literature. We also identified a catalog of 30 smells infrequently reported for SO systems and that require further attention. Moreover, a suite of 20 smells reported for SO systems can also be detected using static source code metrics in OO. Finally, our review highlighted three major research trends that are further subdivided into 20 research patterns initiating the detection of smells toward their correction.
Fatima Sabir, Francis Palma, Ghulam Rasool 0002, Yann-Gaël Guéhéneuc, Naouel Moha
Softw. Pract. Exp.2
2019 UniDoSA: The Unified Specification and Detection of Service Antipatterns
abstract
Service-based Systems (SBSs) are developed on top of diverse Service-Oriented Architecture (SOA) technologies or architectural styles. Like any other complex systems, SBSs face both functional and non-functional changes at the design or implementation-level. Such changes may degrade the design quality and quality of service (QoS) of the services in SBSs by introducing poor solutions-service antipatterns. The presence of service antipatterns in SBSs may hinder the future maintenance and evolution of SBSs. Assessing the quality of design and QoS of SBSs through the detection of service antipatterns may ease their maintenance and evolution. However, the current literature lacks a unified approach for modelling and evaluating the design of SBSs in term of design quality and QoS. To address this lack, this paper presents a meta-model unifying the three main service technologies: REST, SCA, and SOAP. Using the meta-model, it describes a unified approach, UniDoSA (Unified Specification and Detection of Service Antipatterns), supported by a framework, SOFA (Service Oriented Framework for Antipatterns), for modelling and evaluating the design quality and QoS of SBSs. We apply and validate UniDoSA on: (1) 18 RESTful APIs, (2) two SCA systems with more than 150 services, and (3) more than 120 SOAP Web services. With a high precision and recall, the detection results provide evidence of the presence of service antipatterns in SBSs, which calls for future studies of their impact on QoS.
Francis Palma, Naouel Moha, Yann-Gaël Guéhéneuc
IEEE Trans. Software Eng.1
2017 Semantic Analysis of RESTful APIs for the Detection of Linguistic Patterns and Antipatterns
abstract
Identifier lexicon may have a direct impact on software understandability and reusability and, thus, on the quality of the final software product. Understandability and reusability are two important characteristics of software quality. REpresentational State Transfer (REST) style is becoming a de facto standard adopted by software organizations to build their Web applications. Understandable and reusable Uniform Resource Identifers (URIs) are important to attract client developers of RESTful APIs because good URIs support the client developers to understand and reuse the APIs. Consequently, the use of proper lexicon in RESTful APIs has also a direct impact on the quality of Web applications that integrate these APIs. Linguistic antipatterns represent poor practices in the naming, documentation, and choice of identifiers in the APIs as opposed to linguistic patterns that represent the corresponding best practices. In this paper, we present the Semantic Analysis of RESTful APIs (SARA) approach that employs both syntactic and semantic analyses for the detection of linguistic patterns and antipatterns in RESTful APIs. We provide detailed definitions of 12 linguistic patterns and antipatterns and define and apply their detection algorithms on 18 widely-used RESTful APIs, including Facebook, Twitter, and Dropbox. Our detection results show that linguistic patterns and antipatterns do occur in major RESTful APIs in particular in the form of poor documentation practices. Those results also show that SARA can detect linguistic patterns and antipatterns with higher accuracy compared to its state-of-the-art approach — DOLAR.
Francis Palma, Javier Gonzalez-Huerta, Mohamed Founi, Naouel Moha, Guy Tremblay, Yann-Gaël Guéhéneuc
Int. J. Cooperative Inf. Syst.1
2016 A network service design and deployment process for NFV systems
abstract
Recently, the paradigm of Network Functions Virtualisation (NFV) has emerged for the rapid provisioning and management of network services. It is based on the cloud paradigm and the virtualisation technology. The European Telecommunications Standards Institute (ETSI) has been actively defining the NFV framework, which includes several functional blocks for network service provisioning and management. The interfaces and the roles of these functional blocks are being defined as well as the artifacts they manipulate. However, the workflow defining the relations and dependencies between these different blocks as well as the successive processing of the artifacts throughout this workflow have not been specified. This is the purpose of this paper where we define an NFV standard compliant process for network service design and deployment. The process starts from the tenant network service requirements all the way to the network service deployment.
Sadaf Mustafiz, Francis Palma, Maria Toeroe, Ferhat Khendek
NCA2
2015 Are RESTful APIs Well-Designed? Detection of their Linguistic (Anti)Patterns
Francis Palma, Javier Gonzalez-Huerta, Naouel Moha, Yann-Gaël Guéhéneuc, Guy Tremblay
ICSOC1
2014 Specification and Detection of SOA Antipatterns in Web Services
Francis Palma, Naouel Moha, Guy Tremblay, Yann-Gaël Guéhéneuc
ECSA1
2014 Specification and Detection of SOA Antipatterns
abstract
Service-oriented architecture (SOA) provides a collection of principles and methodologies for designing and developing service-based systems (SBSs). SBSs are composed of loosely-coupled, platform independent, and reusable functional units, i.e., services. Alternative technologies to implement SBSs are REST-style (Representational State Transfer), Service Component Architecture (SCA), SOAP-based Web service, and so on. However, SBSs cannot overcome some common software engineering challenges, e.g., evolution, to fit new user requirements or changes in execution contexts. All these changes may degrade the quality of design and quality of service of SBSs and may cause the presence of common bad practiced solutions -- antipatterns.
Francis Palma
ICSME1
2014 Detection of REST Patterns and Antipatterns: A Heuristics-Based Approach
Francis Palma, Johann Dubois, Naouel Moha, Yann-Gaël Guéhéneuc
ICSOC1
2013 Soa Antipatterns: an Approach for their Specification and Detection
abstract
Like any other large and complex software systems, Service-Based Systems (SBSs) must evolve to fit new user requirements and execution contexts. The changes resulting from the evolution of SBSs may degrade their design and quality of service (QoS) and may often cause the appearance of common poor solutions in their architecture, called antipatterns, in opposition to design patterns, which are good solutions to recurring problems. Antipatterns resulting from these changes may hinder the future maintenance and evolution of SBSs. The detection of antipatterns is thus crucial to assess the design and QoS of SBSs and facilitate their maintenance and evolution. However, methods and techniques for the detection of antipatterns in SBSs are still in their infancy despite their importance. In this paper, we introduce a novel and innovative approach supported by a framework for specifying and detecting antipatterns in SBSs. Using our approach, we specify 10 well-known and common antipatterns, including Multi Service and Tiny Service, and automatically generate their detection algorithms. We apply and validate the detection algorithms in terms of precision and recall two systems developed independently, (1) Home-Automation, an SBS with 13 services, and (2) FraSCAti, an open-source implementation of the Service Component Architecture (SCA) standard with more than 100 services. This validation demonstrates that our approach enables the specification and detection of Service Oriented Architecture (SOA) antipatterns with an average precision of 90% and recall of 97.5%.
Francis Palma, Mathieu Nayrolles, Naouel Moha, Yann-Gaël Guéhéneuc, Benoit Baudry, Jean-Marc Jézéquel
Int. J. Cooperative Inf. Syst.1
2013 Interactive requirements prioritization using a genetic algorithm
Paolo Tonella, Angelo Susi, Francis Palma
Inf. Softw. Technol.3
2012 Specification and Detection of SOA Antipatterns
Naouel Moha, Francis Palma, Mathieu Nayrolles, Benjamin Joyen Conseil, Yann-Gaël Guéhéneuc, Benoit Baudry, Jean-Marc Jézéquel
ICSOC2
2011 Using an SMT solver for interactive requirements prioritization
abstract
The prioritization of requirements is a crucial activity in the early phases of the software development process. It consists of finding an order relation among requirements, considering several requirements characteristics, such as stakeholder preferences, technical constraints, implementation costs and user perceived value.
Francis Palma, Angelo Susi, Paolo Tonella
SIGSOFT FSE1