Cataloging and Detecting Architectural Bad Smells

Preview:

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

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

Recommended