466 research outputs found

    Improving information retrieval-based concept location using contextual relationships

    Get PDF
    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

    Full text link
    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

    Managing technical debt through software metrics, refactoring and traceability

    Get PDF

    Improving Traceability Link Recovery Using Fine-grained Requirements-to-Code Relations

    Get PDF
    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

    Get PDF
    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

    Get PDF
    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

    Get PDF
    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

    Get PDF
    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
    • …
    corecore