Tag Archives: java

Slides for today’s talk on improving interface modularity in legacy Java software through automated refactoring

Towards Improving Interface Modularity in Legacy Java Software Through Automated Refactoring

Towards Improving Interface Modularity in Legacy Java Software Through Automated Refactoring

Raffi Khatchadourian

Department of Computer Systems Technology, New York City College of Technology, City University of New York

MARCH 3 @ 12:00 PM – 1:00 PM in N928

The skeletal implementation pattern is a software design pattern consisting of defining an abstract class that provides a partial interface implementation. However, since Java allows only single class inheritance, if implementers decide to extend a skeletal implementation, they will not be allowed to extend any other class. Also, discovering the skeletal implementation may require a global analysis.

Java 8 enhanced interfaces alleviate these problems by allowing interfaces to contain (default) method implementations, which implementers inherit. Java classes are then free to extend a different class, and a separate abstract class is no longer needed; developers considering implementing an interface need only examine the interface itself.

In this talk, I will argue that both these benefits improve software modularity, and I will discuss our ongoing work in developing an automated refactoring tool that would assist developers in taking advantage of the enhanced interface feature for their legacy Java software.

Raffi Khatchadourian is an Assistant Professor in the Department of Computer Systems Technology (CST) at New York City College of Technology (NYCCT) of the City University of New York (CUNY) and an Open Educational Resources (OER) Fellow for the Spring 2016 semester. His research is centered on techniques for automated software evolution, particularly those related to automated refactoring and source code recommendation systems. His goal is to ease the burden associated with correctly and efficiently evolving large and complex software by providing automated tools that can be easily used by developers.

Raffi received his MS and PhD degrees in Computer Science from Ohio State University and his BS degree in Computer Science from Monmouth University in New Jersey. Prior to joining City Tech, he was a Software Engineer at Apple, Inc. in Cupertino, California, where he worked on Digital Rights Management (DRM) for iTunes, iBooks, and the App store. He also developed distributed software that tested various features of iPhones, iPads, and iPods.

DETAILS

Date:
March 3
Time:
12:00 pm – 1:00 pm
Event Category:
Event Tags:
, , , , ,, , , ,

VENUE

N928
300 Jay St., Room N928
Brooklyn, NY 11201 United States
Phone:
718-260-5170
Website:
http://www.citytech.cuny.edu/academics/deptsites/cst

ORGANIZER

Computer Systems Technology Colloquium Series
Phone:
(718) 260-5170
Email:
Website:
https://openlab.citytech.cuny.edu/cstcolloquium

Towards Improving Interface Modularity in Legacy Java Software Through Automated Refactoring

The skeletal implementation pattern is a software design pattern consisting of defining an abstract class that provides a partial interface implementation. However, since Java allows only single class inheritance, if implementers decide to extend a skeletal implementation, they will not be allowed to extend any other class. Also, discovering the skeletal implementation may require a global analysis.

Java 8 enhanced interfaces alleviate these problems by allowing interfaces to contain (default) method implementations, which implementers inherit. Java classes are then free to extend a different class, and a separate abstract class is no longer needed; developers considering implementing an interface need only examine the interface itself.

In this talk, I will argue that both these benefits improve software modularity, and I will discuss our ongoing work in developing an automated refactoring tool that would assist developers in taking advantage of the enhanced interface feature for their legacy Java software.

Raffi Khatchadourian is an Assistant Professor in the Department of Computer Systems Technology (CST) at New York City College of Technology (NYCCT) of the City University of New York (CUNY) and an Open Educational Resources (OER) Fellow for the Spring 2016 semester. His research is centered on techniques for automated software evolution, particularly those related to automated refactoring and source code recommendation systems. His goal is to ease the burden associated with correctly and efficiently evolving large and complex software by providing automated tools that can be easily used by developers.

Raffi received his MS and PhD degrees in Computer Science from Ohio State University and his BS degree in Computer Science from Monmouth University in New Jersey. Prior to joining City Tech, he was a Software Engineer at Apple, Inc. in Cupertino, California, where he worked on Digital Rights Management (DRM) for iTunes, iBooks, and the App store. He also developed distributed software that tested various features of iPhones, iPads, and iPods.

Introduction to New Features in Java 8

Computer Systems Technology Colloquium Series presents:
Introduction to New Features in Java 8
Raffi Khatchadourian


Computer Systems Technology
New York City College of Technology
Room N906
Thursday, March 26, 2015 12-1pm
Light refreshments will be served!

Java 8 is one of the largest upgrades to the popular language and framework in over a decade. This talk will detail several new key features of Java 8 that can help make programs easier to read, write, and maintain. Java 8 comes with many features, especially related to collection libraries. We will cover such new features as Lambda Expressions, the Stream API, enhanced interfaces, and more.

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.

Introduction to New Features in Java 8

Computer Systems Technology Colloquium Series presents:
Introduction to New Features in Java 8
Raffi Khatchadourian

Computer Systems Technology
New York City College of Technology
Room N906
Thursday, March 26, 2015 12-1pm
Light refreshments will be served!

Java 8 is one of the largest upgrades to the popular language and framework in over a decade. This talk will detail several new key features of Java 8 that can help make programs easier to read, write, and maintain. Java 8 comes with many features, especially related to collection libraries. We will cover such new features as Lambda Expressions, the Stream API, enhanced interfaces, and more.

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.

Slides from “Android Apps the Right Way”

Slides from yesterday’s talk on Android app development by Michael Barnathan.