20
Cataloging and Detecting Architectural Bad Smells Joshua Garcia, Daniel Popescu, and Nenad Medvidovic, University of Southern California Yuanfang Cai, Drexel University

Cataloging and Detecting Architectural Bad Smells Joshua Garcia, Daniel Popescu, and Nenad Medvidovic, University of Southern California Yuanfang Cai,

Embed Size (px)

Citation preview

Page 1: Cataloging and Detecting Architectural Bad Smells Joshua Garcia, Daniel Popescu, and Nenad Medvidovic, University of Southern California Yuanfang Cai,

Cataloging and Detecting Architectural Bad Smells

Joshua Garcia, Daniel Popescu, and

Nenad Medvidovic, University of

Southern California

Yuanfang Cai, Drexel University

Page 2: Cataloging and Detecting Architectural Bad Smells Joshua Garcia, Daniel Popescu, and Nenad Medvidovic, University of Southern California Yuanfang Cai,

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

Page 3: Cataloging and Detecting Architectural Bad Smells Joshua Garcia, Daniel Popescu, and Nenad Medvidovic, University of Southern California Yuanfang Cai,

Motivation – iRODS - Prescriptive

3Source: https://www.irods.org/index.php/Introduction_to_iRODS

Page 4: Cataloging and Detecting Architectural Bad Smells Joshua Garcia, Daniel Popescu, and Nenad Medvidovic, University of Southern California Yuanfang Cai,

Motivation – iRODS - Descriptive

4

Page 5: Cataloging and Detecting Architectural Bad Smells Joshua Garcia, Daniel Popescu, and Nenad Medvidovic, University of Southern California Yuanfang Cai,

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

Page 6: Cataloging and Detecting Architectural Bad Smells Joshua Garcia, Daniel Popescu, and Nenad Medvidovic, University of Southern California Yuanfang Cai,

Connector Envy - Example

• Component exhibiting interaction-related functionality that

should be delegated to connector

• Reusability, understandability, testability

• StrategyAnalyzerAgent from Emergency Response System

6

Page 7: Cataloging and Detecting Architectural Bad Smells Joshua Garcia, Daniel Popescu, and Nenad Medvidovic, University of Southern California Yuanfang Cai,

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

Page 8: Cataloging and Detecting Architectural Bad Smells Joshua Garcia, Daniel Popescu, and Nenad Medvidovic, University of Southern California Yuanfang Cai,

Component Identification

8

1 f1, f2, … fn

2 f1, f2, … fn

n f1, f2, … fn

Page 9: Cataloging and Detecting Architectural Bad Smells Joshua Garcia, Daniel Popescu, and Nenad Medvidovic, University of Southern California Yuanfang Cai,

Component Identification

9

1 0, 1, … 1

2 0, 1, … 0

.

.

.

n 1, 0, … 1

Page 10: Cataloging and Detecting Architectural Bad Smells Joshua Garcia, Daniel Popescu, and Nenad Medvidovic, University of Southern California Yuanfang Cai,

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

Page 11: Cataloging and Detecting Architectural Bad Smells Joshua Garcia, Daniel Popescu, and Nenad Medvidovic, University of Southern California Yuanfang Cai,

Cluster 1

Cluster 2

Component Identification

11

A

B

C

D

E

Component 1

Component 2

Page 12: Cataloging and Detecting Architectural Bad Smells Joshua Garcia, Daniel Popescu, and Nenad Medvidovic, University of Southern California Yuanfang Cai,

Concerns through Topic Modeling

12

Component 1

Component 2

Stream

Events

UI

Weather

Page 13: Cataloging and Detecting Architectural Bad Smells Joshua Garcia, Daniel Popescu, and Nenad Medvidovic, University of Southern California Yuanfang Cai,

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

Page 14: Cataloging and Detecting Architectural Bad Smells Joshua Garcia, Daniel Popescu, and Nenad Medvidovic, University of Southern California Yuanfang Cai,

Connector Identification

14

Component 1

Component 2

Stream

Events

UI

Weather

Page 15: Cataloging and Detecting Architectural Bad Smells Joshua Garcia, Daniel Popescu, and Nenad Medvidovic, University of Southern California Yuanfang Cai,

Connector Identification

15

Component 1

Component 2

Stream – 0.1

Events – 0.1

UI – 0.9

Weather - 0.9

Page 16: Cataloging and Detecting Architectural Bad Smells Joshua Garcia, Daniel Popescu, and Nenad Medvidovic, University of Southern California Yuanfang Cai,

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

Page 17: Cataloging and Detecting Architectural Bad Smells Joshua Garcia, Daniel Popescu, and Nenad Medvidovic, University of Southern California Yuanfang Cai,

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

Page 18: Cataloging and Detecting Architectural Bad Smells Joshua Garcia, Daniel Popescu, and Nenad Medvidovic, University of Southern California Yuanfang Cai,

Design Structure Matrix of ERS

18

Page 19: Cataloging and Detecting Architectural Bad Smells Joshua Garcia, Daniel Popescu, and Nenad Medvidovic, University of Southern California Yuanfang Cai,

Future Work

• Evaluation of the recovery technique

• Evaluation of the smell detection

• Expansion of the catalog

19

Page 20: Cataloging and Detecting Architectural Bad Smells Joshua Garcia, Daniel Popescu, and Nenad Medvidovic, University of Southern California Yuanfang Cai,

Thank You

• Thank You

20