cataloging and detecting architectural bad smells

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

Upload: lane-levy

Post on 03-Jan-2016

28 views

Category:

Documents


1 download

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

TRANSCRIPT

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