Conventional wisdom in the software community demands that software engineers program to interfaces just like engineers in physical disciplines construct artifacts from off-the-rack components with well-defined interfaces. Empirical data shows, however, that programmers do not use interfaces even in programming languages (such as C# and Java) that support them with explicit syntax.

The objective of this project is to investigate a radical approach to interface-oriented programming. The PI and his students will design and implement a programming language in which programmers must program to interfaces. Time permitting, they will also explore the construction of supportive software tools for refactoring existing programs into interface-oriented code. Based on these first steps, they will then explore how (student) programmers work in such a radically interface-oriented context and what effects it has on software design. The lessons learned from this investigation will have a broader impact than just the immediate academic research community. It will help the designers of programming languages with the next generation of OOP languages; it will suggest how programming environments can assist programmers with software tools to achieve certain standards; and it will provide guidance to software engineering educators who wish to teach interface-oriented programming.

Agency
National Science Foundation (NSF)
Institute
Division of Computer and Communication Foundations (CCF)
Type
Standard Grant (Standard)
Application #
0540818
Program Officer
Sol J. Greenspan
Project Start
Project End
Budget Start
2006-07-01
Budget End
2011-06-30
Support Year
Fiscal Year
2005
Total Cost
$329,237
Indirect Cost
Name
Northeastern University
Department
Type
DUNS #
City
Boston
State
MA
Country
United States
Zip Code
02115