prism l.
Skip this Video
Loading SlideShow in 5 Seconds..
Prism PowerPoint Presentation
Download Presentation

Loading in 2 Seconds...

play fullscreen
1 / 20

Prism - PowerPoint PPT Presentation

  • Uploaded on

Prism is Research in Software Modularization. Prism. pattern recognition for aspect mining. Charles Zhang and Hans-Arno Jacobsen University of Toronto {czhang, jacobsen} Transforming Legacy Systems Using AOP tools. Aspect discovery/mining. Prism. Aspect footprints.

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about 'Prism' - albert

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

Prism is Research in Software



pattern recognition for aspect mining

Charles Zhang and Hans-Arno Jacobsen

University of Toronto

{czhang, jacobsen}

eTX Workshop OOPSLA 2003

transforming legacy systems using aop tools
Transforming Legacy Systems Using AOP tools

Aspect discovery/mining


Aspect footprints

Aspect Refactoring


Re-factored Aspects

Code-level Verification


Over or under refactoring

Functional Verification

Verified Aspects

Unit/Regression Testing Tool

eTX Workshop OOPSLA 2003

what is prism
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 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

eTX Workshop OOPSLA 2003

Prism Task 2

prism eclipse plug in
Prism Eclipse Plug-in

Prism footprints

Prism tasks



Java Editor

eTX Workshop OOPSLA 2003

configuring a prism fingerprint
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
Prism Fingerprint Configuration

Fingerprint name

Type pattern listing

Type browser

Regular expression listing

eTX Workshop OOPSLA 2003

prism footprint
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
Prism Framework: Decomposition Units and Fingerprints
  • The decomposition unit hierarchy.
  • The implementation of fingerprints and its associated footprints

eTX Workshop OOPSLA 2003

prism framework prism algorithms
Prism Framework: Prism Algorithms

eTX Workshop OOPSLA 2003

prism framework task execution
Prism Framework: Task Execution

eTX Workshop OOPSLA 2003

callex extension of prism framework
Callex Extension of Prism Framework
  • Callex stands for call and lexical pattern based aspect analysis

eTX Workshop OOPSLA 2003

logical mining architecture
Logical Mining Architecture

User interaction





type and



Aspect Miner

Intermediate representation

eTX Workshop OOPSLA 2003

sample mining results
Sample Mining Results
  • Sizes of the target systems minded
  • Degree of scattering

eTX Workshop OOPSLA 2003

other project s building on prism
Other Project(s) Building on Prism

eTX Workshop OOPSLA 2003

arv a prism implementation
ARV, A Prism Implementation

Declare Warning

Effective joinpoints

ARV is

Aspect Refactoring


Prism Fingerprint

Prism Fingerprint

Prism Task

Prism Task

Prism Footprints

ARV Extension

Prism Algorithms

Prism Engine

eTX Workshop OOPSLA 2003

goals achieved to date
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 date18
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
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


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.

eTX Workshop OOPSLA 2003