ARCHITECTURAL RECOVERY TO AID DETECTION OF DEGRADATION

advertisement

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

Software maintenance tends to dominate

Maintaining architectures

Architectural Degradation

Architectural drift and erosion

 Architectural smells

Architectural Recovery

4 iRODS – Prescriptive Architecture

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

5 iRODS – Descriptive Architecture

Legend:

Layer

Component

Two-way dependency

One-way dependency

iRODS – Prescriptive and Descriptive

Architecture

Architectural Smells in iRODS

7

Fully connected graph

Dependency

Cycle

Skipping

Layers

Skipping

Layers

Dependency

Inversion

Excessive

Load on

Component

Legend:

Layer

Component

Two-way dependency

One-way dependency

Bloated Components

Outline

Motivation

Existing Architectural Recovery Techniques

Our Approach To Architectural Recovery

Current Status

9 iRODS – Descriptive Architecture

Legend:

Layer

Component

Two-way dependency

One-way dependency

Component Recovery

10

Existing techniques

 Automated

 Heavy focus on structural dependencies

 WCA, LIMBO, ACDC, Bunch, etc.

 Can be inaccurate

 Do not represent concerns

Network

Communication

Core Library

Low-level Fabric

11 iRODS – Descriptive Architecture

Legend:

Layer

Component

Two-way dependency

One-way dependency

Recovery Techniques for Connectors

Connector types

 Interaction

Applicationindependent

Non-functional properties

Patterns and queries for connectors

ManSART, cliches, XMLbased, X-Ray, etc.

Time-consuming, manual, and error-prone iRODS Fuse

Event-based

Stream

Server Rule Engine

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

Application

Specificity

Classification for Concerns

Brick

Recovery

Concerns with

Application

Specificity

Component and Connector

Classification

Component/

Connector

Model

Bricks

Representing Concerns

16

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

17

Using Learning for Component/

Connector Classification

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?

Download