Architectural Recovery to Aid Detection of Architectural Degradation
description
Transcript of Architectural Recovery to Aid Detection of Architectural Degradation
![Page 1: Architectural Recovery to Aid Detection of Architectural Degradation](https://reader034.fdocuments.in/reader034/viewer/2022051518/5681668d550346895dda5690/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](https://reader034.fdocuments.in/reader034/viewer/2022051518/5681668d550346895dda5690/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](https://reader034.fdocuments.in/reader034/viewer/2022051518/5681668d550346895dda5690/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](https://reader034.fdocuments.in/reader034/viewer/2022051518/5681668d550346895dda5690/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](https://reader034.fdocuments.in/reader034/viewer/2022051518/5681668d550346895dda5690/html5/thumbnails/5.jpg)
iRODS – Prescriptive and Descriptive Architecture
![Page 6: Architectural Recovery to Aid Detection of Architectural Degradation](https://reader034.fdocuments.in/reader034/viewer/2022051518/5681668d550346895dda5690/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](https://reader034.fdocuments.in/reader034/viewer/2022051518/5681668d550346895dda5690/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](https://reader034.fdocuments.in/reader034/viewer/2022051518/5681668d550346895dda5690/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](https://reader034.fdocuments.in/reader034/viewer/2022051518/5681668d550346895dda5690/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](https://reader034.fdocuments.in/reader034/viewer/2022051518/5681668d550346895dda5690/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](https://reader034.fdocuments.in/reader034/viewer/2022051518/5681668d550346895dda5690/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](https://reader034.fdocuments.in/reader034/viewer/2022051518/5681668d550346895dda5690/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](https://reader034.fdocuments.in/reader034/viewer/2022051518/5681668d550346895dda5690/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](https://reader034.fdocuments.in/reader034/viewer/2022051518/5681668d550346895dda5690/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](https://reader034.fdocuments.in/reader034/viewer/2022051518/5681668d550346895dda5690/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](https://reader034.fdocuments.in/reader034/viewer/2022051518/5681668d550346895dda5690/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](https://reader034.fdocuments.in/reader034/viewer/2022051518/5681668d550346895dda5690/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](https://reader034.fdocuments.in/reader034/viewer/2022051518/5681668d550346895dda5690/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](https://reader034.fdocuments.in/reader034/viewer/2022051518/5681668d550346895dda5690/html5/thumbnails/19.jpg)
Thank You
Questions?