Evaluating the Architectural Coverage of Runtime Traces

  • This post contains a downloadable version of my Bachelor Thesis I wrote to complete my studies in computer science at the Technical University Kaiserslautern. The thesis was conducted externally at the Product-Line Engineering Department of the Fraunhofer Institute for Experimental Software Engineering in Kaiserslautern.

    Abstact

    Software systems are becoming more and more omnipresent and pervasive in our daily environment. A life without software systems is not imaginable any-more. As a matter of fact it is important that software systems meet today’s high quality requirements. To achieve those, it is of paramount importance that the evolution of existing systems as well as the construction of new systems is carried out very carefully. To deliver good software, it is a prerequisite that development teams precisely know how systems behave at runtime, thereby enabling them to check compliance between the intended and the actual system behaviour.

    This thesis contributes to the comparison process between the runtime behaviour and the static architecture of a software system. In the conceptual part of this work, the different elements of a software system are partitioned into categories. Furthermore, algorithms to perform this classification are introduced. These are applied to a set of runtime traces and the resulting classification of components and relations is used to determine the architectural coverage of the traces. The architectural coverage is a metric that measures the degree to which elements in recorded runtime behaviour (e.g. in a trace) capture elements of the static structure of the software system´s architecture. Because these traces are generally created by running dynamic test cases, it is possible to indirectly make a statement on the quality of the test cases.

    In the practical part of this work, the technical feasibility of the theoretical concepts is proven in form of a prototype application. This prototype is realized as an extension to the Software Architecture Visualization and Evaluation tool (SAVE), an application developed by the Fraunhofer Institute for Experimental Software Engineering in Kaiserslautern.

    The prototype supports importing, visualizing and evaluating dynamic runtime data and can detect common, unique and variable components among a set of runtime traces. Based on this information, the tool computes the degree of coverage for each type of components. Furthermore, the tool enables the abstraction and visualization of traces, thus offering an approach to support architecture reconstruction.

    Presentation – Colloquium

    Download
    PDF 16×16 Evaluating the Architectural Coverage of Runtime Traces – Thesis
    PDF 16×16 Evaluating the Architectural Coverage of Runtime Traces – Presentation

  • 0 Responses to “Evaluating the Architectural Coverage of Runtime Traces”


    1. No Comments

    Leave a Reply