Software Engineering Seminar Series
Fraglight: Shedding Light on Broken Pointcuts in Evolving Aspect-Oriented Software
Computer Systems Technology
New York City College of Technology, Room N921
Thursday, November 13 1-2pm
Aspect-Oriented Programming compliments Object-Oriented Programming by modularizing code that would otherwise be scattered and tangled throughout a system. Since its inception in the last decade, it has made a substantial impact in both academia and industry, with many Aspect-Oriented languages emerging. It has influenced many new language features, such as method interceptors in .NET and categories in Objective-C, as well as application frameworks, such as Spring and JBoss.
While providing many benefits, however, Aspect-Oriented programs can experience other complications as software evolves. Because the paradigm relies on queries over the program’s dynamic execution, certain program changes can adversely effect to function. Deciding which queries have broken is a daunting venture, especially in large and complex systems. In this talk, Dr. Khatchadourian will present his ongoing, joint work on an automated approach that recommends likely modifications to aspects due to a certain code change. The approach has been implemented as an open-source extension to the popular Mylyn Eclipse Integrated Development Environment plugin, which maintains focused contexts of entities relevant to the task at hand.
Dr. Raffi Khatchadourian is an Assistant Professor in the Department of Computer Systems Technology at New York City College of Technology of the City University of New York. He received his MS and PhD degrees in Computer Science from Ohio State University and his BS degree in Computer Science from Monmouth University, NJ. Prior to joining City Tech, he was a Software Engineer at Apple, Inc., Cupertino, California, where he worked on Digital Rights Management (DRM) for iTunes, iBooks, and the App store. He also developed distributed software that tests various features of iPhones, iPads, and iPods. His research involves automated software evolution, such as refactoring and source code recommendation systems. He is focused on easing the burden associated with correctly and efficiently evolving large and complex software by providing automated tools that can be easily used by developers.