Title: Prism
 1Prism 
Prism is Research in Software Modularization
pattern recognition for aspect mining
Charles Zhang and Hans-Arno Jacobsen University 
of Toronto czhang, jacobsen_at_eecg.toronto.edu 
 2Transforming Legacy Systems Using AOP tools
Aspect discovery/mining
Prism
Aspect footprints
Aspect Refactoring
AJDT
Re-factored Aspects
Code-level Verification
ARV
Over or under refactoring
Functional Verification
Verified Aspects
Unit/Regression Testing Tool 
 3What 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?
4Prism 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 fingerprint
Prism footprint
Prism Engine
Prism Task 1
Prism Algorithm
Prism fingerprint
Prism footprint
Prism Task 2 
 5Prism Eclipse Plug-in
Prism footprints
Prism tasks
Fingerprints
Projects
Java Editor 
 6Configuring 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
7Prism Fingerprint Configuration
Fingerprint name
Type pattern listing
Type browser
Regular expression listing 
 8Prism 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.
9Prism Framework Decomposition Units and 
Fingerprints
- The decomposition unit hierarchy. 
- The implementation of fingerprints and its 
 associated footprints
10Prism Framework Prism Algorithms
  11Prism Framework Task Execution 
 12Callex Extension of Prism Framework
-  Callex stands for call and lexical pattern based 
 aspect analysis
13Logical Mining Architecture
User interaction
Results
Indexing, type and structure analyzer
Aspect Miner
Intermediate representation 
 14Sample Mining Results
-  Sizes of the target systems minded
15Other Project(s) Building on Prism 
 16ARV, A Prism Implementation
Declare Warning
Effective joinpoints
ARV is Aspect Refactoring Verifier
Prism Fingerprint
Prism Fingerprint
Prism Task 
Prism Task 
Prism Footprints
ARV Extension
Prism Algorithms
Prism Engine 
 17Goals 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.
18Goals 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
19Future 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.
20References
- 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.