architectural recovery to aid detection of architectural degradation

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

Upload: meagan

Post on 24-Feb-2016

22 views

Category:

Documents


0 download

DESCRIPTION

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. Architectural Degradation. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Architectural Recovery to Aid Detection of Architectural Degradation

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

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

iRODS – Prescriptive Architecture4

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

Page 4: Architectural Recovery to Aid Detection of Architectural Degradation

iRODS – Descriptive Architecture5

Two-way dependency

One-way dependency

Component

Layer

Legend:

Page 5: Architectural Recovery to Aid Detection of Architectural Degradation

iRODS – Prescriptive and Descriptive Architecture

Page 6: Architectural Recovery to Aid Detection of Architectural Degradation

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

Outline

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

Page 8: Architectural Recovery to Aid Detection of Architectural Degradation

iRODS – Descriptive Architecture9

Two-way dependency

One-way dependency

Component

Layer

Legend:

Page 9: Architectural Recovery to Aid Detection of Architectural Degradation

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

iRODS – Descriptive Architecture11

Two-way dependency

One-way dependency

Component

Layer

Legend:

Page 11: Architectural Recovery to Aid Detection of Architectural Degradation

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

Outline

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

Page 13: Architectural Recovery to Aid Detection of Architectural Degradation

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

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

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

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

Outline

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

Page 18: Architectural Recovery to Aid Detection of Architectural Degradation

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

Thank You

Questions?