Research Projects

A sample of the numerous research projects that emerged from EUSES...

Yahoo! Pipes

We have designed techniques to simplify the structures of mashups and make them easier to understand, as can be shown by the mashups in the figures here, which were built in the Yahoo! Pipes environment. A more understandable and simpler structure, such as the mashup shown on the right, can lead to increased reuse and protect against common errors from external components, such as websites that no longer exist.

We have designed a tool prototype (grey bar at the bottom of the images) that identifies common errors in the mashup being viewed or created by a user and automatically restructures the mashup to address the issues. Our techniques can be applied to many environments that have the structure of a 'pipe-like mashup' where there are many data sources that create an output. Our study results show that the new mashups are easier for users to understand, easier to maintain, and more preferable among end users.

End-User Software Engineering & WYSIWYT applied to spreadsheets

WYSIWYT testing screen

The WYSIWYT (What You See is What You Test) testing approach. Cell borders reflect the "testedness" of cells. Users indicate "testing decisions" by placing checkmarks.

Fault localization support in the WYSIWYT

Fault localization support in the WYSIWYT approach. Cell interiors indicate all cells that might contain errors, with darker colors corresponding to increased likelihood. This feedback is triggered when the user notices bad values.

Assertions "guard" the values in cells

Assertions "guard" the values in cells. User-entered assertions are propagated through the spreadsheet as system assertions. These system assertions are compared with user-entered assertions. Conflicting assertions indicate the presence of errors, and are circled. Values outside assertion ranges are also circled.

The "Whyline" System

The Whyline's answer to a question

The Whyline's answer to a question. The programmer expected Pac to resize when Pac touched the Ghost, but the resize didn't seem to happen. The programmer asked, 'Why didn't Pac resize 0?' and the Whyline revealed that the resize did in fact happen, but had no effect on-screen. This helped the programmer isolate the problem to the resize statement and ignore other parts of the code that were correct.

The "UCheck" System

The UCheck System

The UCheck system can automatically detect errors in spreadsheet formulas by reasoning about the units of values in the spreadsheet. The unit information is automatically inferred from labels and headers that are contained in a spreadsheet, which allows communication about errors with the user's vocabulary.

The "ViTSL/Gencel" System

The ViTSL/Gencel System

The ViTSL/Gencel system is based on the idea to anticipate the possible evolutions of a spreadsheet and capture a class of spreadsheets in a template. A program generator will then create an initial spreadsheet together with customized update operations for such a template. These customized update operations allow users to edit the created spreadsheet while ensuring that no reference, range, or type errors can be introduced into the spreadsheet.


Templates are created with an editor, called ViTSL, which is similar to Excel, but offers additional functionality to specify templates. These templates can then be loaded into the Gencel system, which is implemented as an extension to Excel, and allows the safe, error-free editing of spreadsheets.


Topes Editor

Many end user programming tools such as spreadsheets and databases offer poor support for representing data at a level of abstraction that is intuitive to users. For example, users must work with "strings" rather than person names, phone numbers, or street addresses. As a result, validating and manipulating data is difficult.

Topes is a new user-extensible model for semi-structured data items. Each tope defines how to recognize a kind of data item based on format and context, and how to transform that kind of item among valid formats. To show the usefulness of this model, we will provide an environment to help end-user programmers to create, share, and apply topes, enabling these users to quickly implement data validation and reformatting functionality.