Prism - PowerPoint PPT Presentation

About This Presentation
Title:

Prism

Description:

Prism fingerprint: A pattern definition specified by the user. ... Enable search of calling patterns defined at package level, class level, and method level. ... – PowerPoint PPT presentation

Number of Views:81
Avg rating:3.0/5.0
Slides: 21
Provided by: char471
Category:
Tags: pattern | prism

less

Transcript and Presenter's Notes

Title: Prism


1
Prism
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
2
Transforming 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
3
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
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
Prism Task 2
5
Prism Eclipse Plug-in
Prism footprints
Prism tasks
Fingerprints
Projects
Java Editor
6
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
Prism Fingerprint Configuration
Fingerprint name
Type pattern listing
Type browser
Regular expression listing
8
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
Prism Framework Decomposition Units and
Fingerprints
  • The decomposition unit hierarchy.
  • The implementation of fingerprints and its
    associated footprints

10
Prism Framework Prism Algorithms

11
Prism Framework Task Execution
12
Callex Extension of Prism Framework
  • Callex stands for call and lexical pattern based
    aspect analysis

13
Logical Mining Architecture
User interaction
  • Source
  • code

Results
Indexing, type and structure analyzer
Aspect Miner
Intermediate representation
14
Sample Mining Results
  • Sizes of the target systems minded
  • Degree of scattering

15
Other Project(s) Building on Prism
16
ARV, 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
17
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
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
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
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.
Write a Comment
User Comments (0)
About PowerShow.com