Application of Graph Theory to OO Software Engineering Alexander Chatzigeorgiou, Nikolaos Tsantalis, George Stephanides Department of Applied Informatics.

Slides:



Advertisements
Similar presentations
A phylogenetic application of the combinatorial graph Laplacian Eric A. Stone Department of Statistics Bioinformatics Research Center North Carolina State.
Advertisements

05/11/2005 Carnegie Mellon School of Computer Science Aladdin Lamps 05 Combinatorial and algebraic tools for multigrid Yiannis Koutis Computer Science.
Partitional Algorithms to Detect Complex Clusters
Learning Trajectory Patterns by Clustering: Comparative Evaluation Group D.
Graph-02.
Modularity and community structure in networks
Information Networks Graph Clustering Lecture 14.
Online Social Networks and Media. Graph partitioning The general problem – Input: a graph G=(V,E) edge (u,v) denotes similarity between u and v weighted.
Clustering II CMPUT 466/551 Nilanjan Ray. Mean-shift Clustering Will show slides from:
Trends in Object-Oriented Software Evolution: Investigating Network Properties Alexander Chatzigeorgiou George Melas University of Macedonia Thessaloniki,
10/11/2001Random walks and spectral segmentation1 CSE 291 Fall 2001 Marina Meila and Jianbo Shi: Learning Segmentation by Random Walks/A Random Walks View.
Mining and Searching Massive Graphs (Networks)
1 Algorithms for Large Data Sets Ziv Bar-Yossef Lecture 3 March 23, 2005
Leting Wu Xiaowei Ying, Xintao Wu Dept. Software and Information Systems Univ. of N.C. – Charlotte Reconstruction from Randomized Graph via Low Rank Approximation.
Lecture 21: Spectral Clustering
Spectral Clustering Scatter plot of a 2D data set K-means ClusteringSpectral Clustering U. von Luxburg. A tutorial on spectral clustering. Technical report,
Spectral Clustering 指導教授 : 王聖智 S. J. Wang 學生 : 羅介暐 Jie-Wei Luo.
Applied Discrete Mathematics Week 12: Trees
CS 584. Review n Systems of equations and finite element methods are related.
Authoritative Sources in a Hyperlinked Environment Hui Han CSE dept, PSU 10/15/01.
A Unified View of Kernel k-means, Spectral Clustering and Graph Cuts
Fast algorithm for detecting community structure in networks.
Segmentation Graph-Theoretic Clustering.
CSE 222 Systems Programming Graph Theory Basics Dr. Jim Holten.
OBJECT-ORIENTED DESIGN EVALUATION USING ALGEBRAIC GRAPH THEORY Spiros Xanthos, Alexander Chatzigeorgiou and George Stephanides Department of Applied Informatics,
A scalable multilevel algorithm for community structure detection
Kyle Heath, Natasha Gelfand, Maks Ovsjanikov, Mridul Aanjaneya, Leo Guibas Image Webs Computing and Exploiting Connectivity in Image Collections.
COVERTNESS CENTRALITY IN NETWORKS Michael Ovelgönne UMIACS University of Maryland 1 Chanhyun Kang, Anshul Sawant Computer Science Dept.
Social Media Mining Graph Essentials.
Domain decomposition in parallel computing Ashok Srinivasan Florida State University COT 5410 – Spring 2004.
Wei Wang Xi’an Jiaotong University Generalized Spectral Characterization of Graphs: Revisited Shanghai Conference on Algebraic Combinatorics (SCAC), Shanghai,
Traceroute-like exploration of unknown networks: a statistical analysis A. Barrat, LPT, Université Paris-Sud, France I. Alvarez-Hamelin (LPT, France) L.
Popularity versus Similarity in Growing Networks Fragiskos Papadopoulos Cyprus University of Technology M. Kitsak, M. Á. Serrano, M. Boguñá, and Dmitri.
Random Walks and Semi-Supervised Learning Longin Jan Latecki Based on : Xiaojin Zhu. Semi-Supervised Learning with Graphs. PhD thesis. CMU-LTI ,
Segmentation Course web page: vision.cis.udel.edu/~cv May 7, 2003  Lecture 31.
GRAPHS CSE, POSTECH. Chapter 16 covers the following topics Graph terminology: vertex, edge, adjacent, incident, degree, cycle, path, connected component,
8 th Grade Math Common Core Standards. The Number System 8.NS Know that there are numbers that are not rational, and approximate them by rational numbers.
Placement of Entities in Object-oriented Systems by means of a Single-objective Genetic Algorithm Margaritis Basdavanos Alexander Chatzigeorgiou University.
Clustering of protein networks: Graph theory and terminology Scale-free architecture Modularity Robustness Reading: Barabasi and Oltvai 2004, Milo et al.
Murtaza Abbas Asad Ali. NETWORKOLOGY THE SCIENCE OF NETWORKS.
A Graph-based Friend Recommendation System Using Genetic Algorithm
Understanding Crowds’ Migration on the Web Yong Wang Komal Pal Aleksandar Kuzmanovic Northwestern University
Mining Social Networks for Personalized Prioritization Shinjae Yoo, Yiming Yang, Frank Lin, II-Chul Moon [KDD ’09] 1 Advisor: Dr. Koh Jia-Ling Reporter:
Spectral Analysis based on the Adjacency Matrix of Network Data Leting Wu Fall 2009.
Semantic Wordfication of Document Collections Presenter: Yingyu Wu.
Markov Cluster (MCL) algorithm Stijn van Dongen.
Andreas Papadopoulos - [DEXA 2015] Clustering Attributed Multi-graphs with Information Ranking 26th International.
Most of contents are provided by the website Graph Essentials TJTSD66: Advanced Topics in Social Media.
Models and Algorithms for Complex Networks Introduction and Background Lecture 1.
Domain decomposition in parallel computing Ashok Srinivasan Florida State University.
GRAPHS. Graph Graph terminology: vertex, edge, adjacent, incident, degree, cycle, path, connected component, spanning tree Types of graphs: undirected,
Speaker : Yu-Hui Chen Authors : Dinuka A. Soysa, Denis Guangyin Chen, Oscar C. Au, and Amine Bermak From : 2013 IEEE Symposium on Computational Intelligence.
 In the previews parts we have seen some kind of segmentation method.  In this lecture we will see graph cut, which is a another segmentation method.
Community structure in graphs Santo Fortunato. More links “inside” than “outside” Graphs are “sparse” “Communities”
Selected Topics in Data Networking Explore Social Networks:
Spectral Clustering Shannon Quinn (with thanks to William Cohen of Carnegie Mellon University, and J. Leskovec, A. Rajaraman, and J. Ullman of Stanford.
A Tutorial on Spectral Clustering Ulrike von Luxburg Max Planck Institute for Biological Cybernetics Statistics and Computing, Dec. 2007, Vol. 17, No.
Multivariate statistical methods. Multivariate methods multivariate dataset – group of n objects, m variables (as a rule n>m, if possible). confirmation.
Normalized Cuts and Image Segmentation Patrick Denis COSC 6121 York University Jianbo Shi and Jitendra Malik.
Document Clustering with Prior Knowledge Xiang Ji et al. Document Clustering with Prior Knowledge. SIGIR 2006 Presenter: Suhan Yu.
Network analysis.
NetMine: Mining Tools for Large Graphs
Jianping Fan Dept of CS UNC-Charlotte
Segmentation Graph-Theoretic Clustering.
Graph Operations And Representation
Spectral Clustering Eric Xing Lecture 8, August 13, 2010
3.3 Network-Centric Community Detection
A Fundamental Bi-partition Algorithm of Kernighan-Lin
Lecture 10: Graphs Graph Terminology Special Types of Graphs
Locality In Distributed Graph Algorithms
Presentation transcript:

Application of Graph Theory to OO Software Engineering Alexander Chatzigeorgiou, Nikolaos Tsantalis, George Stephanides Department of Applied Informatics University of Macedonia Thessaloniki, Greece WISER 2006, May 20, 2006, Shanghai, China

Motivation Application of Graph Theory to SE is not new: Planning: network diagrams (CPM, PERT) Analysis: DFDs, FSMs, Petri Nets Design: everything is essentially a graph Testing: McCabe's complexity measure... Graph Theory is suitable for object-oriented SE: Class diagrams can be perfectly mapped to graphs

System Representation

Identification of "God" classes Goal: to identify heavily loaded classes of an OO design such "God" classes imply a poor model Inspiration comes from the Web (HITS algorithm)

HITS Relative Importance: Low Relative Importance: High

Identification of "God" classes OO system : directed graph G=(V, E) classes  vertices associations  edges Each edge is annotated with an integer m p,q corresponding to the number of discrete messages sent to the same direction from p to q.

Identification of "God" classes

Using theorems from Linear Algebra, authority/hub weights can be obtained by finding the principal eigenvectors of A T A and AA T

Identification of "God" classes

Clustering Goal: to partition the system into strongly communicating classes might imply relevance of functionality might imply possible reusable components Spectral graph partitioning employs the degree matrix (diagonal matrix containing the degrees of vertices), and the Laplacian matrix, defined as L = D – A the smallest eigenvalue of L is always zero

Clustering the properties of the eigenvector x 2 associated with the second smallest eigenvalue λ 2 have been explored by M. Fiedler Clustering a graph G into two sub-graphs according to the positive and negatives entries of the Fiedler vector, corresponds to a partition which minimizes the weight of the cut set

Clustering weight cut-set = weight cut-set = weight cut-set = 1 provided by Fiedler vector

Clustering Application to OO systems: edges are undirected and edge weight is the sum of number of messages exchanged in both directions Partitioning is performed iteratively When to stop ? when a resulting graph is less cohesive than the parent graph

Clustering

DB Logic GUI

Design Pattern Detection Design Patterns (descriptions of communicating classes): form solutions to common problems According to Parnas software engineering deals with multi-version projects Multiple Versions + Large Number of Components = Complicated and messy architecture Patterns impose structure Consequently, the identification of implemented patterns is useful for understanding an existing design enables further improvements

Design Pattern Detection

Classical pattern matching algorithms fail since patterns often differ from the standard representation System Segment 1 System Segment 2 Pattern

Design Pattern Detection Exploiting recent research on graph similarity [Blondel2004] it is possible to measure the degree of similarity between two vertices

Design Pattern Detection similarity: 1 similarity: 0 similarity: 0.5 similarity: 1

Design Pattern Detection System Segment 1 System Segment 2 Pattern

Design Pattern Detection Experimental Results: JHotDraw v5.1 (172 classes) JRefactory (572 classes) JUnit 3.7 (99 classes)

Design Pattern Detection

Scale-Freeness of OO Systems Popular topic: investigation of whether certain systems (technological, biological, social etc) are scale-free A scale-free phenomenon shows up statistically in the form of power law. For a network, the probability P(k) that a node in the network connects with k other nodes is P(k) ~ k -γ

Scale-Freeness of OO Systems Naturally, research has also focused on OO systems Scale-freeness is usually graphically detected, since the relationship of P(k) vs. k, plotted on a log-log scale, appears as a line with slope -γ

Scale-Freeness of OO Systems

Recently, in [Li2005], a structural metric has been proposed to evaluate the scale-freeness of a network. For an undirected, simple and connected graph g=(V,E) The metric value is maximized when high-degree nodes ("hubs") are connected to other high-degree nodes. Among all graphs having the same degree sequence, there is a graph smax that maximizes the value of the metric s(g) and a graph smin that minimizes it. Thus:

Scale-Freeness of OO Systems Given such a metric, it is possible: to validate whether a given OO system is scale-free to assess whether an optimization increases scale-freeness to evaluate the evolution of systems in terms of scale-freeness

Conclusions Graph Theory has been widely applied on several CS fields It can provide a powerful "tool" for analyzing OO systems quantification of properties identification of structures Graph Theory is important for CS curricula

Application of Graph Theory to OO Software Engineering Thank you for your attention WISER 2006, May 20, 2006, Shanghai, China