uDesign

Domains such as assisted living and long-term healthcare, emergency response, smart homes, and surveillance are characterized by (a) highly personalized requirements, and (b) dynamic changes, both in their requirements and with respect to which devices are convenient to use.

Already struggling to keep pace with the increasing demand for software, the community of professional software developers has no effective means to develop a different solution for every individual, a solution that must constantly change in response to that individual’s needs and preferences.

This research develops a conceptual framework and set of tools to enable end-users to quickly design and deploy software systems in domains supported by smart spaces.  For example, a doctor might write a prescription for the healthcare features and behavior of an outpatient’s smart home, much like medicine is prescribed today.  The patient could tailor the prescribed behavior to suit personal and privacy preferences; for instance, by including family members as first-line responders.  Furthermore, the system might be adjusted over time, by healthcare professionals or by the patient, to accommodate new devices, features, and behaviors in response to the evolution of the patient’s condition.

Starting from the insight that code structures and programming primitives are too fine-grained and removed from the experience of end-users, this work aims at striking a balance between expressiveness and usability.

uDesign offers an intuitive metaphor for software design based on boxes, pipes, and wires, but retains enough preciseness so that systems can be automatically assembled and dynamically reconfigured based on uDesign descriptions.  Such a metaphor is close to user intuitions, and can address a meaningful spectrum of applications in the aforementioned domains. 

The goal of this research is to develop uDesign and validate its effectiveness in helping real users address real problems.  This research includes extending preliminary work in uDesign, eliciting the most effective conceptual primitives and their syntactic representation, developing prototype tools to support the uDesign lifecycle, and carrying out controlled user studies in domains such as long-term healthcare and home surveillance. 

For more details see this paper.