Crunch: Search-based Hierarchy Generation for State Machines Mathew Hall University of Sheffield.

Slides:



Advertisements
Similar presentations
Department of Electronic Engineering NUIG Direct Evolution of Patterns using Genetic Algorithms By: John Brennan Supervisor: John Maher.
Advertisements

Heuristic Search techniques
Learning Trajectory Patterns by Clustering: Comparative Evaluation Group D.
Genetic Algorithms (Evolutionary Computing) Genetic Algorithms are used to try to “evolve” the solution to a problem Generate prototype solutions called.
O(N 1.5 ) divide-and-conquer technique for Minimum Spanning Tree problem Step 1: Divide the graph into  N sub-graph by clustering. Step 2: Solve each.
1 Ivan Marsic Rutgers University LECTURE 15: Software Complexity Metrics.
More Efficient Generation of Plane Triangulations Shin-ichi Nakano Takeaki Uno Gunma University National Institute of JAPAN Informatics, JAPAN 23/Sep/2003.
Data Mining Cluster Analysis: Basic Concepts and Algorithms
Design Concepts and Principles
1 An Architecture for Distributing the Computation of Software Clustering Algorithms 2001 Working Conference on Software Architecture (WICSA'01). Brian.
A GENETIC ALGORITHM APPROACH TO SPACE LAYOUT PLANNING OPTIMIZATION Hoda Homayouni.
Detailed Design Kenneth M. Anderson Lecture 21
Software engineering for real-time systems
Reverse Engineering: Legacy Systems Alexander Endert.
Genetic Algorithms for multiple resource constraints Production Scheduling with multiple levels of product structure By : Pupong Pongcharoen (Ph.D. Research.
© 2005 Prentice Hall8-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
Learning from Experience: Case Injected Genetic Algorithm Design of Combinational Logic Circuits Sushil J. Louis Genetic Algorithm Systems Lab(gaslab)
Creator: ACSession No: 5 Slide No: 1Reviewer: SS CSE300Advanced Software EngineeringSeptember 2005 Software Measurement - Basics CSE300 Advanced Software.
Artificial Intelligence Genetic Algorithms and Applications of Genetic Algorithms in Compilers Prasad A. Kulkarni.
Semi-Supervised Clustering Jieping Ye Department of Computer Science and Engineering Arizona State University
Algorithmic Problems in Algebraic Structures Undecidability Paul Bell Supervisor: Dr. Igor Potapov Department of Computer Science
Cyclomatic Complexity Dan Fleck Fall 2009 Dan Fleck Fall 2009.
1 Using Heuristic Search Techniques to Extract Design Abstractions from Source Code The Genetic and Evolutionary Computation Conference (GECCO'02). Brian.
GENERAL CONCEPTS OF OOPS INTRODUCTION With rapidly changing world and highly competitive and versatile nature of industry, the operations are becoming.
CSE 242A Integrated Circuit Layout Automation Lecture: Partitioning Winter 2009 Chung-Kuan Cheng.
What we didn’t have time for CS664 Lecture 26 Thursday 12/02/04 Some slides c/o Dan Huttenlocher, Stefano Soatto, Sebastian Thrun.
Lecture 8: 24/5/1435 Genetic Algorithms Lecturer/ Kawther Abas 363CS – Artificial Intelligence.
1Software Measurement Advanced Software Engineering COM360 University of Sunderland © 2001.
Genetic algorithms Charles Darwin "A man who dares to waste an hour of life has not discovered the value of life"
1 A Heuristic Approach Towards Solving the Software Clustering Problem ICSM03 Brian S. Mitchell /
© Ronaldo Menezes, Florida Tech Fundamentals of Algorithmic Problem Solving  Algorithms are not answers to problems  They are specific instructions for.
Summarizing the Content of Large Traces to Facilitate the Understanding of the Behaviour of a Software System Abdelwahab Hamou-Lhadj Timothy Lethbridge.
Fuzzy Genetic Algorithm
Week 10Complexity of Algorithms1 Hard Computational Problems Some computational problems are hard Despite a numerous attempts we do not know any efficient.
Digital Intuition Cluster, Smart Geometry 2013, Stylianos Dritsas, Mirco Becker, David Kosdruy, Juan Subercaseaux Welcome Notes Overview 1. Perspective.
1 The Search Landscape of Graph Partitioning Problems using Coupling and Cohesion as the Clustering Criteria Brian S. Mitchell & Spiros Mancoridis
EGEE-III INFSO-RI Enabling Grids for E-sciencE EGEE and gLite are registered trademarks Grid-enabled parameter initialization for.
© SERG Reverse Engineering (Interconnection Styles) Interconnection Styles.
Data Structures and Algorithms in Parallel Computing Lecture 2.
GET CONNECTED Information Technology Career Cluster.
CSCI 4310 Lecture 2: Search. Search Techniques Search is Fundamental to Many AI Techniques.
Machine Learning and Data Mining Clustering (adapted from) Prof. Alexander Ihler TexPoint fonts used in EMF. Read the TexPoint manual before you delete.
1 Control Flow Analysis Topic today Representation and Analysis Paper (Sections 1, 2) For next class: Read Representation and Analysis Paper (Section 3)
E.G.M. PetrakisText Clustering1 Clustering  “Clustering is the unsupervised classification of patterns (observations, data items or feature vectors) into.
Graph Theory. undirected graph node: a, b, c, d, e, f edge: (a, b), (a, c), (b, c), (b, e), (c, d), (c, f), (d, e), (d, f), (e, f) subgraph.
Module 7 Test Review. Formulas Shifting Functions  Given g(x) on a graph, f(x) = g(x) + 7 would mean that…..  Answer: g(x) would be shifted 7 units.
CES 592 Theory of Software Systems B. Ravikumar (Ravi) Office: 124 Darwin Hall.
Onlinedeeneislam.blogspot.com1 Design and Analysis of Algorithms Slide # 1 Download From
(0, 0) (36, 0) (30, 4) (0, 10) WARM UP: a. Graph the system of inequalities. b. What are the vertices of the solution? Write your answers as ordered pairs.
Data Preprocessing: Data Reduction Techniques Compiled By: Umair Yaqub Lecturer Govt. Murray College Sialkot.
1 Modeling the Search Landscape of Metaheuristic Software Clustering Algorithms Dagstuhl – Software Architecture Brian S. Mitchell
1 CS270 Project Overview Maximum Planar Subgraph Danyel Fisher Jason Hong Greg Lawrence Jimmy Lin.
Ariel Fuxman, Panayiotis Tsaparas, Kannan Achan, Rakesh Agrawal (2008) - Akanksha Saxena 1.
Testing i. explain the importance of system testing and installation planning;
MULTI-OBJECTIVE APPROACHES FOR SOFTWARE MODULE CLUSTERING C. Kishore10121D2509 Presented by Guide: Head of the Department: Mr A.Srinivasulu, M.Tech.,(Ph.D.)
Object Oriented Systems Design
Metrics of Software Quality
White-Box Testing Pfleeger, S. Software Engineering Theory and Practice 2nd Edition. Prentice Hall, Ghezzi, C. et al., Fundamentals of Software Engineering.
School of Computing Clemson University Fall, 2012
R-CNN region By Ilia Iofedov 11/11/2018 BGU, DNN course 2016.
John Nicholas Owen Sarah Smith
Example: Applying EC to the TSP Problem
Software Clustering.
Homework Assignment 1: Use the following data set to test the performance difference of three clustering algorithms: K-means, AP clustering and Spectral.
Dept. of MMME, University of Newcastle upon Tyne
Dept. of MMME, University of Newcastle upon Tyne
Robot Intelligence Kevin Warwick.
Dept. of MMME, University of Newcastle upon Tyne
More on HW 2 (due Jan 26) Again, it must be in Python 2.7.
2001 IEEE International Conference on Software Maintenance (ICSM'01).
Presentation transcript:

Crunch: Search-based Hierarchy Generation for State Machines Mathew Hall University of Sheffield

Background State machines Reverse engineered Transition label only, no state names

State Machines Small & ManageableLarge and difficult ostream/

Solution: Add a Hierarchy

Complexity Reduction Abstraction – Only look at what you want to see Cyclomatic complexity – E - N + 2 – E is reduced when a transition from a group replaces individual transitions

Hierarchy Generation = Clustering Bundle related states together What does ‘related’ mean? – Generally – Given limited information available?

Bunch: Search-Based Clustering Classic example: Bunch [Mitchell & Mancoridis] Similar problem – Software module dependency graph (MDG) – Group similar modules together An example MDG

Bunch: Search-Based Clustering Multiple Hill Climbs Maximises a fitness function – MQ – Minimise number of edges between groups – Designed with low coupling, high cohesion in mind

Crunch: Search Based State Machine Clustering Bunch works (very well!) but isn’t ideal for state machines Crunch mitigates problems with Bunch: – Takes a state machine (reflexive edges and all) – GA, evolves a linear sequence of merges – Designed with fitness function development in mind Open source:

Crunch Getting results, but how good are they?

Evaluating Hierarchies Generally: – Compare with a known good solution Bunch: – Stability: compare fitness values of many solutions – Ask developers These mostly assess how good the algorithm is at approximating existing results, not how good the result is

Evaluating Crunch Output No ‘right’ answer No expert to discuss a result with Currently just using a set of metrics: – Cyclomatic complexity Flat state machine after merging edges Top level – Number of edges between & within clusters – MQ

Work so far… Crunch Technique for getting state machines via AspectJ & StateChum Fitness functions: – MQ – Similarity (based on connectivity of two states) – Cyclomatic complexity – and more…

Results: Commons HashBag Fitness FunctionIntra EdgesExtra EdgesTop Level CC Number of ClustersMQ Avg Min Max CyclomaticAvg Min Max FeatureSetAvg Min Max LutzAvg Min Max XORAvg Min Max RandomAvg Min Max

Future Work Improve evaluation method – Better metrics – human-based study Develop fitness functions In-depth case studies