Download presentation
Presentation is loading. Please wait.
Published byDorothy Newton Modified over 8 years ago
1
Architecture Recovery (a special, and especially important type of architectural analysis)
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.