(Research Activities until 2003. See the EUSES Consortium Page for 2003-on.)
The objective of this project is to improve the reliability of software produced by end-user programming languages in general, and by spreadsheet languages in particular. Our approach is to address software engineering issues as an integrated whole in ways that incrementally interact with each other and with the user. For example, the system will notice the user's reactions to sample values she tests, and will then suggest general principles about the spreadsheet, encouraging the user to refine or modify the suggestions. This collaboration between the system and user will incrementally generate formal specifications as the spreadsheet evolves. These specifications can in turn be fed back to enhance reliability -- by automatically suggesting appropriate test values, by helping locate faults, and by ensuring continuing consistency with the specifications.The research involves three facets: developing an interactive mechanism for user-system collaboration, developing algorithms for the system's part of the collaboration, and conducting experiments to evaluate effectiveness. This is the first research attempting to bring fundamental software engineering principles to bear on end-user programming. Since the use of end-user-written programs and spreadsheets is widespread and their lack of reliability is pervasive, improved reliability will impact a potentially huge number of business and personal computer users.
This project's inspirations and beginnings came from our work on the WYSIWYT methodology for testing.
Our work on end-user software engineering eventually led to the founding of the EUSES Consortium in 2003. See that web page for the most recent results of our work and that of our collaborators.
We welcome the opportunity to collaborate with other organizations on this work. If you are interested in pursuing this, please contact one of the Principal Investigators.
The widespread use of spreadsheet-like VPLs makes it imperative that mechanisms to improve reliability be supported in a manner suited to the users of these languages as soon as possible. However, doing so is also expected to yield new insights into ways to facilitate in other kinds of end-user programming environments and ultimately, could even impact interactive visual programming languages and environments used by professional programmers.
Our empirical results are listed here.
Date of last update: Jul. 23, 2005