Upload
susanna-york
View
216
Download
2
Tags:
Embed Size (px)
Citation preview
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?