Cataloging and Detecting Architectural Bad Smells Joshua Garcia, Daniel Popescu, and Nenad Medvidovic, University of Southern California Yuanfang Cai, Drexel University Motivation – Refactoring Architecture • Successful systems are maintained over multiple years • System’s Life-Cycle Properties worsen over time • • • • Understandability Testability Extensibility Reusability • Restructuring/Refactoring helps to improve life-cycle properties • Code Smells • When and where to refactor a software system’s architecture? 2 Motivation – iRODS - Prescriptive Source: https://www.irods.org/index.php/Introduction_to_iRODS 3 Motivation – iRODS - Descriptive 4 Contribution and Goals • Categorization of Architectural Smells • • • • Separation of Concerns Coupling and Cohesion Novel Architectural Recovery Technique • • • Identification of Elements Concern Meta-Classification Novel Architecture Representation • • • Components, Connectors, Interfaces, Data Elements, Concerns Extended Augmented Constraint Network Design Structure Matrix Architectural Smell Detection 5 Connector Envy - Example • Component exhibiting interaction-related functionality that should be delegated to connector • Reusability, understandability, testability • StrategyAnalyzerAgent from Emergency Response System 6 Architectural Recovery for Smells • Component identification • • Hierarchical clustering Concerns through topic modeling • SAA – “strategy,” “rule,” “region” • Connector identification • Pattern matching, Supervised Learning • Interface and Data Element Identification • Concern Meta-classification • • Application-specific or application-independent concern Supervised Learning 7 Component Identification 1 f1, f2, … fn 2 f1, f2, … fn n f1, f2, … fn 8 Component Identification 1 0, 1, … 1 2 0, 1, … 0 . . . n 1, 0, … 1 9 Component Identification 1 0, 1, … 1 Cluster Cluster 2 0, 1, … 0 1, 0, … 0 3. 1, . 1, … 0 . n 1, 0, … 1 1, 1, … 1 4 … n-1 10 Component Identification Cluster 1 1 Component B D A Cluster 2 2 Component E C 11 Concerns through Topic Modeling Component 1 Stream UI Component 2 Events Weather 12 Concerns through Topic Modeling Word Word Probability Probability Send Temperature 0.2 0.7 Receive Wind 0.4 0.1 Event Humid 0.4 0.2 Component 2 Events Weather 13 Connector Identification Component 1 Stream UI Component 2 Events Weather 14 Connector Identification Component 1 Stream – 0.1 UI – 0.9 Component 2 Events – 0.1 Weather - 0.9 15 Connector Identification Component 1 Cluster 3 Connector Events – 1.0 Stream – 0.1 UI – 0.9 Component 2 Events – 0.1 Weather - 0.9 16 Novel Architecture Representation • Extended Augmented Constraint Network • Uniform, formal way of capturing of architectural decisions • Constraint network, design rule, cluster set, concerns from topic models 17 Design Structure Matrix of ERS 18 Future Work • Evaluation of the recovery technique • Evaluation of the smell detection • Expansion of the catalog 19 Thank You • Thank You 20