ComputingComputer ScienceVisualizationData VisualizationSoftware EngineeringSystems ArchitectureReverse EngineeringSoftware ArchitectureSoftware DesignSoftware EvolutionSoftware ModelingArchitecture EvolutionArchitecture RecoverySoftware Evolution AnalysisSoftware Evolution VisualizationSoftware ReengineeringSoftware Reverse Engineering
Reverse engineering reconstructs a project's components and their relationships to produce higher‑level representations, and while visualization and exploratory navigation aid this process, a software system is embedded within a broader ecosystem of projects developed by organizations, research groups, or open‑source communities. The authors propose extending reverse engineering from single systems to entire software ecosystems. They propose a methodology that visualizes high‑level structural and evolutionary aspects of an ecosystem, then allows top‑down exploration to project‑level architectural views, supported by tools for ecosystem‑ and intra‑project analysis.
Reverse engineering is the process of recovering a projectpsilas components and the relationships between them with the goal of creating representations of the project at a higher level of abstraction. When dealing with the large amounts of information that are analyzed during reverse engineering visualization and exploratory navigation are important tools. However, a software system does not exist by itself. Instead, a project is part of a larger software ecosystem of projects that is developed in the context of an organization, a research group of an open-source community. In our work, we argue that reverse engineering an ecosystem is a natural and complementary extension to the traditional single system reverse engineering. We propose a methodology based on visualization, top-down exploration, architecture recovery and software evolution analysis for the reverse engineering software ecosystems. Our methodology starts with visualizing high-level structural and evolutionary aspects of the ecosystem from which the reverse engineer can navigate to views which present architectural aspects of the individual projects. To support our approach we implemented tool support for analyzing the ecosystem level as well as the intra-project level.
20
David Lorge Parnas · International Conference on Software Engineering · 1994 · 667 citations
Computing, Computer Science, Aging +10
Metrics and laws of software evolution-the nineties view
M. M. Lehman, J.F. Ramil, Paul Wernick et al. · 2002 · 557 citations