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?