Technical Program
  Invited Speakers
  Technical Papers
  Practitioner Reports
Educators' Symposium
Doctoral Symposium
Student Research Comp.
Turing Lecture
Social Events
Week at a Glance
Final Program (1.5M .pdf)

Find in Program


view, help

"Prism is Research in Software Modularization through Aspect Mining"
Object-Oriented Programming, Systems, Languages and Applications
Home    Program    Housing & Transportation    Registration    Submissions    Wiki    Maps

 : All Demonstrations : Wednesday : Wednesday Demonstrations

Prism is Research in Software Modularization through Aspect Mining

Courtyard, Demo room 2
Wednesday, 15:30, 45 minutes


This event is also being given Tuesday at 16:30.

Charles Chuan Zhang, University of Toronto
Hans-Arno Jacobsen, University of Toronto

Demonstration number: 11

A crucial premise of applying aspect oriented software development is the identification of crosscutting concerns or aspects. For very large software systems, finding aspects is often a great challenge due to their non-localized presence in code. In this software demonstration, we show Prism, a source code analysis tool aiming at giving users lucent views of non-modularized concerns in large code bases.

Prism implements a user-driven aspect mining approach by providing diversified ways of describing hidden concerns. These descriptions, called "fingerprints." can be simple lexical patterns or more complicated type patterns. For complex characteristics of aspects, Prism has the ability of specifying arbitrary code phrases which describe syntactical structures, type information and program flows about aspects. In addition, different types of descriptions can be composed together to form more complex fingerprints.

Implemented as an Eclipse plugin, Prism provides an integrated mining environment with the Eclipse IDE in which the user can easily create, modify, and reuse fingerprints. Prism computes matches of the fingerprints and allows direct navigation from these matches, called "footprints," to their actual location in the code. Prism is also designed as a cross-language aspect mining platform currently with full support for Java systems and partial support for C# systems.

This demo will first illustrate the afore-described functionalities of Prism. A case study is then presented to show an aspect mining methodology we have developed and the effectiveness of finding and analyzing aspects in large software systems.

Prism is readily available at [1,2] and has been actively used in several research projects [3,4,5,6].


[1] Prism Eclipse plug-in for Download.

[2] Make-shift Prism Web Page. URL: http://www.eecg.toronto.edu/~jacobsen/prism/

[3] C. Zhang and H.-A. Jacobsen. Resolving Implementation Convolution in Middleware Systems (perspective title). ACM OOPSLA 2004.

[4] C. Zhang, H.-A. Jacobsen. Quantifying Aspects in Middleware Platforms. International AOSD'02 Conference, Boston, MA 2002.

[5] C. Zhang, H.-A. Jacobsen. Refactoring Middleware Platforms. IEEE Trans. on Parallel and Distributed Systems, November 2003.

[6] C. Zhang, H.-A. Jacobsen. Refactoring Middleware Platforms: A Case Study. International DOA Conference, Italy, November, 2003.