Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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