Presentation is loading. Please wait.

Presentation is loading. Please wait.

ARCHITECTURAL RECOVERY TO AID DETECTION OF ARCHITECTURAL DEGRADATION Joshua Garcia*, Daniel Popescu*, Chris Mattmann* †, Nenad Medvidovic*, and Yuanfang.

Similar presentations


Presentation on theme: "ARCHITECTURAL RECOVERY TO AID DETECTION OF ARCHITECTURAL DEGRADATION Joshua Garcia*, Daniel Popescu*, Chris Mattmann* †, Nenad Medvidovic*, and Yuanfang."— Presentation transcript:

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]


Download ppt "ARCHITECTURAL RECOVERY TO AID DETECTION OF ARCHITECTURAL DEGRADATION Joshua Garcia*, Daniel Popescu*, Chris Mattmann* †, Nenad Medvidovic*, and Yuanfang."

Similar presentations


Ads by Google