Reviewerly/exHarmony huggingface dataset:
A Dataset of Bot and Human Activities in GitHub

Software repositories hosted on GitHub frequently use development bots to automate repetitive, effort intensive and error-prone tasks. To understand and study how these bots are used, state-of-the-art bot identification tools have been developed to detect bots based on their comments in commits, issues and pull requests. Given that bots can be involved in many other activity types, there is a need to consider more activities that they are carrying out in the software repositories they are involved in. We therefore propose a curated dataset of such activities carried out by bots and humans involved in GitHub repositories. The dataset was constructed by identifying 24 high-level activity types that could be extracted from 15 lower-level event types that were queried from GitHub’s event stream API for all considered bots and humans. The proposed dataset contains around 834K activities performed by 385 bots and 616 humans involved in GitHub repositories, during an observation period ranging from 25 November 2022 to 9 March 2023. By analysing the activity patterns of bots and humans, this dataset could lead to better bot identification tools and empirical studies on how bots play a role in collaborative software development.
A Framework to Communicate Software Engineering Data Effectively with Dashboards

Different approaches have been explored to capture Software Engineering (SE) data and to understand which indica-tors or metrics are essential to be observed in this process. How-ever, the presentation of this data using Information Visualization (InfoVis) systems, such as Dashboards, must be carried out more effectively. Dashboard users often face challenges interpreting the essence of the presented information. Moreover, keeping this audience engaged and leading them to act is still an open topic for investigation. Hence, my research investigates how SE data can be communicated to inform and inspire meaningful actions in a software development organization. The expected contributions are threefold: (1) an overview of the current state of how SE data is communicated across the industry; (2) an exploration of Info Vis approaches combined with a set of practices that can be extended for different applications; and (3) a theoretical framework to guide how SE data can be effectively communicated using Dashboards.
Prioritizing Industrial Security Findings in Agile Software Development Projects

Automating repetitive activities is a key principle in most software development approaches employed in the industry. This implies that security activities and all related processes should be investigated for automation capabilities, particularly the management of security findings and vulnerabilities. Consid-ering the limited time available for each release and the vast flood of findings by automated security testing, prioritizing security finding responses is essential. In this paper, we present a partially automated process to prioritize security findings in industrial software development projects. We utilize a two-staged calculation process to produce a prioritization score, representing the finding's severity and factors like stakeholder input alike. This process was evaluated by conducting structured interviews with security professionals while also integrating the approach in ongoing industrial software development projects. The results indicate the potential of the process in terms of usefulness and correctness for agile software development projects.
Towards Automated Embedded Systems Programming

Writing code for embedded systems poses unique challenges due to hardware involvement. Developers often need to learn domain-specific knowledge to write embedded codes. Learning such knowledge is time-consuming and hinders de-velopers' productivity. This paper presents a proposal for an automated code generation approach, specifically designed for embedded systems. The work is composed of three milestones, i.e., understanding the needs of embedded developers by analyzing posts from discussion forums, developing a tool to recommend driver libraries of 110 hardware and generate its interface configurations and usage patterns, and improving the generation accuracy of the prior tool using program analysis techniques. The tool will be evaluated using various metrics from machine translation.. classification.. and information retrieval fields.
Grammar-Based String Refinement Types

Programmers use strings to represent variates of data that contain internal structure or syntax. However, existing mainstream programming languages do not provide users with means to further narrow down the set of valid values for a string. An invalid string input may cause runtime errors or even severe security vulnerabilities. To address that, this paper presents a Ph.D. research proposal on the type checking of grammar- based string refinement types, a kind of fine-grained types for specifying the set of valid string values via grammar. The string refinement type system uses sub typing to capture the inclusion relation between the languages of grammars. Based on that, we follow a well-known bidirectional type checking framework to combine the checking and inference of string refinement types into one. Evaluations on real-world codebases will be conducted to measure the practicality of this approach.
DocMine: A Software Documentation-Related Dataset of 950 GitHub Repositories

Software documentation is one of the critical aspects of a software project, that could support multiple tasks throughout the software development life-cycle. There is extensive research on understanding issues and challenges with existing documentation, which is typically available as readme files. In projects that support collaborative development, such as those on GitHub, other software artifacts such as commits, pull requests and issues, apart from the conventional readme files, wikis and source code comments, also contain useful information, that supports in understanding, using, extending and maintaining the project. However, we are not aware of any dataset that explicitly focuses on documentation-related information in multiple software artifacts such as readme files, commits and pull requests across a repository. To address this concern and to facilitate further research in software documentation, we present DocMine, as a dataset of documentation-related information, extracted from around 1.35M software artifacts in 950 GitHub repositories, spanning across four different programming languages. The dataset along with its documentation is made available in CSV and .sql formats at - https://doi.org/10.5281/zenodo.5195084.
An Empirical Study to Investigate Collaboration Among Developers in Open Source Software (OSS)

The value of teamwork is being recognized by project owners, resulting in an increased acknowledgement of collaboration among developers in software engineering. A good understanding of how developers work together could positively impact software development practices. In this paper, we investigate the collaboration habits of developers in project files by leveraging the World of Code (WoC) dataset and GitHub API. We first identify the collaboration level of developers within the project files, such as the source, test, documentation, and build files, using the Author Cross Entropy (ACE). From the results we find out that test files report the highest degree of collaboration among the developers, perhaps because collaboration is critical to ensure convergence of functionality tests. Furthermore, the source code files show the least degree of collaboration, perhaps because of code ownership and the complexity and difficulty in code modification. Secondly, given the widespread usage of the Python programming language, we investigate the Python code tokens that are more prone to change and collaboration. Our findings offer insights into the specific project files and Python code tokens that developers typically collaborate on in the open-source community. This information can be used by researchers and developers to enhance existing collaboration platforms and tools.
Phylogenetic Analysis of Reticulate Software Evolution

In this paper, we apply techniques from phylogenetics for uncovering evolutionary dependencies among software versions. Phylogenetics is a part of computational molecular biology that addresses the inference of evolution among organisms based on differences/similarities in DNA sequences and morphology. We apply a tree differencing technique to abstract syntax trees to calculate a distance matrix, which is then used by a distance-based phylogenetic algorithm to infer an evolution network. Such a network allows us to identify merging and branching among versions without manually looking into the details of the source code. Experiments on ancient versions of the Emacs editor and the open source 3D printer firmware show that we can reproduce the evolution of the software and identify code import/merging across different lineages. We also discuss how the techniques identify the feature models among software variations. To the best of our knowledge, this paper is the first to report on a reticulate phylogenetic analysis of the software. It may offer a helpful method for gaining information on the evolution of the software.
Don’t Forget the Exception! : Considering Robustness Changes to Identify Design Problems

Modern programming languages, such as Java, use exception-handling mechanisms to guarantee the robustness of software systems. Although important, the quality of exception code is usually poor and neglected by developers. Indiscriminate robustness changes (e.g., the addition of empty catch blocks) can indicate design decisions that negatively impact the internal quality of software systems. As it is known in the literature, multiple occurrences of poor code structures, namely code smells, are strong indicators of design problems. Still, existing studies focus mainly on the correlation of maintainability smells with design problems. However, using only these smells may not be enough since developers need more context (e.g., system domain) to identify the problems in certain scenarios. Moreover, these studies do not explore how changes in the exceptional code of the methods combined with maintainability smells can give complementary evidence of design problems. By covering both regular and exception codes, the developer can have more context about the system and find complementary code smells that reinforce the presence of design problems. This work aims to leverage the identification of design problems by tracking poor robustness changes combined with maintainability smells. We investigated the correlation between robustness changes and maintainability smells on the commit history of more than 160k methods from different releases of 10 open-source software systems. We observed that maintainability smells can be worsened or even introduced when robustness changes are performed. This scenario mainly happened for the smells Feature Envy, Long Method, and Dispersed Coupling. We also analyzed the co-occurrence between robustness and maintainability smells. We identified that the empty catch block and catch throwable robustness smells were the ones that co-occurred the most with maintainability smells related to the Concern Overload and Misplaced Concern design problems. The contribution of our work is to reveal that poor exception code, usually neglected by developers, negatively impacts the quality of methods and classes, signaled by the maintainability smells. Therefore, existing code smell detecting tools can be enhanced to leverage robustness changes to identify design problems.
Optimizing Duplicate Size Thresholds in IDEs

In this paper, we present an approach for transferring an optimal lower size threshold for clone detection from one language to another by analyzing their clone distributions. We showcase this method by transferring the threshold from regular Python scripts to Jupyter notebooks for using in two JetBrains IDEs, Datalore and DataSpell.
Learning Program Models from Generated Inputs

Recent advances in Machine Learning (ML) show that Neural Machine Translation (NMT) models can mock the program behavior when trained on input-output pairs. Such models can mock the functionality of existing programs and serve as quick-to-deploy reverse engineering tools. Still, the problem of automatically learning such predictive and reversible models from programs needs to be solved. This work introduces a generic approach for automated and reversible program behavior modeling. It achieves 94% of overall accuracy in the conversion of Markdown-to-HTML and HTML-to-Markdown markups.
vPass: Publicly Verifiable Fair Exchange Protocol for Vehicle Passports

In second-hand vehicle markets, blockchains are being proposed as means to provide verification of vehicle history, a.k.a. vehicle passport (VP). However, given that confidentiality of VPs often contradicts public verification, blockchains are not used to their full potential in the proposed frameworks. Specifically, although blockchain smart contracts offer a decentralized mechanism for untrusted parties to fairly exchange digital assets without the need for a trusted third party, VP exchange is always carried off-chain. In this work, we investigate the problem of “fair exchange” of confidential VPs over public blockchains where its plain information must be verified against its publicly committed value. We propose a zero-knowledge proof, called Consistent Commitment Encryption (CCE), that enables the public verification of the consistency between ElGamal encryption of a given VP and its Pedersen commitment. We employ our CCE to build vPass, a decentralized vehicle passport framework that enables second-hand vehicle buyers to purchase vehicle history information from designated service providers and get it verified and delivered on-chain while preserving its confidentiality. The security of CCE relies on the intractability of the discrete logarithm problem in elliptic curve groups and it has no trusted setup. We formally prove that CCE is sound, complete, and witness indistinguishable proof of knowledge, and report on comparisons with other generic proof systems. Moreover, we show that vPass provides fair exchange and confidentiality of the vehicle history, and compare it to existing VP systems. Finally, we provide a proof of concept implementation on Ethereum and report the system performance metrics.
Frame Synchronization Method Based on Association Rules for CNAV-2 Messages

The GPS system is a navigation satellite system with high precision, all-weather service, and global coverage, whose main purpose is to provide real-time and continuous global navigation services for the US military, and whose signal interference in wartime is a heavy blow to the US military. Its existing interference measures are classified into two types: blanket jamming and deception jamming, with the latter having better interference effects due to its imperceptibility. Frame synchronization, as the foundation of deception jamming, is a focus of current research on navigation countermeasures. This paper discusses the frame synchronization of CNAV-2 messages in GPS L1C signals and proposes a frame synchronization algorithm based on association rules. It analyzes the structural characteristics of CNAV-1 message data, reveals the hidden mapping relationships in the BCH code sequence of the first sub-frame by applying association rules, and achieves a blind synchronization of navigation messages by counting the types of mapping relationships and calculating the confidence levels. The simulation test results show that the proposed algorithm displays high error resilience and correct recognition rates and demonstrates certain values in engineering applications.
Research on Construction and Application of Regulation of the Multiple Energy Systems Based on Knowledge Graph

In this paper, A knowledge graph construction method for regulation of the multiple energy systems combining top-down and bottom-up is proposed. Firstly, define the schema layer of the graph from top to bottom; and then, use different deep learning models to perform knowledge extraction and knowledge fusion on the resource plan, and build the data layer of the graph from the bottom up: the TextCNN model is used to classify the text of the plan, and LR-CNN model is used to named entities recognition for the plan; on the basis of named entity recognition, BERT-BILSTM-CRF model is used to extract the relationship between the named entities. Next, extract the corresponding triples to realize the construction of knowledge graph. Finally, the graph database is used to store and visualize the knowledge graph, and a case of the application process of the knowledge graph is studied. Compared with the traditional text retrieval method, the proposed method improves the decision-making efficiency and decision-making accuracy of multiple energy systems staff and users.
Optimization of Virtual Machine Layout in Cloud Data Center Based on Server Power Consumption Characteristics

Cloud data centers consume huge amounts of energy. More and more research focus on energy conservation and consumption reduction in data centers, and one of the important directions is the layout optimization of virtual machines running on servers. However, this paper finds that in the models and frameworks of existing research, almost no server power consumption characteristics are directly considered in the energy conservation problem. In fact, servers are the most important energy consumption units in the data center, of which the work characteristics and power consumption characteristics directly affect the energy consumption laws of other major energy consumption devices in the data center. Therefore, the real-time power consumption characteristics of the server should be emphatically considered in the energy conservation optimization problem. In this way, the best energy-saving effect can be achieved. Therefore, based on the characteristics of server power consumption, this paper establishes a cloud data center virtual machine layout optimization problem model, and takes the server cluster energy consumption directly as the goal of energy saving optimization. Then we use the Q-learning algorithm to solve the problem, and compares it with many popular optimization algorithms such as the best fitting descending method(BFD), particle swarm optimization(PSO), etc., in order to verify the effectiveness of the model. At the same time, it also proves that the model has good algorithm universality.
Skill Recommendation for New Contributors in Open-Source Software

Selecting an appropriate task is challenging for newcomers to Open Source Software (OSS) projects. Therefore, researchers and OSS projects have proposed strategies to label tasks (a.k.a. issues). Several approaches relying on machine learning techniques, historical information, and textual analysis have been submitted. However, the results vary, and these approaches are still far from mainstream adoption, possibly because of a lack of good predictors. Inspired by previous research, we advocate that the prediction models might benefit from leveraging social metrics. In this research, we investigate how to assist the new con-tributors in finding a task when onboarding a new project. To achieve our goal, we predict the skills needed to solve an open issue by labeling them with the categories of APIs declared in the source code (API -domain labels) that should be updated or implemented. Starting from a case study using one project and an empirical experiment, we found the API -domain labels were relevant to select an issue for a contribution. In the sequence, we investigated employing interviews and a survey of what strategies maintainers the strategies believe the communities have to adopt to assist the new contributors in finding a task. We also studied how maintainers think about new contributors' strategies to pick a task. We found maintainers, frequent contributors, and new contributors diverge about the importance of the communities and new contributors' strategies. The ongoing research works in three directions: 1) general-ization of the approach, 2) Use of conversation data metrics for predictions, 3) Demonstration of the approach, and 4) Matching contributors and tasks skills. By addressing the lack of knowledge about the skills in tasks, we hope to assist new contributors in picking tasks with more confidence.
An Interactive Perception Method Based Collaborative Rating Prediction Algorithm

To solve the rating prediction problems of low accuracy and data sparsity on different datasets, we propose an interactive perception method based collaborative rating prediction algorithm named DCAE-MF, by fusing dual convolutional autoencoder (DCAE) and probability matrix factorization (PMF). Deep latent representations of users and items are captured simultaneously by DCAE and are deeply integrated with PMF to collaboratively make rating predictions based on the known rating history of users. A global multi-angle collaborative optimization learning method is developed to effectively optimize all the parameters of DCAE-MF. Extensive experiments are performed on seven real-world datasets to demonstrate the superiority of DCAE-MF on key rating accuracy metrics of the root mean squared error (RMSE) and mean absolute error (MAE).
The Emotion in Text Analyzer: How to Visualize Its Output

The article summarizes the results of the project conducted in the field of emotional text analysis. The project aim is to build up an analyzer able, according to the model of “Lövheim Cube”, to detect eight emotions in the Internet-texts in Russian. Having collected a labeled dataset and trained ML models, we faced the problem of the way to visualize the results of emotional text analysis. The main problem is due to the non-discrete approach in emotion in text assessment we are following in our research: we consider emotions as continuum and not as discrete categories. In this paper, we briefly describe the main logic of our work on the analyzer and focus on the different approaches to its output visual presentation. Finally, we demonstrate the design we have chosen to fit users’ expectations better and give an opening to the perspective of using the analyzer with such an interface.
The Special Case of Cyclotomic Fields in Quantum Algorithms for Unit Groups

Unit group computations are a cryptographic primitive for which one has a fast quantum algorithm, but the required number of qubits is $$\tilde{O}(m^5)$$ . In this work we propose a modification of the algorithm for which the number of qubits is $$\tilde{O}(m^2)$$ in the case of cyclotomic fields. Moreover, under a recent conjecture on the size of the class group of $$\mathbb Q(\zeta _m+\zeta _m^{-1})$$ , the quantum algorithm is much simpler because it is a hidden subgroup problem (HSP) algorithm rather than its error estimation counterpart: continuous hidden subgroup problem (CHSP). We also discuss the (minor) speed-up obtained when exploiting Galois automorphisms thanks to the Buchmann-Pohst algorithm over $$\mathcal {O}_K$$ -lattices.