Nowadays, many systems produce all kinds of logging information about their operation. We call this software operation data. Architecture mining focuses on the analysis of this data to evaluate and analyse software architecture to foster evolution.

Architecture mining focuses on five main activities:

  • Runtime analysis: analyzing software operation data to evaluate whether the running software adheres to the quality attributes defined in the intended architecture;
  • Architecture conformance: analyzing software operation data in combination with software artifacts to validate whether the operation adheres to the intended architecture, and to find deviations;
  • Architecture reconstruction: analyzing software operation data and software artifacts to re-engineer the realized architecture;
  • Evolution analysis: complaring the intended and realized architecture to unravel changes;
  • Architecture improvement recommendations: suggesting improvements based on the evidence revealed by architecture mining.