Cataloging and Detecting Architectural Bad Smells Joshua Garcia, Daniel Popescu, and Nenad...
-
Upload
ellen-fleming -
Category
Documents
-
view
214 -
download
1
Transcript of Cataloging and Detecting Architectural Bad Smells Joshua Garcia, Daniel Popescu, and Nenad...
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
3Source: https://www.irods.org/index.php/Introduction_to_iRODS
Motivation – iRODS - Descriptive
4
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
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
8
1 f1, f2, … fn
2 f1, f2, … fn
n f1, f2, … fn
Component Identification
9
1 0, 1, … 1
2 0, 1, … 0
.
.
.
n 1, 0, … 1
Component Identification
10
1 0, 1, … 1
2
1, 0, … 0...
n 1, 0, … 1
Cluster
1, 1, … 1
3
0, 1, … 0
Cluster
1, 1, … 0
4 … n-1
Cluster 1
Cluster 2
Component Identification
11
A
B
C
D
E
Component 1
Component 2
Concerns through Topic Modeling
12
Component 1
Component 2
Stream
Events
UI
Weather
Concerns through Topic Modeling
13
Component 2
Events
Weather
Word Probability
Send 0.2
Receive 0.4
Event 0.4
Word Probability
Temperature
0.7
Wind 0.1
Humid 0.2
Connector Identification
14
Component 1
Component 2
Stream
Events
UI
Weather
Connector Identification
15
Component 1
Component 2
Stream – 0.1
Events – 0.1
UI – 0.9
Weather - 0.9
Connector Identification
16
Component 1
Component 2
Stream – 0.1
Events – 0.1
UI – 0.9
Weather - 0.9
Cluster 3
Events – 1.0
Connector
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