Prism A Prism for research in software modularity through

Slides:



Advertisements
Similar presentations
Data Mining and Text Analytics GATE, by Joel Bywater.
Advertisements

Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
1 OBJECTIVES To generate a web-based system enables to assemble model configurations. to submit these configurations on different.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 32 Slide 1 Aspect-oriented Software Development.
ETX Workshop OOPSLA 2003 Prism pattern recognition for aspect mining Prism is Research in Software Modularization Charles Zhang and Hans-Arno Jacobsen.
Automated Analysis and Code Generation for Domain-Specific Models George Edwards Center for Systems and Software Engineering University of Southern California.
Software Factory Assembling Applications with Models, Patterns, Frameworks and Tools Anna Liu Senior Architect Advisor Microsoft Australia.
Whole Platform Tesi di Dottorato di: RICCARDO SOLMI Università degli Studi di Bologna Facoltà di scienze matematiche, fisiche e naturali Corso di Dottorato.
Reuse Activities Selecting Design Patterns and Components
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 32 Slide 1 Aspect-oriented Software Development 2.
Emerging Platform#4: Android Bina Ramamurthy.  Android is an Operating system.  Android is an emerging platform for mobile devices.  Initially developed.
Spring Roo CS476 Aleksey Bukin Peter Lew. What is Roo? Productivity tool Allows for easy creation of Enterprise Java applications Runs alongside existing.
© Drexel University Software Engineering Research Group (SERG) 1 Based on the paper by Philippe Kruchten from Rational Software.
Katanosh Morovat.   This concept is a formal approach for identifying the rules that encapsulate the structure, constraint, and control of the operation.
Xactium xDSLs Run Models Not Code Tony Clark
ICOM 5995: Performance Instrumentation and Visualization for High Performance Computer Systems Lecture 7 October 16, 2002 Nayda G. Santiago.
4 - 1 Copyright © 2006, The McGraw-Hill Companies, Inc. All rights reserved.
Aspect Oriented Programming Razieh Asadi University of Science & Technology Mazandran Babol Aspect Component Based Software Engineering (ACBSE)
An Introduction to Design Patterns. Introduction Promote reuse. Use the experiences of software developers. A shared library/lingo used by developers.
Computer Programming A program is a set of instructions a computer follows in order to perform a task. solve a problem Collectively, these instructions.
Hyper/J and Concern Manipulation Environment. The need for AOSD tools and development environment AOSD requires a variety of tools Life cycle – support.
Aspect Oriented Programming Sumathie Sundaresan CS590 :: Summer 2007 June 30, 2007.
Model-Driven Analysis Frameworks for Embedded Systems George Edwards USC Center for Systems and Software Engineering
Aspect Mining Eclipse Plug-in Provide the integrated aspect mining environment in the Eclipse IDE. Consists of the following functional components –Flexible.
Selected Topics in Software Engineering - Distributed Software Development.
An Ontological Framework for Web Service Processes By Claus Pahl and Ronan Barrett.
Methodology: The AOP Refactoring Process Aspect-Oriented Refactoring of the Apache Cocoon Shared-Object Resource Allocation System Jeff Dalton Advisor:
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
1 An Aspect-Oriented Implementation Method Sérgio Soares CIn – UFPE Orientador: Paulo Borba.
Frameworks CompSci 230 S Software Construction.
CASE1 Computer-Aided Software Engineering Advanced Software Engineering COM360 University of Sunderland © 2000.
1 Bogor – Software Model Checking Framework Presented by: Arpita Gandhi.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 31. Review Creational Design Patterns – Singleton Pattern – Builder Pattern.
Software Engineering Chapter: Computer Aided Software Engineering 1 Chapter : Computer Aided Software Engineering.
August 2003 At A Glance The IRC is a platform independent, extensible, and adaptive framework that provides robust, interactive, and distributed control.
Implementation of SCENS Yan Zhao. Current Status Current implementation is web-based –
Plug-in Architectures Presented by Truc Nguyen. What’s a plug-in? “a type of program that tightly integrates with a larger application to add a special.
CPSC 871 John D. McGregor Process – an introduction Module 0 Session 3.
Cross Language Clone Analysis Team 2 February 3, 2011.
Slide no. 1  =====!"§!“!Nova§ ITU-T work on technical languages and general software issues Amardeo Sarma Chairman, ITU-T Study Group 10.
Plug-In Architecture Pattern. Problem The functionality of a system needs to be extended after the software is shipped The set of possible post-shipment.
Ganga/Dirac Data Management meeting October 2003 Gennady Kuznetsov Production Manager Tools and Ganga (New Architecture)
ECLIPSE RICH CLIENT PLATFORM Part 1 Introduction.
1 Distributed Systems Architectures Distributed object architectures Reference: ©Ian Sommerville 2000 Software Engineering, 6th edition.
Introduction to Algorithm. What is Algorithm? an algorithm is any well-defined computational procedure that takes some value, or set of values, as input.
SOFA 2 Component Model Tomáš Bureš, Petr Hnětynka, František Plášil CHARLES UNIVERSITY PRAGUE Faculty of Mathematics and Physics Czech Republic.
Algorithms and Problem Solving
Android Development 陆俊敏 F
Basic 1960s It was designed to emphasize ease of use. Became widespread on microcomputers It is relatively simple. Will make it easier for people with.
Part II Software When developing software there are several particularities to be aware of: Java is widespread used because of the platform independence.
John D. McGregor Eclipse Process Framework Module 2 Session 4
GWE Core Grid Wizard Enterprise (
Lecture 2 of Computer Science II
CMPE419 Mobile Application Development
Developing Applications
Chapter 13 Logical Architecture.
Model-Driven Analysis Frameworks for Embedded Systems
Silverlight Technology
Architecture, Components, Configuration
Software Engineering INTRODUCTION
Chapter 13 Logical Architecture.
Chapter 1 Introduction(1.1)
Structuring Adaptive Applications using AspectJ and AOM
Automated Analysis and Code Generation for Domain-Specific Models
An Introduction to Eclipse
Implementing FOP Framework
CMPE419 Mobile Application Development
ARV: Aspect Refactoring Verifier
Plug-In Architecture Pattern
Chapter 13 Logical Architecture.
Presentation transcript:

Prism 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