90 likes | 371 Views
A Prism for research in software modularity through aspect mining. Prism. pattern recognition for aspect mining. Charles Zhang and Hans-Arno Jacobsen Middleware Systems Research Group University of Toronto. What is Prism?.
E N D
A Prism for research in software modularity through aspect mining Prism pattern recognition for aspect mining Charles Zhang and Hans-Arno Jacobsen Middleware Systems Research Group University of Toronto CASCON 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? CASCON 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 fingerprint Prism footprint Prism Engine Prism Task 1 Prism Algorithm Prism fingerprint Prism footprint CASCON 2003 Prism Task 2
Prism Eclipse Plug-in Prism footprints Prism tasks Fingerprints Projects Java Editor CASCON 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 CASCON 2003
Prism Fingerprint Configuration Fingerprint name Type pattern listing Type browser Regular expression listing CASCON 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. CASCON 2003