Intelligibility of Pervasive Applications
In pervasive computing, one of the major concerns is which data an application uses as input and what it produces as output. Additionally, pervasive applications seem unpredictable to users as it is sometimes not clear why an application does something and what kind of input has invoked that action. Very often context-aware applications fail to adequately predict user intent, since the real context is much more complex than the context which is used for computation. Anind Dey has published a paper about “Modelling and intelligibility in ambient environments“. In the paper, he shows how implicit input in context-aware environments make it more difficult for users to create a mental model of an application.
In a previous post, I discussed how a user can become an application developer with the appropriate tools. I think a similar method could be used to visualise application-internal data. The ‘About’ section of an application could show which sensors are active, what data is being transferred between software modules, and even give the user the possibility to turn certain sensors on and off, or to choose what data is being transferred. Some of the data could also be set manually by the user if they wish to do so.
A simple mock-up of such a visualisation and configuration interface could look like this:
This could be an application which gathers some sensor data, combines them with information from a user’s google and facebook profile, then does some operation on this data and displays in on a UI with additional synchronisation with facebook and google. The idea is that a user could click on the sensors to turn them on or off, click on the connections to see what data is being transferred, and click on the modules to get a more detailed view of what operations are being done.
This would give the user the possibility to understand application internals without reading the source code. It would also allow for configurable settings at all levels of the application. Plus, if the user is not happy with the produced input/output, they could have the option to set them manually.
I believe such an “About” page could help users create a more appropriate mental model of an application, and gives them the possibility to actually understand what is happening on the inside of the application.
