The Knowledge Management Lab
University of Toronto

 
Home Projects People Publications Join us
Modeling and Materializing Software Customization
Project Home
People
Publications
Description

Software development has generally adopted the one size fits many model in which software is designed for a few classes of user groups, rather than tailoring it to the needs of individual users. Clearly, different individuals with different levels of expertise, different preferences, needs and goals, require different kinds of services. For example, automated telephone banking might be designed to fit both business analysts with sophisticated profiles and students with basic needs. Such situations are common, and indicate a need for software customization, a research problem that received little attention in the literature.

One approach to customizing software is to pack all possible functionality into a generic system (e.g. MS Word). But this makes for bloated software and perplexed users who must dive into a chaos of technical terms and low level adjustments to attempt to reconcile the system to their needs, skills and preferences. Another approach is program families, but this approach is very coarse-grained, geared to large target groups rather than individuals.

In this project, we propose a methodological framework for identifying customization parameters during requirements analysis that deals with the customization of non-functional aspects of a system  (such as those to do with interfaces), as well as functional aspects of the system. We view the reconciliation of software to individuals as a two step process:

  1. Customization: the definition of the variants of the system.
  2. Personalization: the process of assigning users the variant that is the best fit.
Our framework encompasses user goals, skills and preferences. During the customization phase, a model of user goals is created. A goal model starts with high-level user goals (such as "maintain contact with friends") and reduces these through AND and OR decompositions into lower-level subgoals and ultimately into subgoals that can be satisfied by a person or a system function. Distinct solutions to the AND/OR goal decomposition tree represent distinct alternatives.  Each alternative is then characterized in terms of the skills that it requires and the preferences that it presumes. During the personalization phase, given a  profile of a user's skills and preferences, the most suitable alternative can be selected.

Shown below is a detail of a goal model used to customize a communication system for people with traumatic brain injury. The figure illustrates a goal and six alternative solutions. In practice, a full goal graph may have tens of billions of alternative solutions.

Animation of the goal models

Our research to date leads to a number questions. Can we use goal models to derive product families that are customized in a fine-grained manner [Leite 03]? Is it possible to extend the selection criteria beyond skills and preferences? For instance, how can we deal with contextual restrictions and opportunities?

Funding Agency:
Principle Investigator:

  The Knowledge Management Lab is now part of the Bell University Labs

 

  UofT logo The Knowledge Management Lab - Department of Computer Science - University of Toronto