Presentation is loading. Please wait.

Presentation is loading. Please wait.

Architecture Recovery (a special, and especially important type of architectural analysis)

Similar presentations


Presentation on theme: "Architecture Recovery (a special, and especially important type of architectural analysis)"— Presentation transcript:

1 Architecture Recovery (a special, and especially important type of architectural analysis)

2

3 Temporal Aspect of Architecture Design decisions are made and unmade over a system’s lifetime – At time t a system has only one architecture Prescriptive architecture (PA) captures design decisions made prior to system construction – as-designed Descriptive architecture (DA) describes how the system has been built – as-implemented

4 iRODS – Descriptive Architecture How Many Systems Start off iRODS – Prescriptive Architecture …and End up

5 What Happened? Software decay – Drift – introduction of design decisions into a system that are not encompassed or implied by its architectural design – Erosion – introduction of design decisions into a system that violate its architectural design Decaying systems begin to “smell”  More on this later…

6 Another Example Hadoop Distributed File System – Prescriptive Architecture HDFS – Descriptive Architecture

7 Hadoop – HDFS + MapReduce

8 Hadoop – Complete Architecture

9 Hadoop – Complete Architecture, Another View

10 Architectural Decay Can exist both in the design and code Software smell Commonly made design or implementation decision Negatively impacts your system’s lifecycle properties It is not a bug – it doesn’t break your system It is a manifestation of technical debt Inspired by Refactoring: Improving the Design of Existing Code by Martin Fowler

11 A Catalogue of Architectural Smells Brick Concern Overload Brick Use Overload Brick Dependency Cycle Unused Interface Ambiguous Interface Duplicate Component Functionality Scattered Functionality Component Envy Connector Envy Connector Chain Extraneous Adjacent Connector …

12 Examples of Smells from Real Systems This document contains no technical data subject to the EAR or the ITAR.

13 Linux Architecture

14 Linux – Memory Manager Subsystem

15 Bash Architecture

16 Bash – Job Control Component

17 Bash – Commands Component

18 Hadoop – Complete Architecture

19 Hadoop – Dependency Cycle

20 Hadoop – Component Use Overload

21 Hadoop – Brick Concern Overload Value Aggregator

22 Hadoop – * Envy InterDataNode Protocol

23 What Can Be Done? Architectural recovery and then refactoring – The process of determining a system’s architecture from its implementation-level artifacts – Source code, executable files, Java.class files, … Difficult in practice – Size of code bases – Irrelevant details – Misleading details – Missing information – Hard to objectively assess existing techniques Still, many automated solutions available

24 Example: ShareDraw – Recovered Application Class Diagram

25 Clustering ShareDraw’s Implementation – Isolated Classes

26 Clustering ShareDraw’s Implementation – Generalization, Aggregation, Composition

27 Clustering ShareDraw’s Implementation – Two-Way Associations

28 Clustering ShareDraw’s Implementation – Recovered Partial Configuration FrameWindows_Mgr Dialog_Mgr View_Mgr Summary_Mgr DrawDocument_Mgr +m_pSummInfo DrawTool_Mgr DrawObj_Mgr Server

29 Existing Recovery Techniques ACDC – Algorithm for Comprehension-Driven Clustering – Structural pattern-based clustering ARC – Architecture Recovery Using Concerns – Concern-based hierarchical clustering based on similarity measure Bunch-NAHC & Bunch-SAHC – Hill-climbing algorithm for maximizing Modularization Quality LIMBO – scaLable InforMation BOttleneck – Probabilistic hierarchical clustering WCA-UE & WCA-UENM – Weigted Combined Algorithm – Dependency-based hierarchical clustering ZBR – Zone-Based Recovery – Hierarchical clustering based on textual information

30 Multiple Views Bash from ACDC Bash from BunchBash from ZBR Bash “Ground Truth”

31 Empirical Comparison Eight architectures of six open-source systems Obtained ground-truths for each ArchStudio 4 IDE Java 280K 54 comp. Bash 1.14.4 OS Shell C 70K 25 Hadoop 0.19.0 Data Prc Java 200K 68 Linux-C 2.0.27 OS C 750K 7 Linux-D 2.0.27 OS C 750K 120 Mozilla-C 1.3 Browser C/C++ 4M 10 Mozilla-D 1.3 Browser C/C++ 4M 233 OODT 0.2 Data Mgt Java 180K 217

32 Proximity to Ground Truth

33 Average Proximity 45%

34 Cluster Comparison

35 Average Cluster Similarity 20%

36 What Does This Mean? Architecture is multi-faceted Multiple ground-truths per system Different abstraction levels may be appropriate Architects may not really know what goes on in their system


Download ppt "Architecture Recovery (a special, and especially important type of architectural analysis)"

Similar presentations


Ads by Google