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:
- Customization: the definition of the variants of the system.
- 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.
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: |
|
|