architectural recovery to aid detection of architectural degradation joshua garcia*, daniel...
TRANSCRIPT
![Page 1: ARCHITECTURAL RECOVERY TO AID DETECTION OF ARCHITECTURAL DEGRADATION Joshua Garcia*, Daniel Popescu*, Chris Mattmann* †, Nenad Medvidovic*, and Yuanfang](https://reader030.vdocuments.us/reader030/viewer/2022032722/56649cdb5503460f949a5ba7/html5/thumbnails/1.jpg)
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 Joshua Garcia*, Daniel Popescu*, Chris Mattmann* †, Nenad Medvidovic*, and Yuanfang](https://reader030.vdocuments.us/reader030/viewer/2022032722/56649cdb5503460f949a5ba7/html5/thumbnails/2.jpg)
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 Joshua Garcia*, Daniel Popescu*, Chris Mattmann* †, Nenad Medvidovic*, and Yuanfang](https://reader030.vdocuments.us/reader030/viewer/2022032722/56649cdb5503460f949a5ba7/html5/thumbnails/3.jpg)
iRODS – Prescriptive Architecture4
Source: https://www.irods.org/index.php/Introduction_to_iRODS
![Page 4: ARCHITECTURAL RECOVERY TO AID DETECTION OF ARCHITECTURAL DEGRADATION Joshua Garcia*, Daniel Popescu*, Chris Mattmann* †, Nenad Medvidovic*, and Yuanfang](https://reader030.vdocuments.us/reader030/viewer/2022032722/56649cdb5503460f949a5ba7/html5/thumbnails/4.jpg)
iRODS – Descriptive Architecture5
Two-way dependency
One-way dependency
Component
Layer
Legend:
![Page 5: ARCHITECTURAL RECOVERY TO AID DETECTION OF ARCHITECTURAL DEGRADATION Joshua Garcia*, Daniel Popescu*, Chris Mattmann* †, Nenad Medvidovic*, and Yuanfang](https://reader030.vdocuments.us/reader030/viewer/2022032722/56649cdb5503460f949a5ba7/html5/thumbnails/5.jpg)
iRODS – Prescriptive and Descriptive Architecture
![Page 6: ARCHITECTURAL RECOVERY TO AID DETECTION OF ARCHITECTURAL DEGRADATION Joshua Garcia*, Daniel Popescu*, Chris Mattmann* †, Nenad Medvidovic*, and Yuanfang](https://reader030.vdocuments.us/reader030/viewer/2022032722/56649cdb5503460f949a5ba7/html5/thumbnails/6.jpg)
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 Joshua Garcia*, Daniel Popescu*, Chris Mattmann* †, Nenad Medvidovic*, and Yuanfang](https://reader030.vdocuments.us/reader030/viewer/2022032722/56649cdb5503460f949a5ba7/html5/thumbnails/7.jpg)
Outline
Motivation Existing Architectural Recovery Techniques Our Approach To Architectural Recovery Current Status
![Page 8: ARCHITECTURAL RECOVERY TO AID DETECTION OF ARCHITECTURAL DEGRADATION Joshua Garcia*, Daniel Popescu*, Chris Mattmann* †, Nenad Medvidovic*, and Yuanfang](https://reader030.vdocuments.us/reader030/viewer/2022032722/56649cdb5503460f949a5ba7/html5/thumbnails/8.jpg)
iRODS – Descriptive Architecture9
Two-way dependency
One-way dependency
Component
Layer
Legend:
![Page 9: ARCHITECTURAL RECOVERY TO AID DETECTION OF ARCHITECTURAL DEGRADATION Joshua Garcia*, Daniel Popescu*, Chris Mattmann* †, Nenad Medvidovic*, and Yuanfang](https://reader030.vdocuments.us/reader030/viewer/2022032722/56649cdb5503460f949a5ba7/html5/thumbnails/9.jpg)
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 Joshua Garcia*, Daniel Popescu*, Chris Mattmann* †, Nenad Medvidovic*, and Yuanfang](https://reader030.vdocuments.us/reader030/viewer/2022032722/56649cdb5503460f949a5ba7/html5/thumbnails/10.jpg)
iRODS – Descriptive Architecture11
Two-way dependency
One-way dependency
Component
Layer
Legend:
![Page 11: ARCHITECTURAL RECOVERY TO AID DETECTION OF ARCHITECTURAL DEGRADATION Joshua Garcia*, Daniel Popescu*, Chris Mattmann* †, Nenad Medvidovic*, and Yuanfang](https://reader030.vdocuments.us/reader030/viewer/2022032722/56649cdb5503460f949a5ba7/html5/thumbnails/11.jpg)
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 Joshua Garcia*, Daniel Popescu*, Chris Mattmann* †, Nenad Medvidovic*, and Yuanfang](https://reader030.vdocuments.us/reader030/viewer/2022032722/56649cdb5503460f949a5ba7/html5/thumbnails/12.jpg)
Outline
Motivation Existing Architectural Recovery Techniques Our Approach To Architectural Recovery Current Status
![Page 13: ARCHITECTURAL RECOVERY TO AID DETECTION OF ARCHITECTURAL DEGRADATION Joshua Garcia*, Daniel Popescu*, Chris Mattmann* †, Nenad Medvidovic*, and Yuanfang](https://reader030.vdocuments.us/reader030/viewer/2022032722/56649cdb5503460f949a5ba7/html5/thumbnails/13.jpg)
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 Joshua Garcia*, Daniel Popescu*, Chris Mattmann* †, Nenad Medvidovic*, and Yuanfang](https://reader030.vdocuments.us/reader030/viewer/2022032722/56649cdb5503460f949a5ba7/html5/thumbnails/14.jpg)
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 Joshua Garcia*, Daniel Popescu*, Chris Mattmann* †, Nenad Medvidovic*, and Yuanfang](https://reader030.vdocuments.us/reader030/viewer/2022032722/56649cdb5503460f949a5ba7/html5/thumbnails/15.jpg)
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 Joshua Garcia*, Daniel Popescu*, Chris Mattmann* †, Nenad Medvidovic*, and Yuanfang](https://reader030.vdocuments.us/reader030/viewer/2022032722/56649cdb5503460f949a5ba7/html5/thumbnails/16.jpg)
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 Joshua Garcia*, Daniel Popescu*, Chris Mattmann* †, Nenad Medvidovic*, and Yuanfang](https://reader030.vdocuments.us/reader030/viewer/2022032722/56649cdb5503460f949a5ba7/html5/thumbnails/17.jpg)
Outline
Motivation Existing Architectural Recovery Techniques Our Approach To Architectural Recovery Current Status
![Page 18: ARCHITECTURAL RECOVERY TO AID DETECTION OF ARCHITECTURAL DEGRADATION Joshua Garcia*, Daniel Popescu*, Chris Mattmann* †, Nenad Medvidovic*, and Yuanfang](https://reader030.vdocuments.us/reader030/viewer/2022032722/56649cdb5503460f949a5ba7/html5/thumbnails/18.jpg)
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 Joshua Garcia*, Daniel Popescu*, Chris Mattmann* †, Nenad Medvidovic*, and Yuanfang](https://reader030.vdocuments.us/reader030/viewer/2022032722/56649cdb5503460f949a5ba7/html5/thumbnails/19.jpg)
Thank You
Questions?