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
Download

Presentation - University of Southern California