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

Embed Size (px)

DESCRIPTION

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 - PowerPoint PPT Presentation

Citation preview

Page 1: Cataloging and  Detecting Architectural  Bad Smells

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

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

Motivation – iRODS - Prescriptive

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

Page 4: Cataloging and  Detecting Architectural  Bad Smells

Motivation – iRODS - Descriptive

4

Page 5: Cataloging and  Detecting Architectural  Bad Smells

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

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

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

Component Identification

8

1 f1, f2, … fn

2 f1, f2, … fn

n f1, f2, … fn

Page 9: Cataloging and  Detecting Architectural  Bad Smells

Component Identification

9

1 0, 1, … 1

2 0, 1, … 0

.

.

.

n 1, 0, … 1

Page 10: Cataloging and  Detecting Architectural  Bad Smells

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

Cluster 1

Cluster 2

Component Identification

11

A

B

C

D

E

Component 1

Component 2

Page 12: Cataloging and  Detecting Architectural  Bad Smells

Concerns through Topic Modeling

12

Component 1

Component 2

Stream

Events

UI

Weather

Page 13: Cataloging and  Detecting Architectural  Bad Smells

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

Connector Identification

14

Component 1

Component 2

Stream

Events

UI

Weather

Page 15: Cataloging and  Detecting Architectural  Bad Smells

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

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

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

Design Structure Matrix of ERS

18

Page 19: Cataloging and  Detecting Architectural  Bad Smells

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

Thank You

• Thank You

20