Ioana Sora, Gabriel Glodean, Mihai Gligor Department of Computers Politehnica University of Timisoara Software Architecture Reconstruction: An Approach.

Slides:



Advertisements
Similar presentations
Formal Methods and Testing Goal: software reliability Use software engineering methodologies to develop the code. Use formal methods during code development.
Advertisements

Software Architecture Reconstruction By Elizabeth Griffith Derived from a report done by Vijaya Datta Mayyuri.
Carolina Galleguillos, Brian McFee, Serge Belongie, Gert Lanckriet Computer Science and Engineering Department Electrical and Computer Engineering Department.
ARCHITECTURAL RECOVERY TO AID DETECTION OF ARCHITECTURAL DEGRADATION Joshua Garcia*, Daniel Popescu*, Chris Mattmann* †, Nenad Medvidovic*, and Yuanfang.
Outline About author. The problem that discussed in the article.
Presented by: Thabet Kacem Spring Outline Contributions Introduction Proposed Approach Related Work Reconception of ADLs XTEAM Tool Chain Discussion.
Web services for Improving the development of automatic generalisation solutions Nicolas Regnauld Research & Innovarion Ordnance Survey 07 th March 2006,
Nathalie Moreno and Antonio Vallecillo Dept. Lenguajes y Ciencias de la Computación Universidad de Málaga COTS component/ Legacy.
Architectural Investigation of XCTL by URCA Miloš Cvetanović, Dragan Bojić Faculty of Electrical Engineering University of Belgrade {cmilos,
Graph Drawing Zsuzsanna Hollander. Reviewed Papers Effective Graph Visualization via Node Grouping Janet M. Six and Ioannis G. Tollis. Proc InfoVis 2001.
Software Effort Estimation based on Use Case Points Chandrika Seenappa 30 th March 2015 Professor: Hossein Saiedian.
Software Testing and Quality Assurance
1 A Framework for Measurement Valérie Paulus, Miguel Lopez, Gregory Seront, Simon Alexandre.
The Data Mining Visual Environment Motivation Major problems with existing DM systems They are based on non-extensible frameworks. They provide a non-uniform.
System Partitioning Kris Kuchcinski
1/20 Document Segmentation for Image Compression 27/10/2005 Emma Jonasson Supervisor: Dr. Peter Tischer.
Mining Metamodels From Instance Models: The MARS System Faizan Javed Department of Computer & Information Sciences, University of Alabama at Birmingham.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
On Roles of Models in Information Systems (Arne Sølvberg) Gustavo Carvalho 26 de Agosto de 2010.
Introduction To System Analysis and design
1 Using Heuristic Search Techniques to Extract Design Abstractions from Source Code The Genetic and Evolutionary Computation Conference (GECCO'02). Brian.
Recommender Systems on the Web: A Model-Driven Approach Gonzalo Rojas – Francisco Domínguez – Stefano Salvatori Department of Computer Science University.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University ICSE 2003 Java.
Software Engineering CS B Prof. George Heineman.
Genetic network inference: from co-expression clustering to reverse engineering Patrik D’haeseleer,Shoudan Liang and Roland Somogyi.
General Theme In general work in teams combining architects, compiler developers, performance and tools engineers, and application experts –Note this extends.
JVB-STC'97- 1 #*#* Successful Adoption and Use of Object Oriented Technologies STC ‘97 April 30, 1997 Jim Van Buren.
Application of reversing 1/9 Department of Computer Science Faculty of Mathematics University of Belgrade Petar Radović
Change Impact Analysis for AspectJ Programs Sai Zhang, Zhongxian Gu, Yu Lin and Jianjun Zhao Shanghai Jiao Tong University.
1 ECE 453 – CS 447 – SE 465 Software Testing & Quality Assurance Instructor Kostas Kontogiannis.
A Simple Unsupervised Query Categorizer for Web Search Engines Prashant Ullegaddi and Vasudeva Varma Search and Information Extraction Lab Language Technologies.
On the Representation of Intangible Objects such as Software in a Measurement Context Miguel Lopez Valérie Paulus Grégory Seront Simon Alexandre.
Odyssey A Reuse Environment based on Domain Models Prepared By: Mahmud Gabareen Eliad Cohen.
Avoiding Segmentation in Multi-digit Numeral String Recognition by Combining Single and Two-digit Classifiers Trained without Negative Examples Dan Ciresan.
Software Clustering Based on Information Loss Minimization Periklis Andritsos University of Toronto Vassilios Tzerpos York University The 10th Working.
1 A Heuristic Approach Towards Solving the Software Clustering Problem ICSM03 Brian S. Mitchell /
Summarizing the Content of Large Traces to Facilitate the Understanding of the Behaviour of a Software System Abdelwahab Hamou-Lhadj Timothy Lethbridge.
Black-box Testing.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 11 Slide 1 Design.
Detecting Patterns and Antipatterns in Software using Prolog Rules Alecsandar Stoianov, Ioana Sora Department of Computers Politehnica University of Timisoara,
Document Clustering for Forensic Analysis: An Approach for Improving Computer Inspection.
System Context and Domain Analysis Abbas Rasoolzadegan.
Software Architecture Evaluation Methodologies Presented By: Anthony Register.
Scenario-Based Analysis of Software Architecture Rick Kazman, Gregory Abowd, Len Bass, and Paul Clements Presented by Cuauhtémoc Muñoz.
Using Social Network Analysis Methods for the Prediction of Faulty Components Gholamreza Safi.
A Multiresolution Symbolic Representation of Time Series Vasileios Megalooikonomou Qiang Wang Guo Li Christos Faloutsos Presented by Rui Li.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Review of Parnas’ Criteria for Decomposing Systems into Modules Zheng Wang, Yuan Zhang Michigan State University 04/19/2002.
RE-ENGINEERING AND DOMAIN ANALYSIS BY- NISHANTH TIRUVAIPATI.
About Me Swaroop Butala  MSCS – graduating in Dec 09  Specialization: Systems and Databases  Interests:  Learning new technologies  Application of.
Theory and Practice of Software Testing
JavaCompExt: Extracting Architectural Elements from Java Source Code N.Anquetil, J.-C. Royer, P. André, G. Ardourel, P. Hnětynka, T. Poch, D. Petraşcu,
Cross Language Clone Analysis Team 2 February 3, 2011.
Concepts and Realization of a Diagram Editor Generator Based on Hypergraph Transformation Author: Mark Minas Presenter: Song Gu.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Connecting Architecture Reconstruction Frameworks Ivan Bowman, Michael Godfrey, Ric Holt Software Architecture Group University of Waterloo CoSET ‘99 May.
Requirement Engineering with URN: Integrating Goals and Scenarios Jean-François Roy Thesis Defense February 16, 2007.
Mestrado em Ciência de Computadores Mestrado Integrado em Engenharia de Redes e Sistemas Informáticos VC 15/16 – TP10 Advanced Segmentation Miguel Tavares.
Reverse Engineering Dept. of I&CT, MIT, Manipal. Aspects To Be Covered Introduction to reverse engineering. Comparison between reverse and forward engineering.
CPSC 371 John D. McGregor Session 10 Requirements analysis methods.
1 Modeling the Search Landscape of Metaheuristic Software Clustering Algorithms Dagstuhl – Software Architecture Brian S. Mitchell
TU Dresden - Institut für Bauinformatik Folie-Nr.: 1 BIWO-04 Software Engineering (Software Systems) 2.Exercise System Capturing with IDEF0 TU Dresden.
Introduction to Design Patterns
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Implementing Language Extensions with Model Transformations
Software Clustering.
Architecture Recovery
Implementing Language Extensions with Model Transformations
Evaluating Software Clustering Algorithms
Presentation transcript:

Ioana Sora, Gabriel Glodean, Mihai Gligor Department of Computers Politehnica University of Timisoara Software Architecture Reconstruction: An Approach Based on Combining Graph Clustering and Partitioning

Context: Software Architecture What it is: – a model of the software system expressed at a high level of abstraction (interaction of ”black box” elements) Why it is important: –Knowing and having an explicit representation of the system architecture is crucial in order to maintain, understand and evaluate a large software application. Where to find it: –Architecture is not explicitly represented in the code, but it has to be documented Problem: architectural documentation is missing or outdated Solution: Software Architecture Reconstruction –Reverse engineering process of extracting information from code and mapping these on high-level concepts of design/architecture Our goal: to develop a quasi-automatic reconstruction technique, while obtaining a reconstructed architectural model of a good quality (similar to the one extracted by a human expert).

Our reconstruction approach Construction of analysis model –Lightweight dependency model –Operates with info extractible from compiled code (java bytecode) –General OO model Reconstruction process –Goals: Improving the quality/accuracy of the automatically reconstructed architectural models –Approach: Clustering combined with partitioning Validation –Metric-based comparison of the results obtained automatically to reference solutions given by human expert

Clustering Clustering software based on a similarity/dissimilarity metric derived only from direct coupling/cohesion does not provide satisfactory results

Our approach: clustering combined with partitioning Starting assumption: two classes belonging to layers of different abstraction levels are highly unlikely to be part of the same architectural subsystem (even if there is a strong dependency between them). two classes belonging to the same layers have a higher chance to be part of the same architectural subsystem. Our solution: The similarity metric for clustering is given by the dependency strenght pondered with the distance adjustement.

Our approach: clustering combined with partitioning (cont) Partitioning preprocessing: Layers resulted by applying a partitioning algorithm on the directed graph of dependencies: 1, 2, ,7 8

Our approach: clustering combined with partitioning (cont) Our solution: The similarity metric for clustering is given by the dependency strenght pondered with the distance adjustement.

Clustering combined with partitioning - example

Our approach: clustering combined with partitioning (cont) Clustering algorithms used as starting points: –2 graph-theoretical clustering algorithms, that have been already tried for software clustering, with medium-low quality results ZMST MMST Types of layer distance adjustements used:

Approach used for validation A good automatically produced clustering should approximate the clustering produced by a human expert - the architect. In order to validate our clustering technique, we compare how close the automatic obtained solution is to a reference solution. The comparison of two clustering solutions is done automatically with help of the MoJo metric defined by Tzerpos and Holt The MoJo metric measures the distance between two clusterings of the same system. The MoJo metrics counts the minimum number of operations (moves and joins) one needs to perform in order to transform one clustering solution to the other.

Results – MST Clustering with/without layer distance adjustment with different settings, applied on ARTkernel

Results – MMST Clustering with/without layer distance adjustment with different settings, applied on ARTkernel

Results – Impact of layer distance adjustment on MST clustering on several systems

Results – Impact of layer distance adjustment on MMST clustering on several systems

Results – Scalability

Conclusions Our approach for automatic software architecture reconstruction combines traditional clustering approaches with partitioning –The “layer distance adjustement” for the coupling/cohesion similarity metric Advantage of our approach: it improves the quality of the automatically reconstructed architectural model - closer to the one extracted by a human expert. Approach has been validated for 2 clustering algorithms, on several software systems Future work: –prove the generality of this conclusion by applying layer distance adjustments to more clustering algorithms –Investigate other types of “adjustments” for the similarity metric