Download presentation
Presentation is loading. Please wait.
Published bySusanna York Modified over 9 years ago
1
ARCHITECTURAL RECOVERY TO AID DETECTION OF ARCHITECTURAL DEGRADATION Joshua Garcia*, Daniel Popescu*, Chris Mattmann* †, Nenad Medvidovic*, and Yuanfang Cai ‡ *University of Southern California, † Jet Propulsion Laboratory, ‡ Drexel University
2
Architectural Degradation Software maintenance tends to dominate Maintaining architectures Architectural Degradation Architectural drift and erosion Architectural smells Architectural Recovery
3
Smells and Restructuring 3 Smells are patterns in software systems that violate maintainability principles Help identify restructuring opportunities Restructuring: the transformation from one form of a software system to another without changing its external behavior. Have proven quite useful to software engineers Code smells are implementation structures that violate maintainability principles Long parameter lists Duplicated code Poor use of software architecture-level abstractions Architectural smells are combinations of architectural constructs that violate maintainability principles
4
iRODS – Prescriptive Architecture 4 Source: https://www.irods.org/index.php/Introduction_to_iRODS
5
iRODS – Descriptive Architecture 5 Two-way dependency One-way dependency Component Layer Legend:
6
iRODS – Prescriptive and Descriptive Architecture
7
Architectural Smells in iRODS 7 Bloated Components Dependency Inversion Two-way dependency Fully connected graph One-way dependency Component Layer Legend: Skipping Layers Excessive Load on Component Dependency Cycle
8
Outline Motivation Existing Architectural Recovery Techniques Our Approach To Architectural Recovery Current Status
9
iRODS – Descriptive Architecture 9 Two-way dependency One-way dependency Component Layer Legend:
10
Component Recovery 10 Existing techniques Automated Heavy focus on structural dependencies WCA, LIMBO, ACDC, Bunch, etc. Can be inaccurate Do not represent concerns Core Library Network Communication Low-level Fabric
11
iRODS – Descriptive Architecture 11 Two-way dependency One-way dependency Component Layer Legend:
12
Recovery Techniques for Connectors Connector types Interaction Application- independent Non-functional properties Patterns and queries for connectors ManSART, cliches, XML- based, X-Ray, etc. Time-consuming, manual, and error-prone iRODS Fuse Server Rule Engine RPCStream Event-based
13
Outline Motivation Existing Architectural Recovery Techniques Our Approach To Architectural Recovery Current Status
14
Approach and its Goals Novel technique for recovering components and connectors Goals: Automation Accuracy Understandability
15
Overall Approach Source Code Concern Extraction Structural Fact Extraction Concerns Structural Facts Application Specificity Classification for Concerns Brick Recovery Concerns with Application Specificity Bricks Component and Connector Classification Component/ Connector Model
16
Representing Concerns 16 Topic Models A statistical language model The source code has a set of words called the vocabulary Topic – probability distribution over words Our representation of concerns Document-topic distribution – probability distribution over topics The extent to which a document (component or connector) has a concern
17
Using Learning for Component/ Connector Classification 17 Selection of features Application-specific or application-independent concerns Structural features Design patterns
18
Outline Motivation Existing Architectural Recovery Techniques Our Approach To Architectural Recovery Current Status
19
Current Status Prototyped and preliminary experiments Variety of Systems Apache OODT, Hadoop, Bash, Linux, etc. Java and C systems
20
Thank You Questions?
21
Early Quasi-Automated Component Identification 21 Semi-automated method [Koschke 2000] Evaluated many early clustering techniques Recall Combined clustering techniques and steered by engineer Bunch tool [Mancoridis 1999, Mitchell and Mancoridis 2006] Search algorithms Graph partitioning The ACDC (Algorithm for Comprehension-Driven Clustering) [Tzerpos and Holt 2000] Structural patterns Labeling
22
Recent Automated Component Identification Techniques 22 scaLable InforMation BOttleneck (LIMBO) [Andritsos et al. 2005] Minimize information loss Non-structural features Evaluated against ACDC, Bunch, and simple hierarchical clustering algorithms Weighted Combined Algorithm (WCA) [Maqbool and Babri 2007] Hierarchical agglomerative clustering Simpler similarity measure Improved correctness compared to LIMBO, but still low Precision 51%-62% Recall 13%-22%
23
Connector Identification 23 ManSART [Harris 1995] Architectural Styles Recognizers Using cliches [Fiutem et al. 1996] Use data flow analysis for more relevant detail X-Ray [Mendonca and Kramer 2001] Hybrid styles Using XML-based patterns [Pinzger and Gall 2002] ARTISAn [Jakobac et al. 2005]
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.