1 User Participation in Evolutionary Development Pisa, 23/9 - 2002EUD-Net kick-off User Participation in Evolutionary Development Anders Mørch InterMedia.

Slides:



Advertisements
Similar presentations
MicroKernel Pattern Presented by Sahibzada Sami ud din Kashif Khurshid.
Advertisements

Configuration management
SWEN 5130 Requirements EngineeringSlide 1 Software Prototyping u Animating and demonstrating system requirements.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Lecture # 2 : Process Models
Unit 2. Software Lifecycle
CSE 470 : Software Engineering The Software Process.
The software process A software process is a set of activities and associated results which lead to the production of a software product. This may involve.
ISNE101 Dr. Ken Cosh. Recap  We’ve been talking about Software…  Application vs System Software  Programming Languages  Vs Natural Languages  Syntax,
7M701 1 Software Prototyping Sommerville, Ian (2001) Software Engineering, 6 th edition: Chapter 8
Software Engineering 6/e, Chapter 8
The Unified Software Development Process - Workflows Ivar Jacobson, Grady Booch, James Rumbaugh Addison Wesley, 1999.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 1 Software Prototyping l Rapid software development.
Introduction to Software Architecture. What is Software Architecture?  It is the body of methods and techniques that help us to manage the complexities.
Software Engineering General Project Management Software Requirements
©Ian Sommerville 2000 Software Engineering, 6th edition Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing.
Satzinger, Jackson, and Burd Object-Orieneted Analysis & Design
1/31 CS 426 Senior Projects Chapter 1: What is UML? Chapter 2: What is UP? [Arlow and Neustadt, 2005] January 22, 2009.
Building software from reusable components.
1 CS 426 Senior Projects Chapter 1: What is UML? Chapter 2: What is UP? [Arlow and Neustadt, 2002] January 26, 2006.
Course Instructor: Aisha Azeem
Seminar of “CBSE” Course Mohammad Mahdizadeh SM. University of Science and Technology Mazandaran-Babol January 2010 Adaptation of.
Chapter 1 The Systems Development Environment
Chapter 3 Software Processes.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 1 Software Prototyping l Rapid software development to validate requirements l.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 1 Software Prototyping l Rapid software development to validate requirements.
TOOL5100: CSCL Design techniques A. Mørch, Design Techniques Anders Mørch TOOL 5100,
OO Frameworks Department of Computer Science Kent State University.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 18 Slide 1 Software Reuse.
Software Engineering Muhammad Fahad Khan
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
The Rational Unified Process
1 An Analytical Evaluation of BPMN Using a Semiotic Quality Framework Terje Wahl & Guttorm Sindre NTNU, Norway Terje Wahl, 14. June 2005.
©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapter 8 Slide 1 Software Prototyping l Animating and.
Software Processes.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2000 Software Engineering, 6th edition. Slide 1 Component-based development l Building software from reusable components l Objectives.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
 To explain the importance of software configuration management (CM)  To describe key CM activities namely CM planning, change management, version management.
Software Processes lecture 8. Topics covered Software process models Process iteration Process activities The Rational Unified Process Computer-aided.
Chapter 11: Software Prototyping Omar Meqdadi SE 273 Lecture 11 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 1 Software Prototyping l Rapid software development to validate requirements.
Odyssey A Reuse Environment based on Domain Models Prepared By: Mahmud Gabareen Eliad Cohen.
A Novel Approach to Architectural Recovery in Evolving Object- Oriented Systems PhD thesis Koen De Hondt December 11, 1998.
소프트웨어공학 강좌 1 Chap 7. Software Prototyping - Rapid software development to validate requirements -
1 SWE Introduction to Software Engineering Lecture 4.
Review of Software Process Models Review Class 1 Software Process Models CEN 4021 Class 2 – 01/12.
07/09/04 Johan Muskens ( TU/e Computer Science, System Architecture and Networking.
1 Human Computer Interaction Week 7 Prototyping. 2 Introduction Prototyping is a design technique where users can be involved in testing design ideas.
Prototyping By: Michael McBee & Shere Stewart. Prototyping What is Prototyping? It is an iterative process involving analysts and users where a model.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14Slide 1 Chapter 14 Design with Reuse.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 18 Slide 1 Software Reuse.
Software Prototyping Rapid software development to validate requirements.
Developing Product Line Components Jan Bosch Professor of Software Engineering University of Groningen, Netherlands
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2000, Tom Dietterich 2001 Slide 1 System prototyping l Prototyping is the rapid development of a system l In the past, the developed system.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Software Engineering, 8th edition. Chapter 4 1 Courtesy: ©Ian Sommerville 2006 FEB 13 th, 2009 Lecture # 5 Software Processes.
Slide 1 Chapter 8 Architectural Design. Slide 2 Topics covered l System structuring l Control models l Modular decomposition l Domain-specific architectures.
Enterprise Architectures Course Code : CPIS-352 King Abdul Aziz University, Jeddah Saudi Arabia.
Rekayasa Perangkat Lunak Part-6
Process 4 Hours.
Software Prototyping.
Software Prototyping Animating and demonstrating system requirements.
Chapter 16 – Software Reuse
.NET vs. J2EE Architecture
On the notion of Variability in Software Product Lines
Presentation transcript:

1 User Participation in Evolutionary Development Pisa, 23/ EUD-Net kick-off User Participation in Evolutionary Development Anders Mørch InterMedia University of Oslo

2 User Participation in Evolutionary Development Pisa, 23/ EUD-Net kick-off Keywords from previous presentations Natural programming Gardening metaphor Runtime tailorability Domain-expert users From abstract to concrete From concrete to abstract

3 User Participation in Evolutionary Development Pisa, 23/ EUD-Net kick-off 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

4 User Participation in Evolutionary Development Pisa, 23/ EUD-Net kick-off 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

5 User Participation in Evolutionary Development Pisa, 23/ EUD-Net kick-off 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

6 User Participation in Evolutionary Development Pisa, 23/ EUD-Net kick-off 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

7 User Participation in Evolutionary Development Pisa, 23/ EUD-Net kick-off 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)

8 User Participation in Evolutionary Development Pisa, 23/ EUD-Net kick-off Program evolution and programming language evolution Layers of program code in an application Programming languages Domain-oriented extensions Generic extensions Tailorable generic application Application integration framework Visual programming languages (VPL) Scripting languages Object-oriented languages Binary languages (e.g. Java bytcode) Hardware description languages (HDL) Language evolution Program evolution Translation Each layer can be implemented in the same (or a different) language (E.g. HDL 1 => HDL 2 => HDL 3 Simula 67 => C++ => Java)

9 User Participation in Evolutionary Development Pisa, 23/ EUD-Net kick-off 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

10 User Participation in Evolutionary Development Pisa, 23/ EUD-Net kick-off Narrowing the micro/macro gap of NL micro inter- mediate macro Natural selection Genetic variation Individuals participation Unit of adaptation

11 User Participation in Evolutionary Development Pisa, 23/ EUD-Net kick-off Going too far is bypassing the issue? micro inter- mediate macro selection variation Participation? Unit of adaptation

12 User Participation in Evolutionary Development Pisa, 23/ EUD-Net kick-off Shortening the variation-selection loop Variation Natural Deliberated Selection Genetic/ Random Artificial

13 User Participation in Evolutionary Development Pisa, 23/ EUD-Net kick-off 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

14 User Participation in Evolutionary Development Pisa, 23/ EUD-Net kick-off 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

15 User Participation in Evolutionary Development Pisa, 23/ EUD-Net kick-off Artificial selection: Pruning a bonsai tree

16 User Participation in Evolutionary Development Pisa, 23/ EUD-Net kick-off Deliberated variation: Grafting and budding a fruit tree

17 User Participation in Evolutionary Development Pisa, 23/ EUD-Net kick-off 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

18 User Participation in Evolutionary Development Pisa, 23/ EUD-Net kick-off Evolving BasicDraw into KitchenDesign Example: How to build a specialized drawing program from a generic program ? BasicDraw KitchenDesign Customization Integration Extension

19 User Participation in Evolutionary Development Pisa, 23/ EUD-Net kick-off Exposing aspects below the user interface shiftMouseDown ctrlMouseDown altMouseDown 1b1b

20 User Participation in Evolutionary Development Pisa, 23/ EUD-Net kick-off 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

21 User Participation in Evolutionary Development Pisa, 23/ EUD-Net kick-off 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, (may take time to download..)