Open Access. Powered by Scholars. Published by Universities.®

Physical Sciences and Mathematics Commons

Open Access. Powered by Scholars. Published by Universities.®

Programming Languages and Compilers

City University of New York (CUNY)

Software engineering

Articles 1 - 11 of 11

Full-Text Articles in Physical Sciences and Mathematics

Csc 71010/Csci 77100: Programming Languages/Software Engineering, Raffi T. Khatchadourian Jan 2023

Csc 71010/Csci 77100: Programming Languages/Software Engineering, Raffi T. Khatchadourian

Open Educational Resources

No abstract provided.


Introduction, Raffi T. Khatchadourian Jan 2023

Introduction, Raffi T. Khatchadourian

Open Educational Resources

No abstract provided.


Reengineering And Refactoring, Raffi T. Khatchadourian Jan 2023

Reengineering And Refactoring, Raffi T. Khatchadourian

Open Educational Resources

No abstract provided.


Wala Quick Start, Raffi T. Khatchadourian Jan 2023

Wala Quick Start, Raffi T. Khatchadourian

Open Educational Resources

Setting up and trying the TJ Watson Library for Analysis (WALA).


Building An Ast Eclipse Plug-In, Raffi T. Khatchadourian Jan 2023

Building An Ast Eclipse Plug-In, Raffi T. Khatchadourian

Open Educational Resources

Complete the Building an AST Eclipse Plug-in assignment. Once it works, find a medium-sized open-source Java project to run your plugin on. You may want to explore GitHub. Import the project into Eclipse and run your plug-in on it. Report on the following, which may require you to change some of the source code so that it is convenient:

  1. Project name.
  2. Project URL.
  3. Project description.
  4. The number of classes in the project.
  5. The number of user-defined methods in the project.
  6. For each class, the number of method calls.
  7. Statistics about the method calls:
    1. The total number of method calls …


Working With Control-Flow Graphs, Raffi T. Khatchadourian Jan 2023

Working With Control-Flow Graphs, Raffi T. Khatchadourian

Open Educational Resources

No abstract provided.


Eclipse, Osgi, And The Java Model, Raffi T. Khatchadourian Jan 2022

Eclipse, Osgi, And The Java Model, Raffi T. Khatchadourian

Open Educational Resources

No abstract provided.


Abstract Syntax Trees (Asts) And The Visitor Pattern, Raffi T. Khatchadourian Jan 2022

Abstract Syntax Trees (Asts) And The Visitor Pattern, Raffi T. Khatchadourian

Open Educational Resources

No abstract provided.


Detecting Broken Pointcuts Using Structural Commonality And Degree Of Interest, Raffi T. Khatchadourian, Awais Rashd, Hidehiko Masuhara, Takuya Watanabe Nov 2015

Detecting Broken Pointcuts Using Structural Commonality And Degree Of Interest, Raffi T. Khatchadourian, Awais Rashd, Hidehiko Masuhara, Takuya Watanabe

Publications and Research

Pointcut fragility is a well-documented problem in Aspect-Oriented Programming; changes to the base code can lead to join points incorrectly falling in or out of the scope of pointcuts. Deciding which pointcuts have broken due to base-code changes is daunting, especially in large and complex systems. We present an automated approach that recommends pointcuts that are likely to require modification due to a certain base-code change and ones that do not. Our hypothesis is that join points selected by a pointcut exhibit common structural characteristics. Patterns describing such commonalities recommend pointcuts that have potentially broken to the developer. The approach …


Pointcut Rejuvenation: Recovering Pointcut Expressions In Evolving Aspect-Oriented Software, Raffi T. Khatchadourian, Phil Greenwood, Awais Rashid, Harry Xu May 2012

Pointcut Rejuvenation: Recovering Pointcut Expressions In Evolving Aspect-Oriented Software, Raffi T. Khatchadourian, Phil Greenwood, Awais Rashid, Harry Xu

Publications and Research

Pointcut fragility is a well-documented problem in Aspect-Oriented Programming; changes to the base code can lead to join points incorrectly falling in or out of the scope of pointcuts. In this paper, we present an automated approach that limits fragility problems by providing mechanical assistance in pointcut maintenance. The approach is based on harnessing arbitrarily deep structural commonalities between program elements corresponding to join points selected by a pointcut. The extracted patterns are then applied to later versions to offer suggestions of new join points that may require inclusion. To illustrate that the motivation behind our proposal is well founded, …


Rejuvenate Pointcut: A Tool For Pointcut Expression Recovery In Evolving Aspect-Oriented Software, Raffi T. Khatchadourian, Awais Rashid Sep 2008

Rejuvenate Pointcut: A Tool For Pointcut Expression Recovery In Evolving Aspect-Oriented Software, Raffi T. Khatchadourian, Awais Rashid

Publications and Research

Aspect-oriented programming (AOP) strives to localize the scattered and tangled implementations of crosscutting concerns (CCCs) by allowing developers to declare that certain actions (advice) should be taken at specific points (join points) during the execution of software where a CCC (an aspect) is applicable. However, it is non-trivial to construct optimal pointcut expressions (a collection of join points) that capture the true intentions of the programmer and, upon evolution, maintain these intentions. We demonstrate an AspectJ source-level inferencing tool called rejuvenate pointcut which helps developers maintain pointcut expressions over the lifetime of a software product. A key insight into the …