Aspect-Oriented GUI Behavior Framework

An aspect-oriented framework to provide GUIs with prototyped behavior


Usability is a highly relevant attribute not only in customer-perceived software quality, representing a major decision factor for project managers. The main problem is that usability assessment is a complex process often expensive in terms of time and human resources, which hinders its integration into current developments. Its integration into the development process is specially cumbersome in Agile Approaches---aimed at having an available release at the end of each iteration---, which consider usability engineering as a heavy and expensive activity. Therefore, they do not explicitly take care of user-oriented design (UX) issues, and also lack user involvement in development processes.

In this context, prototyping has been described as one of the easiest ways to embed usability assessment into agile methods. Nevertheless, prototyping techniques present some drawbacks that hinder their seamless integration into agile developments. To solve these problems, the Aspect-Oriented Behavior Framework is aimed at supporting a sheer iterative prototyping and development approach. It proposes to reuse digital low-fi prototypes from the very beginning. Such prototypes are iteratively refined and developed into hi-fidelity prototypes towards the end-user application.

For this purpose, it uses an aspect-oriented approach to decouple prototyped functionality from the GUI specification and the final implementation, easing the collaboration between UI designers and developers. UI designers can provide the digital mock-ups with navigability and basic functionality using scripting languages. Developers are able to iteratively add the final functionality to the prototype until the application is completely developed. Prototyped functionality---implemented as a separate aspect---and final functionality can coexist, even run together. Furthermore, as interpreted languages are used to add prototyped functionality, aesthetic and functionality modifications can be performed at run-time to support participatory design techniques.


Framework implementation

The framework has been implemented for the Qt windowing system to create the GUI prototypes, and the Lua script language to define the prototyped behavior. Besides other features, it supports changing the prototyped behavior at run-time. The framework has been also tested on real industrial scenarios, presenting promising results in overall behavior and performance.

Framework integration

This solution has been designed as an aspect-oriented service, and works in parallel while the application is running. It is integrated seamless into a software development: the whole service is encapsulated in a single object, and it uses an additional configuration file in which all the information needed during the process (e.g. the path including the behavior files) is encapsulated.

How does it work?

Here you can watch a video that shows a preview of the framework operation:

Download

The Aspect-Oriented GUI Behavior Framework source-code can be downloaded from SourceForge. Click  here to download.

For Debian distributions, you can download the .DEB packages here:

 Qt & Lua Behavior Framework v1.0

 CSU Base Library v1.3

 CSU Qt Library v1.0

For other distributions or .TAR.GZ packages visit the  files section in Sourceforge.