ARCHITECTURAL RECOVERY TO AID DETECTION OF ARCHITECTURAL DEGRADATION Joshua Garcia*, Daniel Popescu*, Chris Mattmann* †, Nenad Medvidovic*, and Yuanfang.

Slides:



Advertisements
Similar presentations
Pseudo-Relevance Feedback For Multimedia Retrieval By Rong Yan, Alexander G. and Rong Jin Mwangi S. Kariuki
Advertisements

Object-Oriented Software Development CS 3331 Fall 2009.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Basic Concepts Software Architecture Lecture 3.
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Software Architecture Lecture 2
Cataloging and Detecting Architectural Bad Smells Joshua Garcia, Daniel Popescu, and Nenad Medvidovic, University of Southern California Yuanfang Cai,
Unified theory of software evolution Reengineering – Business process reengineering and software reengineering BPR model – Business definition, process.
INF 123 SW ARCH, DIST SYS & INTEROP LECTURE 11 Prof. Crista Lopes.
CoDesign/CoWare An Extensible and Scalable Collaborative Software Modeling Infrastructure SoftArch, USC October 20th Jae young Bang, USC
Software Architecture Research and Practice Nenad Medvidovic University of Southern California
Automatically Extracting and Verifying Design Patterns in Java Code James Norris Ruchika Agrawal Computer Science Department Stanford University {jcn,
Identifying Architectural Bad Smells Joshua Garcia, Daniel Popescu, George Edwards and Nenad Medvidovic University of Southern California.
Software Architecture in Practice
The Anatomy and Physiology of the Grid Revisited Nenad Medvidovic USC-CSSE and Computer Science Department University of Southern California
Course Instructor: Aisha Azeem
CoDesign A Highly Extensible Collaborative Software Modeling Framework SoftArch, USC March, 2010 Jae young George.
Chapter 10: Architectural Design
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Software Architecture Lecture 3
Software Architecture premaster course 1.  Israa Mosatafa Islam  Neveen Adel Mohamed  Omnia Ibrahim Ahmed  Dr Hany Ammar 2.
Data Structures and Programming.  John Edgar2.
LLNL-PRES This work was performed under the auspices of the U.S. Department of Energy by Lawrence Livermore National Laboratory under Contract DE-AC52-07NA27344.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Architectural Design.
What is Software Architecture?
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 system design 1 what is systems design? preparation of the system’s specifications with.
Chapter 10 Architectural Design
Katanosh Morovat.   This concept is a formal approach for identifying the rules that encapsulate the structure, constraint, and control of the operation.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 A Discipline of Software Design.
Architecture-Based Runtime Software Evolution Peyman Oreizy, Nenad Medvidovic & Richard N. Taylor.
Assessing the Suitability of UML for Modeling Software Architectures Nenad Medvidovic Computer Science Department University of Southern California Los.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Implementing Architectures Software Architecture.
 Chapter 6 Architecture 1. What is Architecture?  Overall Structure of system  First Stage in Design process 2.
By Xiangzhe Li Thanh Nguyen.  Introduction  Terminology  Architecture  Component  Connector  Configuration  Architectural Style  Architectural.
SOFTWARE DESIGN.
Basic Concepts Software Architecture. What is Software Architecture? Definition: – A software architecture is the set of principal design decisions about.
Ioana Sora, Gabriel Glodean, Mihai Gligor Department of Computers Politehnica University of Timisoara Software Architecture Reconstruction: An Approach.
University of Southern California Center for Systems and Software Engineering Model-Based Software Engineering Supannika Koolmanojwong Spring 2013.
Drexel University CS 451 Software Engineering Winter Yuanfang Cai Room 104, University Crossings
CoDesign A Highly Extensible Collaborative Software Modeling Framework SoftArch, USC October 20th Jae young George.
1 A Heuristic Approach Towards Solving the Software Clustering Problem ICSM03 Brian S. Mitchell /
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 11 Slide 1 Design.
Information Systems Engineering. Lecture Outline Information Systems Architecture Information System Architecture components Information Engineering Phases.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
Software Safety Case Why, what and how… Jon Arvid Børretzen.
Software Design Process
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 10a: Architectural Design Software Engineering: A Practitioner’s Approach, 6/e Chapter 10a:
Design of an Integrated Robot Simulator for Learning Applications Brendon Wilson April 15th, 1999.
Topic 4 - Database Design Unit 1 – Database Analysis and Design Advanced Higher Information Systems St Kentigern’s Academy.
REST By: Vishwanath Vineet.
Survey of Tools to Support Safe Adaptation with Validation Alain Esteva-Ramirez School of Computing and Information Sciences Florida International University.
Divided Pretreatment to Targets and Intentions for Query Recommendation Reporter: Yangyang Kang /23.
Basic Concepts and Definitions
February 19, February 19, 2016February 19, 2016February 19, 2016 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific.
Foundations, Theory, and Practice Software Architecture Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Basic.
Hossein Tajalli & Joshua Garcia. Motivation Self-* or autonomic systems Self-configuration, self-adaptation, and self-healing Why we might want self-adaptive.
+ Informatics 122 Software Design II Lecture 13 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.
Viewpoint Modeling and Model-Based Media Generation for Systems Engineers Automatic View and Document Generation for Scalable Model- Based Engineering.
Architecture Recovery (a special, and especially important type of architectural analysis)
Basic Concepts of Software Architecture. What is Software Architecture? Definition: – A software system’s architecture is the set of principal design.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Wrap up. Structures and views Quality attribute scenarios Achieving quality attributes via tactics Architectural pattern and styles.
Software Design and Architecture
Software Architecture Lecture 2
Prepared by: Mahmoud Rafeek Al-Farra
Architecture Recovery
System Reengineering Restructuring or rewriting part or all of a system without changing its functionality Applicable when some (but not all) subsystems.
Presentation transcript:

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

Smells and Restructuring 3  Smells are patterns in software systems that violate maintainability principles  Help identify restructuring opportunities  Restructuring: the transformation from one form of a software system to another without changing its external behavior.  Have proven quite useful to software engineers  Code smells are implementation structures that violate maintainability principles  Long parameter lists  Duplicated code  Poor use of software architecture-level abstractions  Architectural smells are combinations of architectural constructs that violate maintainability principles

iRODS – Prescriptive Architecture 4 Source:

iRODS – Descriptive Architecture 5 Two-way dependency One-way dependency Component Layer Legend:

iRODS – Prescriptive and Descriptive Architecture

Architectural Smells in iRODS 7 Bloated Components Dependency Inversion Two-way dependency Fully connected graph One-way dependency Component Layer Legend: Skipping Layers Excessive Load on Component Dependency Cycle

Outline  Motivation  Existing Architectural Recovery Techniques  Our Approach To Architectural Recovery  Current Status

iRODS – Descriptive Architecture 9 Two-way dependency One-way dependency Component Layer Legend:

Component Recovery 10  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 11 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 RPCStream Event-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 Application Specificity Classification for Concerns Brick Recovery Concerns with Application Specificity Bricks Component and Connector Classification Component/ Connector Model

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

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?

Early Quasi-Automated Component Identification 21  Semi-automated method [Koschke 2000]  Evaluated many early clustering techniques Recall  Combined clustering techniques and steered by engineer  Bunch tool [Mancoridis 1999, Mitchell and Mancoridis 2006]  Search algorithms  Graph partitioning  The ACDC (Algorithm for Comprehension-Driven Clustering) [Tzerpos and Holt 2000]  Structural patterns  Labeling

Recent Automated Component Identification Techniques 22  scaLable InforMation BOttleneck (LIMBO) [Andritsos et al. 2005]  Minimize information loss  Non-structural features  Evaluated against ACDC, Bunch, and simple hierarchical clustering algorithms  Weighted Combined Algorithm (WCA) [Maqbool and Babri 2007]  Hierarchical agglomerative clustering  Simpler similarity measure  Improved correctness compared to LIMBO, but still low Precision 51%-62% Recall 13%-22%

Connector Identification 23  ManSART [Harris 1995]  Architectural Styles  Recognizers  Using cliches [Fiutem et al. 1996]  Use data flow analysis for more relevant detail  X-Ray [Mendonca and Kramer 2001]  Hybrid styles  Using XML-based patterns [Pinzger and Gall 2002]  ARTISAn [Jakobac et al. 2005]