scispace - formally typeset
Open AccessProceedings ArticleDOI

Obtaining ground-truth software architectures

TLDR
This paper's experience in recovering the ground-truth architectures of four open-source systems is presented, the primary insights gained in the process are discussed, the characteristics of the obtained ground- Truth architectures are analyzed, and the involvement of the systems' engineers is reflected in a limited but critical fashion.
Abstract
Undocumented evolution of a software system and its underlying architecture drives the need for the architecture's recovery from the system's implementation-level artifacts. While a number of recovery techniques have been proposed, they suffer from known inaccuracies. Furthermore, these techniques are difficult to evaluate due to a lack of “ground-truth” architectures that are known to be accurate. To address this problem, we argue for establishing a suite of ground-truth architectures, using a recovery framework proposed in our recent work. This framework considers domain-, application-, and context-specific information about a system, and addresses an inherent obstacle in establishing a ground-truth architecture - the limited availability of engineers who are closely familiar with the system in question. In this paper, we present our experience in recovering the ground-truth architectures of four open-source systems. We discuss the primary insights gained in the process, analyze the characteristics of the obtained ground-truth architectures, and reflect on the involvement of the systems' engineers in a limited but critical fashion. Our findings suggest the practical feasibility of obtaining ground-truth architectures for large systems and encourage future efforts directed at establishing a large scale repository of such architectures.

read more

Citations
More filters
Proceedings ArticleDOI

A comparative analysis of software architecture recovery techniques

TL;DR: This paper uses a set of eight architectures that have been recovered from open-source systems and independently, carefully verified as ground truths in performing a comparative analysis of six state-of-the-art software architecture recovery techniques.
Proceedings ArticleDOI

An empirical study of architectural change in open-source software systems

TL;DR: This study reveals several new findings regarding the frequency of architectural changes in software systems, the common points of departure in a system's architecture during maintenance and evolution, the difference between system-level and component-level architectural change, and the suitability of a systems' implementation-level structure as a proxy for its architecture.
Proceedings ArticleDOI

Comparing software architecture recovery techniques using accurate dependencies

TL;DR: The results suggest that in addition to architecture recovery techniques, the accuracy of dependencies used as their inputs is another factor to consider for high recovery accuracy, and more accurate recovery techniques are needed.
Journal ArticleDOI

Measuring the Impact of Code Dependencies on Software Architecture Recovery Techniques

TL;DR: The results of the evaluation of nine architecture recovery techniques and their variants suggest that using accurate symbol dependencies has a major influence on recovery quality, and more accurate recovery techniques are needed.
Journal ArticleDOI

A large-scale study of architectural evolution in open-source software systems

TL;DR: This paper introduces an architecture recovery framework, ARCADE, for conducting large-scale replicable empirical studies of architectural change across different versions of a software system, and utilizes ARCADE to conduct an empirical study of changes found in software architectures spanning several hundred versions of 23 open-source systems.
References
More filters
Journal ArticleDOI

MapReduce: simplified data processing on large clusters

TL;DR: This presentation explains how the underlying runtime system automatically parallelizes the computation across large-scale clusters of machines, handles machine failures, and schedules inter-machine communication to make efficient use of the network and disks.
Proceedings ArticleDOI

The Hadoop Distributed File System

TL;DR: The architecture of HDFS is described and experience using HDFS to manage 25 petabytes of enterprise data at Yahoo! is reported on.
Book

Software Architecture: Foundations, Theory, and Practice

TL;DR: This tutorial affords the participant an extensive treatment of the field of software architecture, its foundation, principles, and elements, including those mentioned above, and looks at emerging and likely future trends in this field.

Software Reflexion Models: Bridging the Gap Between Source and High-Level Models

TL;DR: In this article, an approach that helps an engineer use a high-level model of the structure of an existing software system as a lens through which to see a model of that system's source code is presented.
Proceedings ArticleDOI

Software reflexion models: bridging the gap between source and high-level models

TL;DR: An approach is developed that helps an engineer use a high-level model of the structure of an existing software system as a lens through which to see a model of that system's source code.
Related Papers (5)