user participation in evolutionary development l.
Skip this Video
Loading SlideShow in 5 Seconds..
User Participation in Evolutionary Development PowerPoint Presentation
Download Presentation
User Participation in Evolutionary Development

Loading in 2 Seconds...

play fullscreen
1 / 21

User Participation in Evolutionary Development - PowerPoint PPT Presentation

  • Uploaded on

User Participation in Evolutionary Development. Anders Mørch InterMedia University of Oslo www.intermedia.uio .no. Keywords from previous presentations. Natural programming Gardening metaphor Runtime tailorability Domain-expert users

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about 'User Participation in Evolutionary Development' - tangia

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
user participation in evolutionary development
User Participation in Evolutionary Development

Anders MørchInterMediaUniversity of

keywords from previous presentations
Keywords from previous presentations

Natural programming

Gardening metaphor

Runtime tailorability

Domain-expert users

From abstract to concrete

From concrete to abstract

  • 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 (gardeningmetaphor)
  • Past work
  • Planned work
user participation in 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

natural evolution as guiding principle
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 beensuccessfully adopted in many other domains (building architecture, evolution of everyday tools, etc)

Two levels of evolution: species and individual

two kinds of natural evolution
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 asanalogy to identify and explain differences between two kinds of software evolution

two kinds of software evolution
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) tre-ated by Lehman and Belady (IBM OS/360)

program evolution and programming language evolution


Generic extensions

Tailorable generic application

Application integration framework

Visual programminglanguages (VPL)

Scripting languages

Object-oriented languages

Binary languages (e.g. Java bytcode)

Hardware description languages (HDL)

Program evolution and programming language evolution

Layers of program

code in an application

Program evolution

Each layer can be implemented in

the same (or a different) language

Programming languages

Language evolution


(E.g. HDL1 => HDL2 => HDL3

Simula 67 => C++ => Java)

from natural to artificial evolution
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

narrowing the micro macro gap of nl
Narrowing the micro/macro gap of NL

Unit of adaptation

Natural selection






Genetic variation

going t o o far is bypassing the issue
Going too far is bypassing the issue?

Unit of adaptation









Shortening the variation-selection loop







adopting evolutionary perspectives to eud
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
analogical solution and metaphor
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
past work at uio end user tailoring
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 theuser interface
evolving basicdraw into kitchendesign
Evolving BasicDraw into KitchenDesign
  • Example: How to build a specialized drawing

program from a generic program ?






exposing aspects below the user interface





Exposing aspects below the user interface




planned work
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
  • 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 ..)