Semantically Enhanced Software Traceability Using Deep Learning Techniques
By Jin L.C. Guo, Jinghui Cheng, Jane Cleland-Huang. 2017
287 citations recorded by the source corpus.
In most safety-critical domains the need for traceability is prescribed by certifying bodies. Trace links are generally created among requirements, design, source code, test cases and other artifacts, however, creating such links manually is time consuming and error prone. Automated solutions use information retrieval and machine learning techniques to generate trace links, however, current techniques fail to understand semantics of the software artifacts or to integrate domain knowledge into the tracing process and therefore tend to deliver imprecise and inaccurate results. In this paper, we present a solution that uses deep learning to incorporate requirements artifact semantics and domain knowledge into the tracing solution. We propose a tracing network architecture that utilizes Word Embedding and Recurrent Neural Network (RNN) models to generate trace links. Word embedding learns word vectors that represent knowledge of the domain corpus and RNN uses these word vectors to learn the sentence semantics of requirements artifacts. We trained 360 different configurations of the tracing network using existing trace links in the Positive Train Control domain and identified the Bidirectional Gated Recurrent Unit (BI-GRU) as the best model for the tracing task. BI-GRU significantly out-performed state-of-the-art tracing methods including the Vector Space Model and Latent Semantic Indexing.
Subfields: Computer Networks and Communications, Information Systems
How researchers see this paper
The researchers whose trusted networks rank it highest, strongest advocate first. Every researcher gets a different order.
In Computer Networks and Communications
- Miltiadis Allamanis
- Koushik Sen
- Patrick Fernandes
- Marc Brockschmidt
- Hongyu Zhang
- Artur Andrzejak
- Satish Chandra
- Hailong Sun
In Information Systems
- Koushik Sen
- Miltiadis Allamanis
- Gabriele Bavota
- Marc Brockschmidt
- Michael Pradel
- Michele Tufano
- Satish Chandra
- Hongyu Zhang
Citations in the corpus
- Learning-Based Recursive Aggregation of Abstract Syntax Trees for Code Clone Detection (2019, methodology): “[22], [23] or even mixed vocabularies of code tokens and natural language words [24].”
- A Novel Neural Source Code Representation Based on Abstract Syntax Tree (2019, background): “Guo et al. [65] proposes a RNN based neural network to generate trace links.”
- On Learning Meaningful Code Changes Via Neural Machine Translation (2019, methodology): “Guo et al. develops a DL approach using RNNs and word embeddings to learn the sentence semantics of requirement artifacts, which helps to create traceability links in software projects [42].”
- Structured Neural Summarization (2018, methodology): “, 2018), traceability (Guo et al., 2017), and detection of redundant method comments (Louis et al.”
- SySeVR: A Framework for Using Deep Learning to Detect Software Vulnerabilities (2018, methodology): “CNN has been used for software defect prediction [16] and locating buggy source code [51]; DBN has been used for software defect prediction [19], [20]; RNN has been used for vulnerability detection [11], [15], [50], software traceability [12], code clone detection [13], and recognizing functions in ”
- When deep learning met code search (2019, background): “We suggest considering the extent to which a training corpus resembles eventual user queries for optimal results, and exploring the possibility of better training corpora, rather than assuming a code/docstring corpus will provide the best performance.”
- Automatically generating commit messages from diffs using neural machine translation (2017, unknown): “Similarly, deep learning algorithms are introduced in bug localization [30], software traceability [15], and code suggestions [54].”