ARCHITECTURAL RECOVERY TO AID DETECTION OF ARCHITECTURAL DEGRADATION Joshua Garcia*, Daniel...

19
ARCHITECTURAL RECOVERY TO AID DETECTION OF ARCHITECTURAL DEGRADATION Joshua Garcia*, Daniel Popescu*, Chris Mattmann* , Nenad Medvidovic*, and Yuanfang Cai *University of Southern California, Jet Propulsion Laboratory, Drexel University

Transcript of ARCHITECTURAL RECOVERY TO AID DETECTION OF ARCHITECTURAL DEGRADATION Joshua Garcia*, Daniel...

Page 1: ARCHITECTURAL RECOVERY TO AID DETECTION OF ARCHITECTURAL DEGRADATION Joshua Garcia*, Daniel Popescu*, Chris Mattmann* †, Nenad Medvidovic*, and Yuanfang.

ARCHITECTURAL RECOVERY TO AID DETECTION OFARCHITECTURAL DEGRADATION

Joshua Garcia*, Daniel Popescu*, Chris Mattmann*†, Nenad Medvidovic*, and Yuanfang Cai‡

*University of Southern California, †Jet Propulsion Laboratory, ‡ Drexel University

Page 2: ARCHITECTURAL RECOVERY TO AID DETECTION OF ARCHITECTURAL DEGRADATION Joshua Garcia*, Daniel Popescu*, Chris Mattmann* †, Nenad Medvidovic*, and Yuanfang.

Architectural Degradation

Software maintenance tends to dominate Maintaining architectures Architectural Degradation

Architectural drift and erosion Architectural smells

Architectural Recovery

Page 3: ARCHITECTURAL RECOVERY TO AID DETECTION OF ARCHITECTURAL DEGRADATION Joshua Garcia*, Daniel Popescu*, Chris Mattmann* †, Nenad Medvidovic*, and Yuanfang.

iRODS – Prescriptive Architecture4

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

Page 4: ARCHITECTURAL RECOVERY TO AID DETECTION OF ARCHITECTURAL DEGRADATION Joshua Garcia*, Daniel Popescu*, Chris Mattmann* †, Nenad Medvidovic*, and Yuanfang.

iRODS – Descriptive Architecture5

Two-way dependency

One-way dependency

Component

Layer

Legend:

Page 5: ARCHITECTURAL RECOVERY TO AID DETECTION OF ARCHITECTURAL DEGRADATION Joshua Garcia*, Daniel Popescu*, Chris Mattmann* †, Nenad Medvidovic*, and Yuanfang.

iRODS – Prescriptive and Descriptive Architecture

Page 6: ARCHITECTURAL RECOVERY TO AID DETECTION OF ARCHITECTURAL DEGRADATION Joshua Garcia*, Daniel Popescu*, Chris Mattmann* †, Nenad Medvidovic*, and Yuanfang.

Architectural Smells in iRODS7

Bloated Components

Dependency Inversion

Two-way dependency

Fully connected graph

One-way dependency

Component

Layer

Legend:

Skipping Layers

Skipping Layers

Excessive Load on Component

Dependency Cycle

Page 7: ARCHITECTURAL RECOVERY TO AID DETECTION OF ARCHITECTURAL DEGRADATION Joshua Garcia*, Daniel Popescu*, Chris Mattmann* †, Nenad Medvidovic*, and Yuanfang.

Outline

Motivation Existing Architectural Recovery Techniques Our Approach To Architectural Recovery Current Status

Page 8: ARCHITECTURAL RECOVERY TO AID DETECTION OF ARCHITECTURAL DEGRADATION Joshua Garcia*, Daniel Popescu*, Chris Mattmann* †, Nenad Medvidovic*, and Yuanfang.

iRODS – Descriptive Architecture9

Two-way dependency

One-way dependency

Component

Layer

Legend:

Page 9: ARCHITECTURAL RECOVERY TO AID DETECTION OF ARCHITECTURAL DEGRADATION Joshua Garcia*, Daniel Popescu*, Chris Mattmann* †, Nenad Medvidovic*, and Yuanfang.

Component Recovery10

Existing techniques Automated Heavy focus on structural

dependencies WCA, LIMBO, ACDC, Bunch, etc.

Can be inaccurate Do not represent concerns

Core Library

Network Communication

Low-level Fabric

Page 10: ARCHITECTURAL RECOVERY TO AID DETECTION OF ARCHITECTURAL DEGRADATION Joshua Garcia*, Daniel Popescu*, Chris Mattmann* †, Nenad Medvidovic*, and Yuanfang.

iRODS – Descriptive Architecture11

Two-way dependency

One-way dependency

Component

Layer

Legend:

Page 11: ARCHITECTURAL RECOVERY TO AID DETECTION OF ARCHITECTURAL DEGRADATION Joshua Garcia*, Daniel Popescu*, Chris Mattmann* †, Nenad Medvidovic*, and Yuanfang.

Recovery Techniques for Connectors

Connector types Interaction Application-independent Non-functional

properties Patterns and queries for

connectors ManSART, cliches, XML-

based, X-Ray, etc. Time-consuming,

manual, and error-prone

iRODS Fuse

Server Rule Engine

RPCStreamEvent-based

Page 12: ARCHITECTURAL RECOVERY TO AID DETECTION OF ARCHITECTURAL DEGRADATION Joshua Garcia*, Daniel Popescu*, Chris Mattmann* †, Nenad Medvidovic*, and Yuanfang.

Outline

Motivation Existing Architectural Recovery Techniques Our Approach To Architectural Recovery Current Status

Page 13: ARCHITECTURAL RECOVERY TO AID DETECTION OF ARCHITECTURAL DEGRADATION Joshua Garcia*, Daniel Popescu*, Chris Mattmann* †, Nenad Medvidovic*, and Yuanfang.

Approach and its Goals

Novel technique for recovering components and connectors Goals:

Automation Accuracy Understandability

Page 14: ARCHITECTURAL RECOVERY TO AID DETECTION OF ARCHITECTURAL DEGRADATION Joshua Garcia*, Daniel Popescu*, Chris Mattmann* †, Nenad Medvidovic*, and Yuanfang.

Overall Approach

Source Code

Concern Extraction

Structural Fact

Extraction

Concerns

Structural Facts

ApplicationSpecificity

Classification for Concerns

Brick Recovery

Concerns with Application Specificity

Bricks

Component and Connector Classification

Component/Connector

Model

Page 15: ARCHITECTURAL RECOVERY TO AID DETECTION OF ARCHITECTURAL DEGRADATION Joshua Garcia*, Daniel Popescu*, Chris Mattmann* †, Nenad Medvidovic*, and Yuanfang.

Representing Concerns16

Topic Models A statistical language model The source code has a set of words called the vocabulary Topic – probability distribution over words

Our representation of concerns Document-topic distribution – probability distribution over topics

The extent to which a document (component or connector) has a concern

Page 16: ARCHITECTURAL RECOVERY TO AID DETECTION OF ARCHITECTURAL DEGRADATION Joshua Garcia*, Daniel Popescu*, Chris Mattmann* †, Nenad Medvidovic*, and Yuanfang.

Using Learning for Component/ Connector Classification

17

Selection of features Application-specific or application-independent concerns Structural features Design patterns

Page 17: ARCHITECTURAL RECOVERY TO AID DETECTION OF ARCHITECTURAL DEGRADATION Joshua Garcia*, Daniel Popescu*, Chris Mattmann* †, Nenad Medvidovic*, and Yuanfang.

Outline

Motivation Existing Architectural Recovery Techniques Our Approach To Architectural Recovery Current Status

Page 18: ARCHITECTURAL RECOVERY TO AID DETECTION OF ARCHITECTURAL DEGRADATION Joshua Garcia*, Daniel Popescu*, Chris Mattmann* †, Nenad Medvidovic*, and Yuanfang.

Current Status

• Prototyped and preliminary experiments• Variety of Systems• Apache OODT, Hadoop, Bash, Linux, etc.• Java and C systems

Page 19: ARCHITECTURAL RECOVERY TO AID DETECTION OF ARCHITECTURAL DEGRADATION Joshua Garcia*, Daniel Popescu*, Chris Mattmann* †, Nenad Medvidovic*, and Yuanfang.

Thank You

Questions?