46 research outputs found

    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

    Combining SOA and BPM Technologies for Cross-System Process Automation

    Get PDF
    This paper summarizes the results of an industry case study that introduced a cross-system business process automation solution based on a combination of SOA and BPM standard technologies (i.e., BPMN, BPEL, WSDL). Besides discussing major weaknesses of the existing, custom-built, solution and comparing them against experiences with the developed prototype, the paper presents a course of action for transforming the current solution into the proposed solution. This includes a general approach, consisting of four distinct steps, as well as specific action items that are to be performed for every step. The discussion also covers language and tool support and challenges arising from the transformation

    A framework for active software engineering ontology

    Get PDF
    The passive structure of ontologies results in the ineffectiveness to access and manage the knowledge captured in them. This research has developed a framework for active Software Engineering Ontology based on a multi-agent system. It assists software development teams to effectively access, manage and share software engineering knowledge as well as project information to enable effective and efficient communication and coordination among teams. The framework has been evaluated through the prototype system as proof-of-concept experiments

    Einsatz semantischer Technologien für die Anforderungsanalyse

    Full text link
    Softwareentwicklung im betrieblichen Kontext erfordert neben dem Zusammenspiel verschiedener Technologien auch die Zusammenarbeit mehrerer Beteiligter. Dank der Einführung von Standards und der damit einhergehenden Vereinheitlichung von Notationen und Schnittstellen wurde in den letzten Jahren das Zusammenspiel der verschiedenen Technolo-gien an vielen Stellen entscheidend vereinfacht. So hat sich beispielsweise UML (Unified Modeling Language) als Standard für den Softwareentwurf etabliert. Ebenfalls wurde eine große Zahl von Methoden und Werkzeugen entwickelt, die zur Unterstützung der Software-entwicklung im Ganzen verwendet werden können oder speziell auf die Unterstützung der Zusammenarbeit der Beteiligten ausgerichtet sind. Trotz dieser Verbesserungen bleiben einige Probleme im Spannungsumfeld der Softwareentwicklung bestehen. So wird während des Softwareentwicklungsprozesses eine Vielzahl an Artefakten erstellt, ohne dass die Nachver-folgbarkeit zwischen diesen Artefakten dauerhaft sichergestellt wird

    Uma abordagem para representação e rastreio de artefatos.

    Get PDF
    Rastreabilidade de Requisitos refere-se ao processo de rastreio de requisitos ao longo de todo o ciclo de vida de um software. Visto que um grande conjunto de informações é usado e produzido e tais devem ser rastreadas, ela é essencial ao processo de desenvolvimento de software. Não obstante, uma vez que a complexidade dos sistemas desenvolvidos cresce, a miríade de artefatos relacionados também cresce. Sendo assim, engenheiros de requisitos são encarregados de rastrear requisitos em diferentes níveis de abstrações. Neste contexto, vale ressaltar que não há um consenso acerca do processo de rastreabilidade e, como consequência, práticas de rastreabilidade de requisitos não podem ser unificadas em diferentes ambientes organizacionais. Propor uma abstração comum para rastreabilidade de requisitos e também identificar aspectos chave do processo de rastreabilidade são reconhecidos como notáveis tópicos de pesquisa dentre os grandes desafios da rastreabilidade de requisitos. Sendo assim, no presente trabalho, propomos uma Linguagem de Representação de Rastreabilidade (TRL), que provê abstrações para a rastreabilidade de requisitos. Tal linguagem é então explorada por um processo de rastreabilidade, centrado na mesma. Desta forma, ao discutirmos detalhadamente as fases do processo proposto, atores, responsabilidades, entradas e saídas esperadas bem como contratos e interfaces que regem tal processo, nós investigamos aspectos comuns do processo de rastreabilidade. A avaliação do presente trabalho considera que: (i) a representação proposta foi avaliada considerando critérios de legibilidade e redigibilidade, ou seja, quão compreensível ela é; e (ii) o processo proposto foi avaliado considerando sua performance e eficiência, isto é, quão bem o processo apoia atividades beneficiadas pela rastreabilidade de requisitos. Como resultados, observamos que a linguagem e suas construções foram avaliadas como de fácil leitura e escrita e que a linguagem é uma abordagem viável para abstrair rastreabilidade de requisitos. Além disso, observamos que o processo proposto possui melhor performance e eficiência quando comparado à um processo ad hoc. Dados os resultados observados, a abordagem proposta (linguagem e processo) fornece abstrações para o processo de rastreabilidade de requisitos bem como fomentar a discussão acerca dos principais aspectos do processo de rastreabilidade, desta forma, promovendo a rastreabilidade de requisitos portável.Requirements Traceability (RT) refers to the process of tracing requirements through the software development life-cycle. It is essential for the software development process because a lot of information is used and produced and it should be kept related or traceable. Nevertheless , as the complexity of a system increases, themyriad of related artifacts also increases. Therefore, one is encumbered of tracing requirements through different abstraction levels. Moreover, there is not a consensus about the traceability process and, as a consequence, requirements traceability practices cannot be unified across different organizational settings. Proposing a common abstraction to requirements traceability and also identifying common aspects to the requirements traceability process have been recognized as remarkable research topics of the grand challenges of requirements traceability. Therefore, is this work, we propose a Traceability Representation Language (TRL), which provides abstractions to requirements traceability. Such representation is then exploited by a requirements traceability process centered on it. Thus, by thoroughly discussing process’ phases, activities, actors, responsibilities, and input/output artifacts as well as traceability contracts, which govern process’ phases and how they intercommunicate, we investigate common aspects of requirements traceability. The evaluation of the present work was twofold: (i) the proposed language was evaluated considering its readability and writability, i.e. how comprehensible it is; and (ii) the proposed process was evaluated regarding its performance and effectiveness, i.e. how well it supports requirements traceability tasks. As a result, we observed that the language’s constructions were evaluated as easily read/written and that it is a feasible approach to provide an abstraction to requirements traceability. Moreover,we observed that the proposed process improves the performance and efficiency of the requirements traceability process, while maintaining the same accuracy of other approaches. Therefore, the proposed approach (language and process) is feasible to address abstractions to requirements traceability as well as foster the discussion of major aspects of the requirements traceability process, thus portable traceability can be addressed, i. e. how requirements traceability techniques can be used across different projects or even organizations

    Designing Round-Trip Systems by Change Propagation and Model Partitioning

    Get PDF
    Software development processes incorporate a variety of different artifacts (e.g., source code, models, and documentation). For multiple reasons the data that is contained in these artifacts does expose some degree of redundancy. Ensuring global consistency across artifacts during all stages in the development of software systems is required, because inconsistent artifacts can yield to failures. Ensuring consistency can be either achieved by reducing the amount of redundancy or by synchronizing the information that is shared across multiple artifacts. The discipline of software engineering that addresses these problems is called Round-Trip Engineering (RTE). In this thesis we present a conceptual framework for the design RTE systems. This framework delivers precise definitions for essential terms in the context of RTE and a process that can be used to address new RTE applications. The main idea of the framework is to partition models into parts that require synchronization - skeletons - and parts that do not - clothings. Once such a partitioning is obtained, the relations between the elements of the skeletons determine whether a deterministic RTE system can be built. If not, manual decisions may be required by developers. Based on this conceptual framework, two concrete approaches to RTE are presented. The first one - Backpropagation-based RTE - employs change translation, traceability and synchronization fitness functions to allow for synchronization of artifacts that are connected by non-injective transformations. The second approach - Role-based Tool Integration - provides means to avoid redundancy. To do so, a novel tool design method that relies on role modeling is presented. Tool integration is then performed by the creation of role bindings between role models. In addition to the two concrete approaches to RTE, which form the main contributions of the thesis, we investigate the creation of bridges between technical spaces. We consider these bridges as an essential prerequisite for performing logical synchronization between artifacts. Also, the feasibility of semantic web technologies is a subject of the thesis, because the specification of synchronization rules was identified as a blocking factor during our problem analysis. The thesis is complemented by an evaluation of all presented RTE approaches in different scenarios. Based on this evaluation, the strengths and weaknesses of the approaches are identified. Also, the practical feasibility of our approaches is confirmed w.r.t. the presented RTE applications
    corecore