Identifying Crosscutting Concerns Using Fan-In Analysis MARIUS MARIN, Delft University of Technology ARIE VAN DEURSEN, Delft University of Technology and.

Slides:



Advertisements
Similar presentations
Instructional Technology vs. Educational Technology
Advertisements

Configuration Management
MODUL 1 Analisis & Informasi Proses Bisnis (CSA221)
Aspect Oriented Programming. AOP Contents 1 Overview 2 Terminology 3 The Problem 4 The Solution 4 Join point models 5 Implementation 6 Terminology Review.
The design process IACT 403 IACT 931 CSCI 324 Human Computer Interface Lecturer:Gene Awyzio Room:3.117 Phone:
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 32 Slide 1 Aspect-oriented Software Development.
A Linguistics-Based Approach for Use Case Driven Analysis Using Goal and Scenario Authoring Vijayan Sugumaran Oakland University Rochester, Michigan, USA.
Chapter 15 Application of Computer Simulation and Modeling.
F21DF1 : Databases & Information SystemsLachlan M. MacKinnon & Phil Trinder Introduction to Information Systems Databases & Information Systems Lachlan.
1 Static Testing: defect prevention SIM objectives Able to list various type of structured group examinations (manual checking) Able to statically.
Architecture-driven Modeling and Analysis By David Garlan and Bradley Schmerl Presented by Charita Feldman.
University of British Columbia Software Practices Lab CAS Seminar 06 Fluid AJ - A Simple Fluid AOP Tool Terry Hon Gregor Kiczales.
End-to-End Design of Embedded Real-Time Systems Kang G. Shin Real-Time Computing Laboratory EECS Department The University of Michigan Ann Arbor, MI
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
SAS_06_STOL_Tool_Cooper Automated Systems Test and Operations Language (STOL) Analysis Tool Jason G. Cooper July 20, 2006.
Deriving AO Software Architectures using the AO-ADL Tool Suite Luis Fernández, Lidia Fuentes, Mónica Pinto, Juan A. Valenzuela Universidad de Málaga
Objects What are Objects Observations
1 Timna: A Framework for Automatically Combining Aspect Mining Analyses David Shepherd 1 Jeffrey Palm 2 Lori Pollock 1 Mark Chu-Carroll 3 1 University.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University Cross-application.
Software Engineering CS B Prof. George Heineman.
CLEANROOM SOFTWARE ENGINEERING.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Chapter 12 Object-Oriented.
ISO 9000 & TOTAL QUALITY ISO 9000 refers to a group of quality assurance standards established by the International Organization for Standardization.This.
A Z Approach in Validating ORA-SS Data Models Scott Uk-Jin Lee Jing Sun Gillian Dobbie Yuan Fang Li.
Presented by Abirami Poonkundran.  Introduction  Current Work  Current Tools  Solution  Tesseract  Tesseract Usage Scenarios  Information Flow.
Developing.NET Web Service- based Architectures with Aspect-Oriented Component Engineering Santokh Singh 1, Professor John Grundy 1,2 and Professor John.
Introduction to MDA (Model Driven Architecture) CYT.
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 09. Review Introduction to architectural styles Distributed architectures – Client Server Architecture – Multi-tier.
EMI INFSO-RI SA2 - Quality Assurance Alberto Aimar (CERN) SA2 Leader EMI First EC Review 22 June 2011, Brussels.
©2010 John Wiley and Sons Chapter 12 Research Methods in Human-Computer Interaction Chapter 12- Automated Data Collection.
Reviewing Recent ICSE Proceedings For:.  Defining and Continuous Checking of Structural Program Dependencies  Automatic Inference of Structural Changes.
What is a Business Analyst? A Business Analyst is someone who works as a liaison among stakeholders in order to elicit, analyze, communicate and validate.
Aspect Oriented Programming Sumathie Sundaresan CS590 :: Summer 2007 June 30, 2007.
Theory and Application of Database Systems A Hybrid Approach for Extending Ontology from Text He Wei.
1 Workshop on Business-Driven Enterprise Application Design & Implementation Cristal City, Washington D.C., USA, July 21, 2008 How to Describe Workflow.
R2PL, Pittsburgh November 10, 2005 Copyright © Fraunhofer IESE 2005 Identifying Domain-Specific Reusable Components from Existing OO Systems to Support.
AOP-1 Aspect Oriented Programming. AOP-2 Aspects of AOP and Related Tools Limitation of OO Separation of Concerns Aspect Oriented programming AspectJ.
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
Advanced Software Development & Engineering 1 Theme Introduction.
Aspect-Oriented Software Development Aspect Mining Aspect-Oriented Software Development Aspect Mining
Presented by: Ashgan Fararooy Referenced Papers and Related Work on:
Aspect-Oriented Requirements Engineering David Schaefer, Joao Araujo, Isabel Brito, Awais Rashid, Claudia Mesquita.
1 An Aspect-Oriented Implementation Method Sérgio Soares CIn – UFPE Orientador: Paulo Borba.
1 Test Selection for Result Inspection via Mining Predicate Rules Wujie Zheng
Most of contents are provided by the website Introduction TJTSD66: Advanced Topics in Social Media Dr.
ES component and structure Dr. Ahmed Elfaig The production system or rule-based system has three main component and subcomponents shown in Figure 1. 1.Knowledge.
Authors: Marius Pasca and Benjamin Van Durme Presented by Bonan Min Weakly-Supervised Acquisition of Open- Domain Classes and Class Attributes from Web.
Software Architecture Evaluation Methodologies Presented By: Anthony Register.
27/3/2008 1/16 A FRAMEWORK FOR REQUIREMENTS ENGINEERING PROCESS DEVELOPMENT (FRERE) Dr. Li Jiang School of Computer Science The.
Decision Mining in Prom A. Rozinat and W.M.P. van der Aalst Joosung, Ko.
Improving Dependability in Service Oriented Architectures using Ontologies and Fault Injection Binka Gwynne Jie Xu School of Computing University of Leeds.
Implementation of a Relational Database as an Aid to Automatic Target Recognition Christopher C. Frost Computer Science Mentor: Steven Vanstone.
Aspect Mining Jin Huang Huazhong University of Science & Technology, China
Face Image-Based Gender Recognition Using Complex-Valued Neural Network Instructor :Dr. Dong-Chul Kim Indrani Gorripati.
ANALYSIS PHASE OF BUSINESS SYSTEM DEVELOPMENT METHODOLOGY.
Automate Does Not Always Mean Optimize
Aspect-Oriented Programming with the Eclipse AspectJ plug-in
Chapter 12: Automated data collection methods
Tatsuya Miyake Takashi Ishio Katsuro Inoue
Evaluating Transaction System Performance
Object oriented analysis and design
SAMANVITHA RAMAYANAM 18TH FEBRUARY 2010 CPE 691
Software Verification and Validation
Web Mining Department of Computer Science and Engg.
Software Verification and Validation
Guided Research: Intelligent Contextual Task Support for Mails
Software Verification and Validation
Presentation transcript:

Identifying Crosscutting Concerns Using Fan-In Analysis MARIUS MARIN, Delft University of Technology ARIE VAN DEURSEN, Delft University of Technology and CWI LEON MOONEN, Delft University of Technology Presented By Rahul Basu, (04/01/08)

Introduction What is crosscutting concern? Cross-cutting concerns are aspects of a program which affect other concerns. These concerns often cannot be cleanly decomposed from the rest of the system in both the design and implementation, and result in either scattering or tangling of the program, or both.

Aspect mining is an upcoming research direction aimed at finding crosscutting concerns in existing, non-aspect oriented code. Once these concerns have been identified, they can be used for program understanding purposes. Fan-in analysis, an aspect mining approach that involves looking for methods that are called from many different call sites and whose functionality is needed across different methods, potentially spread over many classes and packages. Fan-in analysis is a semi automated process consisting of three steps. First, we identify the methods with the highest fan-in values. Second, we filter out methods that may have a high fan-in but for which it is unlikely that there is a systematic pattern in their usage that could be exploited in an aspect solution. Third, we inspect the call sites of the high fan-in methods, in order to determine if the method in question does indeed implement crosscutting functionality.

ASPECT MINING USING FAN-IN ANALYSIS Fan-in analysis consists of three steps: 1. Computation of the fan-in metric for all methods; 2. Filtering of the set of methods to obtain the methods that are most likely to implement crosscutting behavior; 3. Analysis of the remaining methods to determine which of them are part of the implementation of a crosscutting concern A Fan-In Metric for Aspect Mining The metric we will use for aspect mining is based on method fan-in, which is a “measure of the number of methods that call some other method” First refinement is to count the number of different method bodies that call some other method Second refinement deals with calls to polymorphic methods

Method Filtering After computing the fan-in values of all methods, the filters are applied, in order to obtain a smaller set of methods with a higher chance of implementing crosscutting behavior. - restrict the set of methods to those having a fan-in above a certain threshold. - filtering getters and setters from the list of methods. - filtering the utility methods. Seed Analysis Final step is to conduct a manual analysis of the remaining set of methods. This analysis follows a number of guidelines, part of which benefit from automatic support. Reasoning about the reported candidates can take a top-down or bottom-up approach.

The Fan-in Tool FINT The Fan-in Tool FINT is an Eclipse plug-in that provides automatic support for the metric computation, method filtering, and candidate analysis steps of fan-in analysis.

Analyzing the callers of a method with a high fan-in value by investigating their declaring interfaces. The callers declared by the same interface are shown in a same, distinctive color. Such analysis is helpful, for example, in identification of crosscutting responsibilities that are to be fulfilled by a number of classes.

Case Studies We have applied fan-in analysis to several case studies. All cases are open source systems, allowing validation of our results by others. The PETSTORE and JHOTDRAW systems are demonstration applications of J2EE technologies and design patterns. respectively. TOMCAT is the largest system, and one that is widely used in Web servers all over the world.

Conclusion & Future Work Contributions: 1. A new, metrics-based, aspect mining approach that aims at capturing crosscutting concerns by focusing on methods that are called from many places, and hence have a high fan-in. 2. FINT, a freely downloadable tool that supports fan-in analysis. Future Work: 1. Considering various extensions to FINT. One route is to integrate FINT with other concern elaboration tools, such as FEAT or the Concern Manipulation Environment CME. 2. Combine FINT with other automated aspect identification techniques, such as, for example, techniques based on formal concept analysis, identifier analysis, or clone detection.