Download End-user participation in evolutionary development

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
User Participation in Evolutionary Development
User Participation in
Evolutionary Development
Anders Mørch
InterMedia
University of Oslo
[email protected]
www.intermedia.uio.no
EUD-Net kick-off
Pisa, 23/9 - 2002
1
User Participation in Evolutionary Development
Keywords from previous presentations
• Natural programming
• Gardening metaphor
• Runtime tailorability
• Domain-expert users
• From abstract to concrete
• From concrete to abstract
EUD-Net kick-off
Pisa, 23/9 - 2002
2
User Participation in Evolutionary Development
Outline
• User participation in development
• Evolution as guiding principle
– From natural to artificial evolution
– End users as initiators of evolutionary change
• Level of abstraction appropriate for user
participation (gardening metaphor)
• Past work
• Planned work
EUD-Net kick-off
Pisa, 23/9 - 2002
3
User Participation in Evolutionary Development
User participation in development
• User participation in Scandinavian system
development has been about how to involve
users in the early stages of development
(analysis and design) and evaluation
• This is appropriate for easy-to-use systems
• One of the main EUD-Net goal is to move
from easy-to-use to easy-to-develop systems
• Our interest: Users as active participants in
the further development of existing systems
EUD-Net kick-off
Pisa, 23/9 - 2002
4
User Participation in Evolutionary Development
Natural evolution as guiding principle
• Evolution by incrementally making small
changes to existing systems over long time
works remarkably well
• A step beyond ”one shot” framework
instantiation (e.g. spreadsheet development)
• Principles of natural evolution have been
successfully adopted in many other domains
(building architecture, evolution of everyday tools, etc)
• Two levels of evolution: species and individual
EUD-Net kick-off
Pisa, 23/9 - 2002
5
User Participation in Evolutionary Development
Two kinds of natural evolution
• Phylogenetic evolution: The evolution of
species (our gene pool; the gene pool of trees)
• Ontogenetic evolution: The evolution of an
individual member of a species (you and me;
the tree outside the building we’re in)
• Hypothesis: Natural evolution can serve as
analogy to identify and explain differences
between two kinds of software evolution
EUD-Net kick-off
Pisa, 23/9 - 2002
6
User Participation in Evolutionary Development
Two kinds of software evolution
• Programming language evolution: The
evolution of programming languages (e.g.,
Simula 67 => C++ => Java)
• Program evolution: The evolution of an
individual member (a program, an application)
created from a programming language
(Word 1 => Word 4.0 => Word 97, etc.)
• Program evolution was first (seriously) treated by Lehman and Belady (IBM OS/360)
EUD-Net kick-off
Pisa, 23/9 - 2002
7
User Participation in Evolutionary Development
Layers of program
code in an application
Domain-oriented
extensions
Generic extensions
Each layer can be implemented in
the same (or a different) language
Tailorable generic application
Application integration framework
Program evolution
Program evolution
and programming
language evolution
Programming languages
Visual programming
languages (VPL)
Scripting languages
Object-oriented languages
Binary languages (e.g. Java bytcode)
Language evolution
(E.g. HDL1 => HDL2 => HDL3
Simula 67 => C++ => Java)
Hardware description languages (HDL)
EUD-Net kick-off
Pisa, 23/9 - 2002
8
User Participation in Evolutionary Development
From natural to artificial evolution
• NL works by two basic mechanisms: genetic
variation and natural selection
• Genetic variation is a micro level mechanism
that can cause permanent (inheritable) change
in an organism
• Natural selection is a macro mechanism that
is caused by external (environmental) factors
• The mechanisms are outside the reach of
individuals and create a micro/macro gap
EUD-Net kick-off
Pisa, 23/9 - 2002
9
User Participation in Evolutionary Development
Narrowing the micro/macro gap of NL
Unit of
adaptation
macro
intermediate
micro
EUD-Net kick-off
Natural selection
Individuals
participation
Genetic variation
Pisa, 23/9 - 2002
10
User Participation in Evolutionary Development
Going too far is bypassing the issue?
Unit of
adaptation
selection
macro
intermediate
Participation?
micro
variation
EUD-Net kick-off
Pisa, 23/9 - 2002
11
User Participation in Evolutionary Development
Shortening the variation-selection loop
Variation
Genetic/
Random
Deliberated
Selection
Artificial
EUD-Net kick-off
Natural
Pisa, 23/9 - 2002
12
User Participation in Evolutionary Development
Adopting evolutionary perspectives to EUD
• Goal: users as active participants as creators
of evolutionary change
• User participation requirements:
– unit of variation should approximate unit of
selection
– unit of selection should approximate unit of use
• Designer perspective :
– Artificial selection
– Deliberated variation
EUD-Net kick-off
Pisa, 23/9 - 2002
13
User Participation in Evolutionary Development
Analogical solution (and metaphor)
• “Gardening” as analogical solution
• Why: Gardening provides a level of
abstraction that is suitable for user
participation
• Two literal examples :
– “Pruning” as metaphor for artificial selection
– “Grafting” as metaphor for deliberated variation
EUD-Net kick-off
Pisa, 23/9 - 2002
14
User Participation in Evolutionary Development
Artificial selection: Pruning a bonsai tree
EUD-Net kick-off
Pisa, 23/9 - 2002
15
User Participation in Evolutionary Development
Deliberated variation:
Grafting and budding a fruit tree
EUD-Net kick-off
Pisa, 23/9 - 2002
16
User Participation in Evolutionary Development
Past work at UiO: End-user tailoring
• Techniques for deliberated variation
(”application grafting”) :
– customization
– integration
– extension
• Application units as basic building blocks
• Application unit goes beyond GUI objects by
providing access to levels of an application
below the user interface
EUD-Net kick-off
Pisa, 23/9 - 2002
17
User Participation in Evolutionary Development
Evolving BasicDraw into KitchenDesign
• Example: How to build a specialized drawing
Customization
Integration
Extension
program from a generic program ?
BasicDraw
EUD-Net kick-off
KitchenDesign
Pisa, 23/9 - 2002
18
User Participation in Evolutionary Development
Exposing aspects below the user interface
2
1
shiftMouseDown
altMouseDown
1b
ctrlMouseDown
EUD-Net kick-off
3
Pisa, 23/9 - 2002
19
User Participation in Evolutionary Development
Planned work
• Tools and techniques for artificial selection
(“application pruning”) :
– intervention
– de-coupling
– conservation
• Component-based systems with embedded
“gardening” tools
• Artificial selection as abstraction mechanism
for turning components “off” during execution
to cope with superfluous functionality growth
EUD-Net kick-off
Pisa, 23/9 - 2002
20
User Participation in Evolutionary Development
References
• An elaborated version of this presentation
can be found in the following paper:
Mørch, A.I. Evolutionary Growth and Control in User Tailorable
Systems. In Adaptive Evolutionary Information Systems. N.
Patel (ed.). Idea Group Publishing, 2002.
(may take time to download ..)
http://www.intermedia.uio.no/ansatte/morch/research/publications/ead/02Chap.pdf
EUD-Net kick-off
Pisa, 23/9 - 2002
21