Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "ETX Workshop OOPSLA 2003 Prism pattern recognition for aspect mining Prism is Research in Software Modularization Charles Zhang and Hans-Arno Jacobsen."— Presentation transcript:

1 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, jacobsen}@eecg.toronto.edu

2 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

3 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?

4 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

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

6 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

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

8 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.

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

10 eTX Workshop OOPSLA 2003 Prism Framework: Prism Algorithms

11 eTX Workshop OOPSLA 2003 Prism Framework: Task Execution

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

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

14 eTX Workshop OOPSLA 2003 Sample Mining Results ORB Number of Classes KLOC JacOrb177870.1 ORBacus177762.7 OpenOrb152145.8 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

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

16 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

17 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.

18 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

19 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.

20 eTX Workshop OOPSLA 2003 References Charles Zhang and Hans-Arno Jacobsen, Quantifying Aspects in Middleware Systems. AOSD 2003. 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.


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

Similar presentations


Ads by Google