200 likes | 308 Views
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
E N D
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?
Motivation – iRODS - Prescriptive Source: https://www.irods.org/index.php/Introduction_to_iRODS
Contribution and Goals • Categorization of Architectural Smells • Components, Connectors, Interfaces, Data Elements, Concerns • Separation of Concerns • Coupling and Cohesion • Novel Architectural Recovery Technique • Identification of Elements • Concern Meta-Classification • Novel Architecture Representation • Extended Augmented Constraint Network • Design Structure Matrix • Architectural Smell Detection
Connector Envy - Example • Component exhibiting interaction-related functionality that should be delegated to connector • Reusability, understandability, testability • StrategyAnalyzerAgent from Emergency Response System
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
Component Identification 1 f1, f2, … fn 2 f1, f2, … fn n f1, f2, … fn
Component Identification 1 0, 1, … 1 2 0, 1, … 0 . . . n 1, 0, … 1
Component Identification 1 0, 1, … 1 Cluster Cluster 2 0, 1, … 0 1, 0, … 0 3 . . . 1, 1, … 0 1, 1, … 1 n 1, 0, … 1 4 n-1 …
Component Identification Cluster 1 Component 1 B D A Cluster 2 Component 2 E C
Concerns through Topic Modeling Component 1 Stream Component 2 UI Events Weather
Concerns through Topic Modeling Component 2 Events Weather
Connector Identification Component 1 Stream Component 2 UI Events Weather
Connector Identification Component 1 Stream – 0.1 Component 2 UI – 0.9 Events – 0.1 Weather - 0.9
Connector Identification Component 1 Cluster 3 Connector Events – 1.0 Stream – 0.1 Component 2 UI – 0.9 Events – 0.1 Weather - 0.9
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
Future Work • Evaluation of the recovery technique • Evaluation of the smell detection • Expansion of the catalog
Thank You • Thank You