466 research outputs found
Improving information retrieval-based concept location using contextual relationships
For software engineers to find all the relevant program elements implementing a business concept, existing techniques based on information retrieval (IR) fall short in providing adequate solutions. Such techniques usually only consider the conceptual relations based on lexical similarities during concept mapping. However, it is also fundamental to consider the contextual relationships existing within an application’s business domain to aid in concept location. As an example, this paper proposes to use domain specific ontological relations during concept mapping and location activities when implementing business requirements
Semantically Enhanced Software Traceability Using Deep Learning Techniques
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.Comment: 2017 IEEE/ACM 39th International Conference on Software Engineering
(ICSE
Improving Traceability Link Recovery Using Fine-grained Requirements-to-Code Relations
Traceability information is a fundamental prerequisite for many essential software maintenance and evolution tasks, such as change impact and software reusability analyses. However, manually generating traceability information is costly and error-prone. Therefore, researchers have developed automated approaches that utilize textual similarities between artifacts to establish trace links. These approaches tend to achieve low precision at reasonable recall levels, as they are not able to bridge the semantic gap between high-level natural language requirements and code. We propose to overcome this limitation by leveraging fine-grained, method and sentence level, similarities between the artifacts for traceability link recovery. Our approach uses word embeddings and a Word Mover\u27s Distance-based similarity to bridge the semantic gap. The fine-grained similarities are aggregated according to the artifacts structure and participate in a majority vote to retrieve coarse-grained, requirement-to-class, trace links. In a comprehensive empirical evaluation, we show that our approach is able to outperform state-of-the-art unsupervised traceability link recovery approaches. Additionally, we illustrate the benefits of fine-grained structural analyses to word embedding-based trace link generation
OntoTrace : a tool for supporting trace generation in software development by using ontology-based automatic reasoning
Traceability in software development has gained interest due to its software maintainability and quality assurance benefits. Artifacts such as code, requirements, mockups, test cases, among others, are feasible trace sources/targets during the software development process. Existing scientific approaches support tasks like identifying untraced artifacts, establishing new traces, and validating existing traces. However, most approaches require input existing traceability data or are restricted to a certain application domain hindering their practical application. This contemporary challenge in information systems engineering calls for novel traceability solutions. In this paper, we present OntoTrace: a tool for supporting traceability tasks in software development projects by using ontology-based automatic reasoning. OntoTrace allows software development teams for inferring traceability-related data such as i) which are the traceable source/target artifacts; ii) which artifacts are not yet traced; and iii) given a specific artifact, which are the possible traces between it and other artifacts. We demonstrate how OntoTrace works in the context of the Swiss startup LogicFlow AG, supporting the traceability between functional/non-functional requirements and user interface test cases. We conclude the paper by reflecting on the experience from applying the approach in practice, and we draw on future challenges and next research endeavors
Pembangunan Link Penelusuran Kebutuhan Fungsional Dan Kode Sumber Berdasarkan Kedekatan Semantik Dan Struktur Kode Sumber Berorientasi Objek
Link penelusuran antara dokumen kebutuhan dan kode sumber sangat
membantu dalam proses pengembangan dan pemeliharaan perangkat lunak.
Dalam proses pengembangan dan pemeliharaan perangkat lunak, pengembang
melakukan perubahan pada kode sumber tetapi sering tidak memperbarui
dokumen-dokumen yang menyertai kode sumber. Adanya link penelusuran antara
dokumen kebutuhan dengan kode sumber akan meningkatkan kecepatan
menemukan bagian mana dari kode sumber yang perlu diubah ketika ada
perubahan kebutuhan. Link penelusuran membantu pengembang dalam
memahami perangkat lunak yang tidak memiliki dokumen perancangan yang
lengkap seperti pada kode sumber terbuka.
Dalam kode sumber, suatu method mewakili suatu aksi yang dilakukan untuk
menyelesaikan suatu kebutuhan pengguna. Beberapa method dan class bekerja
sama, satu method memanggil method lain dengan megirimkan parameter dalam
method invocation(pemanggilan method). Pada penelitian ini diusulkan suatu
metode untuk membangun link penelusuran antara kebutuhan dan kode sumber
menggunakan pemrosesan bahasa alami pada kode sumber dan kedekatan
semantik. Kedekatan semantik dihitung antara dokumen kebutuhan dengan
method signature dan method invocation. Pemrosesan bahasa alami dilakukan
pada semua deklarasi method dalam kode sumber. Selanjutnya dihitung kedekatan
semantik antara dokumen kebutuhan dengan phrase hasil pemrosesan bahasa
alami untuk menentukan method-method kandidat link penelusuran. Selanjutnya
dilakukan penelusuran pada kode sumber untuk menemukan method-method yang
dieksekusi secara langsung maupun tidak langsung oleh method kandidat. Nilai
akhir kedekatan semantik dihitung dari kedekatan semantik antara kebutuhan
dengan method kandidat dan method-method yang dieksekusi.
Dengan metode ini diharapkan bisa menemukan bagaimana dan bagian mana
dari kode sumber yang menjalankan suatu kebutuhan. Penggunaan metode ini
diharapkan bisa meningkatkan keakuratan dalam membangun link penelusuran
antara kebutuhan dan kode sumber.
============================================================
Traceability link between requirement document and source code is very
helpful in software development and maintenance process. In the process,
developer make changes to the source code but often forget to update documents
that accompanies the source code. The existence of links between requirement
document and source code will increase the speed of finding which parts of the
source code that need to be changed when changes are made to requirement.
Traceability link helps developers to understand the software that does not have a
complete design document as in open source software.
In the source code, a method represents an action performed to complete a
requirement. Some method and class work together, one method calls another
method with the parameter in the method invocation. This research proposed a
method to build links between requirement and source code using natural
language processing on the source code and semantic similarity. Semantic
similarity is calculated between requirement document with method signature and
method invocation. Natural language processing is done on all method
declarations in the source code. Further semantic similarity computed between
requirement document and natural language phrase to determine the methodmethod
of candidate link. Next do a search in the source code to find the methodmethod
to be executed directly or indirectly by the method candidates. The final
value is calculated from the semantic similarity between requirement and method
of candidates link and invoked method.
This method is expected to be able to find how and which parts of the source
code that runs a requirement. The use of this method is expected to be able to
increase accuracy in building links between requirement and source code
A Tool-based Semantic Framework for Security Requirements Specification
Attaining high quality in security requirements specification requires first-rate
professional expertise, which is scarce. In fact, most organisations do not include core security
experts in their software team. This scenario motivates the need for adequate tool support for
security requirements specification so that the human requirements analyst can be assisted to
specify security requirements of acceptable quality with minimum effort. This paper presents a
tool-based semantic framework that uses ontology and requirements boilerplates to facilitate
the formulation and specification of security requirements. A two-phased evaluation of the
semantic framework suggests that it is usable, leads to reduction of effort, aids the quick
discovery of hidden security threats, and improves the quality of security requirements
Conclave: ontology-driven measurement of semantic relatedness between source code elements and problem domain concepts
Software maintainers are often challenged with source code changes to improve software systems, or eliminate defects, in unfamiliar programs. To undertake these tasks a sufficient understanding of the system (or at least a small part of it) is required. One of the most time consuming tasks of this process is locating which parts of the code are responsible for some key functionality or feature. Feature (or concept) location techniques address this problem. This paper introduces Conclave, an environment for software analysis, and in particular the Conclave-Mapper tool that provides a feature location facility. This tool explores natural language terms used in programs (e.g. function and variable names), and using textual analysis and a collection of Natural Language Processing techniques, computes synonymous sets of terms. These sets are used to score relatedness between program elements, and search queries or problem domain concepts, producing sorted ranks of program elements that address the search criteria, or concepts. An empirical study is also discussed to evaluate the underlying feature location technique.info:eu-repo/semantics/publishedVersio
- …