Aspect Mining Jin Huang Huazhong University of Science & Technology, China

Slides:



Advertisements
Similar presentations
Correlation Search in Graph Databases Yiping Ke James Cheng Wilfred Ng Presented By Phani Yarlagadda.
Advertisements

1 The PageRank Citation Ranking: Bring Order to the web Lawrence Page, Sergey Brin, Rajeev Motwani and Terry Winograd Presented by Fei Li.
ASTA Aspect Software Testing Assistant Juha Gustafsson, Juha Taina, Jukka Viljamaa University of Helsinki.
Spring, Hibernate and Web Services 13 th September 2014.
Presented by: Thabet Kacem Spring Outline Contributions Introduction Proposed Approach Related Work Reconception of ADLs XTEAM Tool Chain Discussion.
Reverse Engineering © SERG Code Cloning: Detection, Classification, and Refactoring.
Marko Rosenmüller - University of Magdeburg, Germany 1 Feature-oriented Refactoring of Berkeley DB Dagstuhl Seminar on Software Engineering for Tailor-made.
DATA MINING LECTURE 12 Link Analysis Ranking Random walks.
Java.sun.com/javaone/sf | 2004 JavaOne SM Conference | Session BUS JavaOne 2004 What is AOP? Gregor Kiczales AspectMentor.com and University of.
1 Algorithms for Large Data Sets Ziv Bar-Yossef Lecture 3 March 23, 2005
Introduction to PageRank Algorithm and Programming Assignment 1 CSC4170 Web Intelligence and Social Computing Tutorial 4 Tutor: Tom Chao Zhou
1 CS 430 / INFO 430: Information Retrieval Lecture 16 Web Search 2.
Estimating the Global PageRank of Web Communities Paper by Jason V. Davis & Inderjit S. Dhillon Dept. of Computer Sciences University of Texas at Austin.
Distributed PageRank Computation Based on Iterative Aggregation- Disaggregation Methods Yangbo Zhu, Shaozhi Ye and Xing Li Tsinghua University, Beijing,
ASPECT ORIENTED SOFTWARE DEVELOPMENT Prepared By: Ebru Doğan.
Identifying Crosscutting Concerns Using Fan-In Analysis MARIUS MARIN, Delft University of Technology ARIE VAN DEURSEN, Delft University of Technology and.
1 Case Study: Supplementing Program Analysis with Natural Language Analysis to Improve a Reverse Engineering Task David Shepherd, Lori Pollock, and K.
University of British Columbia Software Practices Lab CAS Seminar 06 Fluid AJ - A Simple Fluid AOP Tool Terry Hon Gregor Kiczales.
Software modularity group Gregor Kiczales Professor and NSERC/Xerox/Sierra Systems Software Design Chair University of British Columbia Principal Scientist.
Big Kernel: High Performance CPU-GPU Communication Pipelining for Big Data style Applications Sajitha Naduvil-Vadukootu CSC 8530 (Parallel Algorithms)
Application of Graph Theory to OO Software Engineering Alexander Chatzigeorgiou, Nikolaos Tsantalis, George Stephanides Department of Applied Informatics.
A Fault-tolerant Architecture for Quantum Hamiltonian Simulation Guoming Wang Oleg Khainovski.
Personalized Ontologies for Web Search and Caching Susan Gauch Information and Telecommunications Technology Center Electrical Engineering and Computer.
1 Model Interface Implementation for Two-Way Obliviousness in Aspect-Oriented Modeling Presented by Wuliang Sun Department of Computer Science Baylor University.
UNIT-V The MVC architecture and Struts Framework.
Impact Analysis of Database Schema Changes Andy Maule, Wolfgang Emmerich and David S. Rosenblum London Software Systems Dept. of Computer Science, University.
Managing Large RDF Graphs (Infinite Graph) Vaibhav Khadilkar Department of Computer Science, The University of Texas at Dallas FEARLESS engineering.
Ekrem Kocaguneli 11/29/2010. Introduction CLISSPE and its background Application to be Modeled Steps of the Model Assessment of Performance Interpretation.
Outline Introduction Problem Statement Object-Oriented Design Aspect-Oriented Design Conclusion Demo.
© Janice Regan, CMPT 128, Jan CMPT 128 Introduction to Computing Science for Engineering Students Creating a program.
Implementation Yaodong Bi. Introduction to Implementation Purposes of Implementation – Plan the system integrations required in each iteration – Distribute.
Introduction to Aspect Oriented Programming Presented By: Kotaiah Choudary. Ravipati M.Tech IInd Year. School of Info. Tech.
Graph Data Management Lab, School of Computer Science gdm.fudan.edu.cn XMLSnippet: A Coding Assistant for XML Configuration Snippet.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Investigation.
Ex-MATE: Data-Intensive Computing with Large Reduction Objects and Its Application to Graph Mining Wei Jiang and Gagan Agrawal.
1 University of Qom Information Retrieval Course Web Search (Link Analysis) Based on:
Formalizing the Asynchronous Evolution of Architecture Patterns Workshop on Self-Organizing Software Architectures (SOAR’09) September 14 th 2009 – Cambrige.
Aspect Oriented Programming Sumathie Sundaresan CS590 :: Summer 2007 June 30, 2007.
CMCD: Count Matrix based Code Clone Detection Yang Yuan and Yao Guo Key Laboratory of High-Confidence Software Technologies (Ministry of Education) Peking.
POSL (Principles of Software Languages) Gr. Kyushu Institute of Technology, Japan Pointcut-based Architectural Interface.
Aspect Oriented Programming Gülşah KARADUMAN.
The PageRank Citation Ranking: Bringing Order to the Web Lawrence Page, Sergey Brin, Rajeev Motwani, Terry Winograd Presented by Anca Leuca, Antonis Makropoulos.
On the Modularity Assessment of Aspect- Oriented Multi-Agent Systems Product Lines: a Quantitative Study Camila Nunes
Stochastic DAG Scheduling using Monte Carlo Approach Heterogeneous Computing Workshop (at IPDPS) 2012 Extended version: Elsevier JPDC (accepted July 2013,
Generative Programming. Automated Assembly Lines.
Methodology: The AOP Refactoring Process Aspect-Oriented Refactoring of the Apache Cocoon Shared-Object Resource Allocation System Jeff Dalton Advisor:
AOP-1 Aspect Oriented Programming. AOP-2 Aspects of AOP and Related Tools Limitation of OO Separation of Concerns Aspect Oriented programming AspectJ.
Design Patterns Gang Qian Department of Computer Science University of Central Oklahoma.
Introduction Better Faster Cheaper (pick any two) On-going issue that continues to motivate research in software engineering Applications: –continue to.
Computer Science and Engineering Parallelizing Defect Detection and Categorization Using FREERIDE Leonid Glimcher P. 1 ipdps’05 Scaling and Parallelizing.
Lecture #10 PageRank CS492 Special Topics in Computer Science: Distributed Algorithms and Systems.
1 An Aspect-Oriented Implementation Method Sérgio Soares CIn – UFPE Orientador: Paulo Borba.
IDENTIFYING SEMANTIC DIFFERENCES IN ASPECTJ PROGRAMS Martin Görg and Jianjun Zhao Computer Science Department, Shanghai Jiao Tong University.
Slicing AspectJ Woven Code Luca Cavallaro Mattia Monga Antonio Castaldo D'Ursi Davide Balzarotti Politecnico di Milano.
Chapter 8: Aspect Oriented Programming Omar Meqdadi SE 3860 Lecture 8 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
1 1 COMP5331: Knowledge Discovery and Data Mining Acknowledgement: Slides modified based on the slides provided by Lawrence Page, Sergey Brin, Rajeev Motwani.
HAMA: An Efficient Matrix Computation with the MapReduce Framework Sangwon Seo, Edward J. Woon, Jaehong Kim, Seongwook Jin, Jin-soo Kim, Seungryoul Maeng.
SSQSA present and future Gordana Rakić, Zoran Budimac Department of Mathematics and Informatics Faculty of Sciences University of Novi Sad
Lamport's Scalar clocks and Singhal-Kshemkalyani’s VC Algorithms
CS 351/ IT 351 Modeling and Simulation Technologies Review ( ) Dr. Jim Holten.
High-level Interfaces for Scalable Data Mining Ruoming Jin Gagan Agrawal Department of Computer and Information Sciences Ohio State University.
Lorenz: Visitor Beans: An Aspect-Oriented Pattern Aspect-oriented pattern: describes a solution to a tangling problem in a particular context.
Refined Online Citation Matching and Adaptive Canonical Metadata Construction CSE 598B Course Project Report Huajing Li.
Random Test Generation of Unit Tests: Randoop Experience
Aspect-oriented Code Generation Approaches Abid Mehmood & Dayang N. A. Jawawi Department of Software Engineering Faculty of Computer Science and Information.
1 CS 430 / INFO 430: Information Retrieval Lecture 20 Web Search 2.
Experience Report: System Log Analysis for Anomaly Detection
Aspect-Oriented Programming with the Eclipse AspectJ plug-in
Link-Based Ranking Seminar Social Media Mining University UC3M
Structuring Adaptive Applications using AspectJ and AOM
Presentation transcript:

Aspect Mining Jin Huang Huazhong University of Science & Technology, China (Under Construction)

Outline Introduction  Example  Application Related work Recent research Future work Useful Information

Crosscutting Concerns (CCs) Type of Crosscutting Concern  Homogeneous CCs: Similar pattern  Heterogeneous CCs: Different pattern CCs cause comprehension and maintenance problems

C Example : Homogeneous CCs void *HeapAlloc(size_t size) { #ifdef NUTDEBUG...//some code #endif NODE **fpp = 0; //code removed #if defined(__arm__) || defined(__m68k__) || defined(__H8300H__) || … while ((size & 0x03) != 0) size++; #endif if (size >= available) { #ifdef NUTDEBUG...//some code #endif return 0; } debug concern system-specific concern int is_orphaned_pgrp(int pgrp) { int retval; … read_lock(&tasklist_lock); … retval = will_become_orphaned _pgrp(pgrp, NULL); … read_unlock(&tasklist_lock); … return retval; } synchronization concern

Separating concerns Is There a Solution? Is AOP ?

Prefetching - Heterogeneous CCs Prefetching  Prefetching is used to preload the file from disk to memory. It is an OS mechanism for performance.  [‘Checking system rules using system-specific, programmer-written compiler extensions’. (OSDI, 2000)] Execution paths for prefetching  Randomly accessing path  Sequentially accessing path

Example 2: Prefetching

Application: Spring AOP Spring: An open source application framework  Inversion of Control container  Aspect-oriented programming framework  Transaction management Transaction management  With a number of transaction management  Provides a more simple API for programmatic transaction management than the APIs of JTA.  Paper: “Bringing Advanced Transaction Management Capabilities to Spring” Applicationshttp:// ring/jta_spring_article.pdf

Why Aspect Mining ? If AOP can do better than OOP ?

Outline Introduction Related work Recent research Future work Useful Information

Fan-in Analysis  An aspect mining approach that identifying CCs as methods that are called from many different call sites  ['Identifying Crosscutting Concerns Using Fan-In Analysis'.(WCRE2004, Marius Marin)] Limitation:  Only considering fan-in values of methods, can not find patterns of complex crosscutting concerns.

Random Walk Model Motivation  Inspired by pageRank algorithm of google Contribution  Paper first adopts the Markov model for computing popularity and significance values of elements in the coupling graphs.  Structure based mining approach: considering the coupling graphs of programs ‘Efficiently mining crosscutting concerns through random walks’. (Charles Zhang, AOSD 2007)

Clustering Approach Motivation  Information Retrieval: Clustering Contribution  Vector Space Model: a new model for aspect mining  Clustering approach is adopted for identifying CCs ‘Aspect Mining using a Vector-Space Model Based Clustering Approach’. (G. S. Moldovan and G. Serban, LATE, 2007)

Program Analyses for Aspect Mining Program Analyses (PA) Framework  Static analyse: points-to analyses, escape analyseis, and dependence analyses  Analyses Tools for Java: Soot, Indus. Aspect Mining through Program Analyses  Clone Detection: Mining homogeneous CCs.  Dependence Analysis: provide us dependencies for aspect mining.

Outline Introduction Related work Recent research  Two States Model  Algorithm  Selection Model  Experiment  Conclusion Future work Useful Information

Two States Model (1/2) Information Retrieval Algorithm  HITS algorithm: ‘Authoritative sources in a hyperlinked environment’, Jon Kleinberg, Two-States Model  Scatter - probability of being crosscutting logic.  Centralization - probability of being core logic Interaction of Two States

Algorithm (1/2) For each node q:  aq : Scatter value for vertex q.  hq : Centralization value for vertex q Computation model  Probability Distribution  Iterative Computation: t → t+1

Algorithm (2/2) Matrix form of previous equation Obviously the equation (8) converges with the properties of stochastic matrix

Selection Model  Implementation and Integration  Frequency  out-degree

Experiments setting Cases: Prevayler, JHotDraw and HSQLDB. Metrics  Precision: Threshold is set to be 0.4  Recall: Threshold is set to be 0.5 Comparison with Fan-in and Pagerank algorithms

Results for Prevayler

Results for JHotDraw

Results for HSQLDB

Advices for Aspect Refactoring Graph AGAC  AGAC is generated with our model. Grouping Crosscutting Concerns  Association rules mining from AGAC  Grouping CCs from rules

Conclusion We apply two-state model for aspect mining. This model is based on scatter and centralization states of program elements. We design a algorithm to compute of ”scatter” and ”centralization” states. with two-state model, we generate advices for Aspect refactoring ‘Aspect Mining through Link Analysis’, Jin Huang, FCST 2010.

Outline Introduction Related work Recent research Future work  Structural Aspect Mining  Clustering Useful Information

Structural Aspect Mining 1/2 Disadvantage of Existing Aspect Mining Methods  Too simple to find Structural information for aspect refactoring.  Example: Observer pattern may cause crosscutting concerns for ‘updating’. Refactoring

Structural Aspect Mining 2/2 Related Topics  Interactions of Structural Aspects. 'Analyzing Interactions of Structural Aspects'. Benoit Kessler, Eric Tanter. International Workshop on Aspects, Dependencies and Interactions (ADI)  Aspect Dependences and Interactions. 'AspectOptima: A Case Study on Aspect Dependencies and Interactions‘, Jorg Kienzle, Ekwa Duala-Ekoko, Samuel Gelineau, 2009.

Clustering Vector Space Model  OO Metrics are suggested.  'Aspect Mining Using Self-Organizing Maps With Method Level Dynamic Software Metrics as Input Vectors'. Sayyed Garba Maisikeli EM Clustering  An model-based clustering approach  Problems: Center Identification, Number of clusters

Outline Introduction Related work Recent research Future work Useful Information

Useful information AOP vs. OOP:  html html Mining Software Engineering Data:  Program Analysis  Indus: Indus:  Soot: Soot: Information Retrieval:  Link Analysis: 05/CS583-link-analysis.ppt 05/CS583-link-analysis.ppt  EM Clustering: maximization_algorithm maximization_algorithm