Understanding and Detecting Real-World Safety Issues in Rust
Rust is a relatively new programming language designed for systems software development. Its objective is to combine the safety guarantees typically associated with high-level languages with the performance efficiency often found in executable programs ...
LIVABLE: Exploring Long-Tailed Classification of Software Vulnerability Types
Prior studies generally focus on software vulnerability detection and have demonstrated the effectiveness of Graph Neural Network (GNN)-based approaches for the task. Considering the various types of software vulnerabilities and the associated different ...
ChatGPT vs SBST: A Comparative Assessment of Unit Test Suite Generation
Recent advancements in large language models (LLMs) have demonstrated exceptional success in a wide range of general domain tasks, such as question answering and following instructions. Moreover, LLMs have shown potential in various software engineering ...
DAppSCAN: Building Large-Scale Datasets for Smart Contract Weaknesses in DApp Projects
The Smart Contract Weakness Classification Registry (SWC Registry) is a widely recognized list of smart contract weaknesses specific to the Ethereum platform. Despite the SWC Registry not being updated with new entries since 2020, the sustained ...
Controller Synthesis for Autonomous Systems With Deep-Learning Perception Components
- Radu Calinescu,
- Calum Imrie,
- Ravi Mangal,
- Genaína Nunes Rodrigues,
- Corina Păsăreanu,
- Misael Alpizar Santana,
- Gricel Vázquez
We present DeepDECS, a new method for the synthesis of correct-by-construction software controllers for autonomous systems that use deep neural network (DNN) classifiers for the perception step of their decision-making processes. Despite major advances in ...
Test Input Prioritization for Graph Neural Networks
GNNs have shown remarkable performance in a variety of classification tasks. The reliability of GNN models needs to be thoroughly validated before their deployment to ensure their accurate functioning. Therefore, effective testing is essential for ...
Domain-Driven Design for Microservices: An Evidence-Based Investigation
MicroService Architecture (MSA), a predominant architectural style in recent years, still faces the arduous task of identifying the boundaries of microservices. Domain-Driven Design (DDD) is regarded as one of the major design methods for addressing this ...
Characterizing Timeout Builds in Continuous Integration
Compute resources that enable Continuous Integration (CI, i.e., the automatic build and test cycle applied to the change sets that development teams produce) are a shared commodity that organizations need to manage. To prevent (erroneous) builds from ...
Pretrain, Prompt, and Transfer: Evolving Digital Twins for Time-to-Event Analysis in Cyber-Physical Systems
Cyber-physicalnd systems (CPSs), e.g., elevators and autonomous driving systems, are progressively permeating our everyday lives. To ensure their safety, various analyses need to be conducted, such as anomaly detection and time-to-event analysis (the ...
MMO: Meta Multi-Objectivization for Software Configuration Tuning
Software configuration tuning is essential for optimizing a given performance objective (e.g., minimizing latency). Yet, due to the software's intrinsically complex configuration landscape and expensive measurement, there has been a rather mild ...
VarGAN: Adversarial Learning of Variable Semantic Representations
Variable names are of critical importance in code representation learning. However, due to diverse naming conventions, variables often receive arbitrary names, leading to long-tail, out-of-vocabulary (OOV), and other well-known problems. While the Byte-...
Cross-Language Taint Analysis: Generating Caller-Sensitive Native Code Specification for Java
Cross-language programming is a common practice within the software development industry, offering developers a multitude of advantages such as expressiveness, interoperability, and cross-platform compatibility, for developing large-scale applications. As ...
CRPWarner: Warning the Risk of Contract-Related Rug Pull in DeFi Smart Contracts
In recent years, Decentralized Finance (DeFi) has grown rapidly due to the development of blockchain technology and smart contracts. As of March 2023, the estimated global cryptocurrency market cap has reached approximately $949 billion. However, security ...
No Need to Lift a Finger Anymore? Assessing the Quality of Code Generation by ChatGPT
Large language models (LLMs) have demonstrated impressive capabilities across various natural language processing (NLP) tasks, such as machine translation, question answering, summarization, and so on. Additionally, LLMs are also highly valuable in ...
Automated Infrastructure as Code Program Testing
Infrastructure as Code (IaC) enables efficient deployment and operation, which are crucial to releasing software quickly. As setups can be complex, developers implement IaC programs in general-purpose programming languages like TypeScript and Python, ...
TransformCode: A Contrastive Learning Framework for Code Embedding via Subtree Transformation
Artificial intelligence (AI) has revolutionized software engineering (SE) by enhancing software development efficiency. The advent of pre-trained models (PTMs) leveraging transfer learning has significantly advanced AI for SE. However, existing PTMs that ...
Neural Library Recommendation by Embedding Project-Library Knowledge Graph
The prosperity of software applications brings fierce market competition to developers. Employing third-party libraries (TPLs) to add new features to projects under development and to reduce the time to market has become a popular way in the community. ...
Darcy: Automatic Architectural Inconsistency Resolution in Java
Many mainstream programming languages lack extensive support for architectural constructs, such as software components, which limits software developers in employing many benefits of architecture-based development. To address this issue, Java, one of the ...