Cataloging and Detecting Architectural Bad Smells Joshua Garcia, Daniel Popescu, and Nenad...

Post on 17-Dec-2015

214 views 1 download

Tags:

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