Reviewerly/exHarmony huggingface dataset:
A Conceptual Model to Support Teaching of Software Engineering Controlled (Quasi-)Experiments

Throughout controlled experimentation, it is possible to provide evidence of the software being developed. In the academic environment, Experimentation in Software Engineering (ESE) is essential to understanding cause-effect relations, enabling a vision of the development process, and taking action on actual events in the software industry. As much as the experimentation processes have been used in industry and academia, there is a lack of formalization of the principles of ESE teaching and artifacts that can be useful to support it in higher education. One of the means to contribute to such a topic would be the design of a conceptual model, which is widely discussed in the literature, thus applying empirical methods for a better understanding of the context and representation of ESE teaching. Thus, in this paper, we developed a conceptual model to support the teaching of controlled experiments and quasi-experiments. To design the conceptual model, we carried out an analysis of metadata from controlled experiments and quasi-experiments in the literature and conducted a survey to collect data from instructors who teach ESE. We evaluated the model with the Technology Acceptance Model (TAM). Results consist of a feasible conceptual model aiming to standardize the basic concepts of ESE and further support the production and reuse of ESE materials.
Software Merge: A Two-Decade Systematic Mapping Study

Software merging plays a key role in many software engineering tasks, e.g., reconciling source code developed in parallel. For this reason, many studies have been proposed in the last two decades. However, the current literature still lacks a classification of currently available approaches and research carried out considering software merge. Hence, a broad understanding of these already published works remains limited and inconclusive. Even worse, research gaps are not identified or prioritized. This study, therefore, provides a classification and thematic analysis of studies about software merge in the last two decades. We performed a systematic mapping study of the literature following PRISMA guidelines to explore nine research questions. After a careful selection process, 70 studies were selected, analyzed, and categorized (out of 308). The main results are that: (1) Most studies (71.42%) evaluated syntactic conflicts; (2) Most studies (57.14%) performed statistical analysis to evaluation software merge; (3) Most of the evaluated studies were published in the last five years (2017-2023), evidencing the importance and interest of the academic community and the software industry in this promising area of software engineering. This article benefits professionals and researchers by providing a body of knowledge about the current literature, which can be the starting point for future research. Finally, we present some worth-investigating challenges by the scientific community.
APFed: Attention-based Personalized Federated Learning in Model Heterogeneity Scenario

In recent years, federated learning (FL) has gradually become one of the leading frameworks for deploying edge computing due to its privacy attributes and efficient training performance. Due to the high degrees of system heterogeneity and statistical heterogeneity owned by users’ devices, these devices need to train heterogeneous models for personalized learning requirements. However, existing FL schemes have focused on the global aggregation of a common model architecture, and thus cannot facilitate FL across edge devices with heterogeneous model architectures. To address this problem, this paper proposes a novel Attention-based Personalized Federated Learning framework called APFed that can aggregate potential heterogeneous models by users to tackles both system and statistical heterogeneity. Different from the parameter average aggregation of traditional FL, APFed embeds different locally updated parameters of clients and different local models as tokens, taking into account both system, statistical and model heterogeneity, thus achieving personalized model aggregation.
Architectural Technical Debt - A Systematic Mapping Study

Architectural Technical Debt (ATD) is one of the leading Technical Debt (TD) that causes more impact in maintaining and evolving complex software systems. We conduct a Systematic Mapping Study (SMS) to discover the main aspects of identifying and monitoring ATD items to help determine what the community has been studying about it in the last ten years. We evaluated 70 studies dating from 2012 to 2022. We find out the main types of ATD, how to measure and monitor ATD, which techniques and methods stand out in this area, the most used tools, and directions on how to calculate the cost of paying for ATD items. The results of this mapping study can help identify points that still require investigations on identifying, monitoring, and calculating the effort to fix ATD items. Furthermore, we have proposed a roadmap to aid managing Architectural Technical Debt, which provides guidance for identifying and monitoring ATD items in software systems.
Do you see what happens around you? Men's Perceptions of Gender Inequality in Software Engineering

Context: It is known that men practitioners are predominant in software development teams over women. In recent years, researchers have investigated gender inequality from different perspectives, such as gender bias and suggestions to increase diversity in development teams. However, while most of the existing literature investigates the perception of women practitioners, the vast majority of the software development workforce – men – has received less attention. Goal: This work investigates men’s perceptions of gender inequality in software development teams and their experiences compared in software development to women. Method: Our study conducted a survey with 217 male practitioners, using a questionnaire consisting of 27 questions. The collected data was analyzed using a combination of quantitative and qualitative techniques, including graphical representations, percentages, and the grounded theory methodology. Results: Our findings reveal that most men do not perceive any sexist behavior among their team members and they are satisfied with the performance of their functions. In addition, their main suggestions to increase their participation in software development projects are offering training courses and improving the interaction among team members. Conclusions: The barriers and challenges that men practitioners face in software development teams are not the same as those faced by women. In addition, they consider that women do not work in software development due to a lack of affinity and knowledge about coding.
Similar Bug Reports Recommendation System using BERT

In order to document software issues so that they can be later analyzed and corrected, Bug Reports (BR) are used. According to Mozilla’s Bugzilla, as an example, over 8,000 new bugs were reported for Firefox in 2020. Thus, a recommendation system can be a valuable tool to improve productivity in software development, especially when dealing with a high volume of BRs to be reviewed and possibly fixed by the maintainers. This study proposes and evaluates a BR recommendation system based on textual similarity, with the differential use of the state-of-the-art text comprehension model BERT as one of the factors in the similarity calculation. We use a dataset with 106k Mozilla BRs extracted from Bugzilla, an open-source platform. The main objective is to improve suggestions for BRs with a context close to that provided by the maintainer. In the study, we experimented with the BERT model adopting the similarity calculation as individually as together with the well-known TF-IDF vectorization technique. The results attest that there were gains of approximately 14% in the frequency of relevant BRs for the first 20 recommendations compared to a baseline technique that adopts only the TF-IDF vectorization approach. The BERT model added improvements to the evaluated metrics (precision, feedback, and likelihood) when complementary to TF-IDF, but did not perform positively in an isolated manner. Overall, the findings could have implications for software development teams handling a high volume of BRs and potentially increase their productivity in resolving BRs.
Empirical evidence on technical challenges when adopting continuous practices

Context: Continuous Software Engineering offers several benefits like fast iterations, increased reliability, and shorter lead times to react to business needs through practices like Continuous Integration, Delivery, and Deployment, but these practices come with many adoption challenges, which may appear as social (hard to identify and overcome) or technical challenges (TCs). Since anticipating even a small amount of possible challenges can be overwhelming, there is value in detecting them as early as possible to make it cheaper, faster, and more feasible to adopt this set of practices. Objective: We summarize evidence about identifying TCs to adopt continuous deployment and related practices. Method: We performed a Rapid Review that analyzed 14 studies and performed a narrative summary to provide an evidence briefing to practitioners. Results: We identified 121 TCs and organized them into nine categories: architecture, building, code, deployment, development practices, operations, pipeline, security, and testing. TCs related to code, pipeline, and testing are the most prevalent in the reviewed literature, while operations and deployment are the least. Static analysis strategies are the most used for detecting TCs, accounting for 94 detection strategies out of 100. However, most of these static analyses resort to some parsing technique. Specifically, Abstract Syntax Tree is the most used, detecting 44 TCs. Conclusion: Most studies have mixed evidence about identifying TCs to adopt continuous practices - some focus on evaluating the efficiency of detection strategies. In contrast, others are more focused on their characterization. We also identified varying levels of efficiency when detecting TCs. Finally, we advise attention to interpreting the results based on the overall quality score.
Poster: Gaze Tracking on Any Surface with Your Phone

In this poster, we present ASGaze, a new gaze tracking system designed using the common RGB camera from mobile phones. In addition to improving the accuracy of existing RGB camera-based gaze tracker methods, a novelty of ASGaze is that it can track gaze points on various surface areas, such as mobile phone screens, computer displays or even non-electronic surfaces like whiteboards or paper - a situation where existing RGB camera-based methods can hardly handle through proposing three key designs.
Hybrid Software Development with Scrum: Perceptions of Brazilian Software Practitioners

Software processes are crucial in software development projects, affecting product quality and developer team productivity. Agile and plan-oriented approaches can be used in the same project, leading to hybrid software development approaches.Some studies propose hybrid strategies or attempt to characterize and identify related practices. As cultural and organizational factors may impact hybrid process adoption and enactment this paper presents a survey conducted in the Brazilian software industry to investigate various aspects of software process hybridization, using Scrum as a base. Scrum is a flexible and frequently customized agile approach, offering several software process hybridization possibilities. We collected responses from 76 participants across different states in Brazil, and our findings reveal that definitions of software process hybridization differ between industry and literature. Furthermore, we found that several hybridization alternatives are being employed to meet deadlines, manage software complexity, and satisfy customers needs, among other reasons. By sharing our findings, we hope to contribute to the field by establishing a common understanding of software hybridization goals and challenges, ultimately leading to a shared understanding of the benefits of its application, helping Brazilian companies’ productivity.
Effects of Modularization on Developers' Cognitive Effort in Code Comprehension Tasks: A Controlled Experiment

Developers invest the cognitive effort to comprehend instructions in source code. Cognitive effort refers to the cognitive processing of a human being's brain required to complete a cognitive task. The cognitive effort invested by developers can vary depending on the complexity of how instructions in source code are structured. To implement features, developers can write all instructions in a single method (non-modular) or even modularize it into several methods (modular). However, little is known about the effects of modularizing instructions in source code on the developers' cognitive effort. Hence, adopting modularization practices ends up being a cognitive effort-insensitive task. This paper, therefore, reports on a controlled experiment that investigates the effects of modularization on the cognitive effort of developers while comprehending instructions in (non-)modular code. We evaluated the modularization of instructions with the participation of 35 developers who performed 10 comprehension tasks using a wearable EEG device. The main results suggest that developers tend to invest less cognitive effort to understand instructions in modular code rather than in non-modular code. However, developers spend more temporal effort to understand instructions in modular code, and this extra time is not converted into a higher rate of correct code comprehension. Our findings shed light on improving the state of the art of modularization practices by making them sensitive to the developers'cognitive effort.
Investigating Transparency in Software Ecosystems

Software Ecosystems (SECO) are a set of actors interacting with a distributed market centered on a technology platform to develop products and services. In this context, transparency is a concept that allows third-party developers to learn processes and elements that integrate the platform of SECO. This non-functional requirement impacts the coordination of developers and the management of requirements that emerge in SECO. Although it is an essential requirement, there is still a lack of a roadmap on what constitutes transparency in SECO. Thus, this study aims to investigate and characterize transparency in SECO. After investigating the literature, we selected 23 studies to analyze the state-of-the-art about transparency in SECO. Concerning the results, we could have a comprehensive view of solutions, conditioning factors, processes, and challenges related to transparency in SECO, whose discussion is centered on three main topics: access to information, communication channels, and requirements engineering. Regarding implications for academia and industry, researchers can find an overview of what has been studied so far about transparency in the SECO context, and practitioners can find solutions and conditioning factors that help them to adopt initiatives to contribute to the open flow of information in a SECO and, thus, attract and engage new actors to a technology platform.
Wireless Traffic Analysis Based Side-channel Attacks and Countermeasure in Smart Home

Smart home technology is a rapidly growing field that involves the intelligent integration of various sensors and devices to automate home functions such as appliances, lighting, heating and cooling systems, and security and safety systems. Our study centers around the issue of side-channel inference on the wireless traffic within smart home networks. We demonstrate that by exploiting side-channel information present in the wireless traffic, it is possible to deduce the device type and identify the smart apps deployed on the network using a state machine matching approach. To address this security concern, we propose a countermeasure scheme. This scheme involves injecting spoofing traffic, which effectively obfuscates the traffic patterns of smart home applications, thereby thwarting inference attacks.
Empowering MultiModal Models’ In-Context Learning Ability through Large Language Models

Pretrained visual-language models (VLMs) have made progress in developing multimodal models to improve various tasks. However, they lack reasoning and in-context learning ability. Building on the success of large language models (LLMs) in general-purple NLP tasks, researchers anticipate that the VLM should also have the same strong reasoning and ICL ability through specific techniques, for example benefiting from LLMs. To boost VLMs to solve vision-language problems via few-shot exemplars, we suggest a vision-language model, called MIC1.
On the Experiences of Practitioners with Requirements Elicitation Techniques

Requirements elicitation is a crucial process in software engineering, which involves identifying and understanding the needs of stakeholders to define system requirements. Several techniques are used for requirements elicitation, each with unique advantages, disadvantages, and challenges. This paper presents the findings of a survey conducted among 33 practitioners in the software development community to investigate their experiences with requirements elicitation techniques. The results revealed that practitioners find the elicitation process highly challenging due to difficulties managing the relationship between the development team and the client, understanding complex business processes, and the lack of knowledge among stakeholders. The survey also assessed the participants’ familiarity with various elicitation techniques. The most well-known techniques were brainstorming, data analysis, use cases, interviews, user stories, and prototyping. In contrast, techniques such as ethnography, Quality Function Deployment (QFD), Joint Application Development (JAD), blueprint, and laddering were less recognized. When providing the pros and cons of some techniques, participants considered techniques’ clarity, speed of use, resource cost, and stakeholder involvement. This research contributes to the field by highlighting challenges, providing insights into practitioner experiences, and guiding informed decision-making in requirements elicitation.
Undergraduates' perspective on a pedagogical architecture to requirements engineering education

The literature has revealed the misalignment between higher education and professional practice in Requirements Engineering (RE). An alternative approach to mitigate this problem is adopting a pedagogical architecture (PA), which structures and diversifies the pedagogical practice of RE theory. This paper presents the evaluation of a PA to the education on requirements specification and validation. Undergraduate students of three RE classes at a Brazilian public university experimented and evaluated, through a survey, the PA’s lesson plans, teaching materials, and practical activities. From the analysis of 153 responses, we have shown that a PA to RE education can contribute to aligning RE knowledge and essential hard and soft skills for graduating future requirements analysts.
Understanding and Supporting Neurodiverse Software Developers in Agile Teams

The software development industry is gradually fostering diversity within its workforce. Recognizing that diverse teams often produce superior results, companies are increasingly committing to creating more inclusive environments. Diversity encompasses many dimensions such as gender, race/ethnicity, age, nationality, and neurodiversity. While gender has been the most extensively addressed dimension in software engineering research, the focus on neurodiversity has been primarily directed towards users, rather than developers. Developers with Autism Spectrum Disorder (ASD) and Attention Deficit Hyperactivity Disorder (ADHD) face unique challenges due to difficulties with executive functions, the cognitive processes essential for behavioral control. These processes include skills such as inhibitory control, cognitive flexibility, working memory, and planning, all of which are vital for effective teamwork and job performance. In this pilot study, we attempt to fill the existing knowledge gap about neurodiverse software developers. Using a socio-technical grounded theory approach, we investigate the challenges these developers face and explore how adjustments to agile team practices could enhance their comfort. The emergent results from this study present promising insights and implications for research about neurodiverse software developers, contributing to a more inclusive and productive workplace environment.
Assessing the Readability of ChatGPT Code Snippet Recommendations: A Comparative Study

Developers often rely on code search engines to find high-quality and reusable code snippets online, such as those available on Stack Overflow. Recently, ChatGPT, a language model trained for dialog tasks, has been gaining attention as a promising approach for code snippet generation. However, there is still a need for in-depth analysis of the quality of its recommendations. In this work, we propose the evaluation of the readability of code snippets generated by ChatGPT, comparing them with those recommended by CROKAGE, a state-of-the-art code search engine for Stack Overflow. We compare the recommended snippets of both approaches using readability issues raised by the automated static analysis tool (ASAT) SonarQube. Our results show that ChatGPT can generate cleaner code snippets and more consistent naming and code conventions than those written by humans and recommended by CROKAGE. However, in some cases, ChatGPT generates code that lacks recent features from Java API such as try-with-resources, lambdas, and others. Overall, our findings suggest that ChatGPT can provide valuable assistance to developers searching for didactic and high-quality code snippets online. However, it is still important for developers to review the generated code, either manually or assisted by an ASAT, to prevent potential readability issues, as the correctness of the generated code snippets.
Crossed Teams: Leveraging Student Interaction in Software Engineering Practice

One of the primary challenges faced by Software Engineering courses is bridging the gap between the classroom and real-world software development. Various approaches have been attempted to simulate certain aspects of software development within the classroom. A specific challenge in simulating the real-world experience in course practice is the difficulty of reproducing client-developer interaction. In this study, we present an experience in a SE course that has evolved over time, involving student teams taking on the roles of both clients and developers simultaneously in projects developed during the course within the SE domain. This approach involved forming crossed-teams, where one pair of teams (Team A and Team B) acted as clients for the other team and vice versa. We discuss the benefits of adopting this approach as well as the challenges and hindrances we encountered during the course iterations. Our observations indicate that this approach has contributed to the learning process, although a careful planning by the instructor is essential to mitigate potential drawbacks in the learning process.