210 likes | 374 Views
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.
E N D
Architectural Recovery to Aid Detection ofArchitectural Degradation Joshua Garcia*, Daniel Popescu*, Chris Mattmann*†, NenadMedvidovic*, and YuanfangCai‡*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 Architecture Source: https://www.irods.org/index.php/Introduction_to_iRODS
iRODS – Descriptive Architecture Legend: Layer Component Two-way dependency One-way dependency
Architectural Smells in iRODS Dependency Cycle Fully connected graph Skipping Layers Skipping Layers Legend: Dependency Inversion Layer Component Excessive Load on Component Two-way dependency One-way dependency Bloated Components
Outline • Motivation • Existing Architectural Recovery Techniques • Our Approach To Architectural Recovery • Current Status
iRODS – Descriptive Architecture Legend: Layer Component Two-way dependency One-way dependency
Component Recovery • 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 Architecture Legend: Layer Component Two-way dependency One-way dependency
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 Event-based Stream RPC 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 Concerns with Application Specificity Concern Extraction Concerns Application Specificity Classification for Concerns Component/Connector Model Component and Connector Classification Source Code Structural Fact Extraction Structural Facts Brick Recovery Bricks
Representing Concerns • 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 • 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?