architectural recovery to aid detection of architectural degradation joshua garcia*, daniel...

Post on 16-Dec-2015

216 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

Architectural Degradation

Software maintenance tends to dominate Maintaining architectures Architectural Degradation

Architectural drift and erosion Architectural smells

Architectural Recovery

iRODS – Prescriptive Architecture4

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

iRODS – Descriptive Architecture5

Two-way dependency

One-way dependency

Component

Layer

Legend:

iRODS – Prescriptive and Descriptive Architecture

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

Outline

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

iRODS – Descriptive Architecture9

Two-way dependency

One-way dependency

Component

Layer

Legend:

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

iRODS – Descriptive Architecture11

Two-way dependency

One-way dependency

Component

Layer

Legend:

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

Outline

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

Approach and its Goals

Novel technique for recovering components and connectors Goals:

Automation Accuracy Understandability

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

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

Using Learning for Component/ Connector Classification

17

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

Outline

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

Current Status

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

Thank You

Questions?

top related