ETX Workshop OOPSLA 2003 Prism pattern recognition for aspect mining Prism is Research in Software Modularization Charles Zhang and Hans-Arno Jacobsen.

Slides:



Advertisements
Similar presentations
©2004 BLACKBOARD, INC. ALL RIGHTS RESERVED. Java Integrated Development Environments Heather Natour Senior Lead Engineer Blackboard Inc. July 18 th 10:15am.
Advertisements

Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Aspect Oriented Programming. AOP Contents 1 Overview 2 Terminology 3 The Problem 4 The Solution 4 Join point models 5 Implementation 6 Terminology Review.
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
1 OBJECTIVES To generate a web-based system enables to assemble model configurations. to submit these configurations on different.
Data Model driven applications using CASE Data Models as the nucleus of software development in a Computer Aided Software Engineering environment.
Automated creation of verification models for C-programs Yury Yusupov Saint-Petersburg State Polytechnic University The Second Spring Young Researchers.
1 The JQuery Tool A Generic Query-Based Code browser for Eclipse Project leaders: Kris De Volder, Gregor Kiczales Students: Doug Janzen, Rajeswari Rajagopalan,
Automated Analysis and Code Generation for Domain-Specific Models George Edwards Center for Systems and Software Engineering University of Southern California.
Algorithms and Problem Solving-1 Algorithms and Problem Solving.
Architecture Eclipse Framework with Plugin Concept JTransformer Plugin Analysis + Transformation interface: logical Program.language keeps representation.
1 Introduction to Software Engineering Lecture 42 – Communication Skills.
Software Factory Assembling Applications with Models, Patterns, Frameworks and Tools Anna Liu Senior Architect Advisor Microsoft Australia.
CS 290C: Formal Models for Web Software Lecture 6: Model Driven Development for Web Software with WebML Instructor: Tevfik Bultan.
Whole Platform Tesi di Dottorato di: RICCARDO SOLMI Università degli Studi di Bologna Facoltà di scienze matematiche, fisiche e naturali Corso di Dottorato.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 32 Slide 1 Aspect-oriented Software Development 2.
FHIRFarm – How to build a FHIR Server Farm (quickly)
1 Model Interface Implementation for Two-Way Obliviousness in Aspect-Oriented Modeling Presented by Wuliang Sun Department of Computer Science Baylor University.
Deriving AO Software Architectures using the AO-ADL Tool Suite Luis Fernández, Lidia Fuentes, Mónica Pinto, Juan A. Valenzuela Universidad de Málaga
SOA, BPM, BPEL, jBPM.
A Survey of Software Refactoring Tom Mens, Tom Tourwé
Katanosh Morovat.   This concept is a formal approach for identifying the rules that encapsulate the structure, constraint, and control of the operation.
Chapter 1 Introduction Dr. Frank Lee. 1.1 Why Study Compiler? To write more efficient code in a high-level language To provide solid foundation in parsing.
OpenCCM: The Open CORBA Components Platform 3rd ObjectWeb Conference 20th November 2003, INRIA Rocquencourt, France Philippe Merle INRIA.
Introduction to J2EE Architecture Portions by Kunal Mehta.
|Tecnologie Web L-A Anno Accademico Laboratorio di Tecnologie Web Introduzione ad Eclipse e Tomcat
OBJECT ORIENTED SYSTEM ANALYSIS AND DESIGN. COURSE OUTLINE The world of the Information Systems Analyst Approaches to System Development The Analyst as.
Reviewing Recent ICSE Proceedings For:.  Defining and Continuous Checking of Structural Program Dependencies  Automatic Inference of Structural Changes.
Computer Concepts 2014 Chapter 12 Computer Programming.
CS266 Software Reverse Engineering (SRE) Reversing and Patching Java Bytecode Teodoro (Ted) Cipresso,
Hyper/J and Concern Manipulation Environment. The need for AOSD tools and development environment AOSD requires a variety of tools Life cycle – support.
Aspect Oriented Programming Sumathie Sundaresan CS590 :: Summer 2007 June 30, 2007.
Model-Driven Analysis Frameworks for Embedded Systems George Edwards USC Center for Systems and Software Engineering
Aspect Mining Eclipse Plug-in Provide the integrated aspect mining environment in the Eclipse IDE. Consists of the following functional components –Flexible.
Verification and Validation in the Context of Domain-Specific Modelling Janne Merilinna.
Methodology: The AOP Refactoring Process Aspect-Oriented Refactoring of the Apache Cocoon Shared-Object Resource Allocation System Jeff Dalton Advisor:
Modeling Component-based Software Systems with UML 2.0 George T. Edwards Jaiganesh Balasubramanian Arvind S. Krishna Vanderbilt University Nashville, TN.
2007. Software Engineering Laboratory, School of Computer Science S E Web-Harvest Web-Harvest: Open Source Web Data Extraction tool 이재정 Software Engineering.
Model-Driven Engineering of Behaviors in User Interfaces Efrem Mbaki & Jean Vanderdonckt Université catholique de Louvain (UCL) Louvain School of Management.
1 An Aspect-Oriented Implementation Method Sérgio Soares CIn – UFPE Orientador: Paulo Borba.
Grid programming with components: an advanced COMPonent platform for an effective invisible grid © 2006 GridCOMP Grids Programming with components. An.
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.
Nucleus BridgePoint Roadmap Bill Tanner Engineering Manager.
ANKITHA CHOWDARY GARAPATI
SOFTWARE DESIGN. INTRODUCTION There are 3 distinct types of activities in design 1.External design 2.Architectural design 3.Detailed design Architectural.
CS 460/660 Compiler Construction. Class 01 2 Why Study Compilers? Compilers are important – –Responsible for many aspects of system performance Compilers.
CASE1 Computer-Aided Software Engineering Advanced Software Engineering COM360 University of Sunderland © 2000.
With Jeff Gray and Ira Baxter Robert Tairas Visualization of Clone Detection Results Eclipse Technology Exchange Workshop OOPSLA 2006 Portland, Oregon.
11 CORE Architecture Mauro Bruno, Monica Scannapieco, Carlo Vaccari, Giulia Vaste Antonino Virgillito, Diego Zardetto (Istat)
QPE A Graphical Editor for Modeling using Queueing Petri Nets Christofer Dutz.
Software Engineering Chapter: Computer Aided Software Engineering 1 Chapter : Computer Aided Software Engineering.
August 2003 At A Glance The IRC is a platform independent, extensible, and adaptive framework that provides robust, interactive, and distributed control.
Implementation of SCENS Yan Zhao. Current Status Current implementation is web-based –
Cross Language Clone Analysis Team 2 February 3, 2011.
aspectj tools new and noteworthy Mik Kersten University of British Columbia Adrian Colyer IBM Hursley OOPSLA, October
1 Asstt. Prof Navjot Kaur Computer Dept PRESENTED BY.
aspectj tools new and noteworthy Mik Kersten University of British Columbia Andy Clement, George Harley IBM Hursley Labs.
Ganga/Dirac Data Management meeting October 2003 Gennady Kuznetsov Production Manager Tools and Ganga (New Architecture)
ECLIPSE RICH CLIENT PLATFORM Part 1 Introduction.
Algorithms and Problem Solving
Component Based Software Engineering
Data Warehouse.
CAE-SCRUB for Incorporating Static Analysis into Peer Reviews
Model-Driven Analysis Frameworks for Embedded Systems
Structuring Adaptive Applications using AspectJ and AOM
Algorithms and Problem Solving
Automated Analysis and Code Generation for Domain-Specific Models
Chenchen Xi CNC Supervisor: Prof. John R. Gurd
Prism A Prism for research in software modularity through
ARV: Aspect Refactoring Verifier
Presentation transcript:

eTX Workshop OOPSLA 2003 Prism pattern recognition for aspect mining Prism is Research in Software Modularization Charles Zhang and Hans-Arno Jacobsen University of Toronto {czhang,

eTX Workshop OOPSLA 2003 Transforming Legacy Systems Using AOP tools Aspect discovery/mining AJDT Aspect Refactoring ARV Code-level Verification Aspect footprints Re-factored Aspects Prism Unit/Regression Testing Tool Functional VerificationVerified Aspects Over or under refactoring

eTX Workshop OOPSLA 2003 What is Prism?  Goal: A platform discovers aspects in very large systems composed in a variety of languages. Consists of both backend engine and user interface.  Core: A framework supports arbitrary language patterns and different pattern matching algorithms.  Language pattern: Lexical pattern:regular expressions Usage of types:where is my typeA? Execution flow:where are my actions?

eTX Workshop OOPSLA 2003 Prism Architecture: A set of extension points  Prism fingerprint: A pattern definition specified by the user.  Prism footprint: A encapsulation of the location information of a particular fingerprint.  Prism task: A customizable assembly of Prism fingerprints which represents a more complex pattern.  Prism algorithm: An algorithm responsible for matching a particular pattern and generating the associated footprint. Prism Engine Prism Algorithm Prism fingerprint Prism Task 1 Prism Task 2 Prism footprint

eTX Workshop OOPSLA 2003 Prism Eclipse Plug-in Prism footprints Java Editor Fingerprints Prism tasks Projects

eTX Workshop OOPSLA 2003 Configuring a Prism Fingerprint  A Prism fingerprint consists of any combinations of lexical patterns and type patterns.  Examples of type pattern: Referencing all types in a particular package. All types in package: org.omg.CORBA Referencing all methods of any class type: All call sites for all methods of class: org.omg.CORBA.Any AspectJ joinpoint definitions.  Examples of lexical pattern: Regular expressions

eTX Workshop OOPSLA 2003 Prism Fingerprint Configuration Fingerprint name Type pattern listing Regular expression listing Type browser

eTX Workshop OOPSLA 2003 Prism Footprint  Results of matching fingerprints in the source code.  Example: A fingerprint defined as “any method defined in the ‘ class java.util.Hashtable’, of which the name starts by ‘ get ’ ” has the following footprints.

eTX Workshop OOPSLA 2003 Prism Framework: Decomposition Units and Fingerprints 1.The decomposition unit hierarchy. 2.The implementation of fingerprints and its associated footprints

eTX Workshop OOPSLA 2003 Prism Framework: Prism Algorithms

eTX Workshop OOPSLA 2003 Prism Framework: Task Execution

eTX Workshop OOPSLA 2003 Callex Extension of Prism Framework Callex stands for call and lexical pattern based aspect analysis

eTX Workshop OOPSLA 2003 Logical Mining Architecture Source code Source code Indexing, type and structure analyzer Aspect Miner Results Intermediate representation User interaction

eTX Workshop OOPSLA 2003 Sample Mining Results ORB Number of Classes KLOC JacOrb ORBacus OpenOrb ORBDPMPIErrorPre/ Post LoggingSync. JacOrb23%3.52%46.5%13.3%14.66%14.11% ORBacus26.56%7.09%45.5%5.47%18.9%9.16% OpenOrb23%13%44.6%10.4%16.3%9.41% Sizes of the target systems minded Degree of scattering

eTX Workshop OOPSLA 2003 Other Project(s) Building on Prism

eTX Workshop OOPSLA 2003 ARV, A Prism Implementation Declare Warning Effective joinpoints Prism Task Prism Engine Prism Algorithms ARV Extension Prism Fingerprint Prism Footprints ARV is Aspect Refactoring Verifier

eTX Workshop OOPSLA 2003 Goals Achieved To Date  Complete GUI integration with Eclipse. Provides the Eclipse aspect mining perspective.  Enable search of calling patterns defined at package level, class level, and method level. Supports the AspectJ call pattern convention.  Supports navigation between mining results and source locations.  Supports quantification of type usage scattering through computing degree of scattering as well as scattering ranking.

eTX Workshop OOPSLA 2003 Goals Achieved To Date  Packaged as Eclipse plug-in  Managed in CVS source tree  Short user manual (targets aspect-aware developers)  Short technical communication about Prism (unpublished)  Poster and demos at eTX/ICSE 2003, eTX/OOPSLA 2003, CASCON 2003  Intention to submit as demo proposal to AOSD 2004

eTX Workshop OOPSLA 2003 Future Work  Mining of multiple languages (e.g., C++).  Support finding patterns based on language phrases. Enable mining aspects based on their control/data flow characteristics.  Analysis of conditional variables. Find non-localized slices caused by conditionals as candidates of aspects.  Aspect mining algorithms based on statistical learning and data mining techniques.

eTX Workshop OOPSLA 2003 References Charles Zhang and Hans-Arno Jacobsen, Quantifying Aspects in Middleware Systems. AOSD Charles Zhang and Hans-Arno Jacobsen, Re-factoring Middleware Systems: A case study. DOA Charles Zhang and Hans-Arno Jacobsen, Re-factoring Middleware with Aspects, IEEE TPDS.