Prototyping Lecture # 08.

Slides:



Advertisements
Similar presentations
Design, prototyping and construction
Advertisements

Systems Analysis, Prototyping and Iteration Systems Analysis.
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.
7M701 1 Software Prototyping Sommerville, Ian (2001) Software Engineering, 6 th edition: Chapter 8
©G. Kotonya and I. Sommerville 1998 Slide 1 Requirements Elicitation and Analysis Chapter 3.
Possible incorporation of Prototyping in the Conventional Approach to Systems Development FEASIBILITY STUDY REQUIREMENTS ANALYSIS SYSTEMS ANALYSIS SYSTEMS.
©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.
SOFTWARE PROTOTYPING Vishnu Chaitanya reddy Nara Vishnu Chaitanya reddy Nara
Requirements Engineering Requirements Elicitation Process Lecture-8.
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.
Systems Life Cycle A2 Module Heathcote Ch.38.
Slide 1 Requirements Elicitation and Analysis. Slide 2 Objectives u To describe the processes of requirements elicitation and analysis. u To introduce.
1 Human Computer Interaction Week 7 Prototyping. 2 Introduction Prototyping is a design technique where users can be involved in testing design ideas.
Software Prototyping Rapid software development to validate requirements.
Requirements Validation
Click to add text Systems Analysis, Prototyping and Iteration.
Requirements Engineering Requirements Validation and Management Lecture-24.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Lectures 2 & 3: Software Process Models Neelam Gupta.
CS 389 – Software Engineering Lecture 2 – Part 2 Chapter 2 – Software Processes Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
1 Requirements Management - II Lecture # Recap of Last Lecture We talked about requirements management and why is it necessary to manage requirements.
Rekayasa Perangkat Lunak Part-6
Requirements Errors Lecture # 14.
Chapter3:Software Processes
Prototyping in the software process
Software Prototyping.
Lecture 3 Prescriptive Process Models
Software Requirements
User-centred system design process
Requirements Validation – II
Writing Requirements Lecture # 23.
Prototyping.
Chapter 18 Maintaining Information Systems
Chapter 2 – Software Processes
Software Life Cycle “What happens in the ‘life’ of software”
PROJECT LIFE CYCLE AND EFFORT ESTIMATION
WXGE6103 Software Engineering Process and Practice
Iterative design and prototyping
CS 425/625 Software Engineering Software Processes
Systems Analysis and Design
Software Process Models
Prototyping.
Life Cycle Models PPT By :Dr. R. Mall.
Requirements Elicitation – 1
Software Prototyping.
SOFTWARE ENGINEERING PRESENTATION
The design process Software engineering and the design process for interactive systems Standards and guidelines as design rules Usability engineering.
The design process Software engineering and the design process for interactive systems Standards and guidelines as design rules Usability engineering.
Software Prototyping Animating and demonstrating system requirements.
Software Processes.
Design, prototyping and construction
Chapter 11 Design, prototyping and construction 1.
SE-565 Software System Requirements III. Requirements Elicitation
Software Engineering Lecture 18.
Chapter 2 – Software Processes
Software Process Models
Requirements Engineering Process – 1
Requirements Management - I
Human Computer Interaction Lecture 14 HCI in Software Process
Rapid software development
Requirements Analysis and Negotiation
Requirements Analysis Techniques
Software Requirements
Software Requirements
Design, prototyping and construction
Presentation transcript:

Prototyping Lecture # 08

Prototyping It is the technique of constructing a partial implementation of a system so that customers, users, or developers can learn more about a problem or a solution to that problem

Prototype An initial version of the system under development, which is available early in the development process In hardware systems, prototypes are often developed to test and experiment with system designs In software systems, prototypes are more often used to help elicit and validate the system requirements. It should be easy for a prototype to be developed quickly, so that it can be used during the development process Prototypes are valuable for requirements elicitation because users can experiment with the system and point out its strengths and weaknesses. They have something concrete to criticize.

Types of Prototyping Throw-away prototyping Evolutionary prototyping

Throw-away Prototyping Intended to help elicit and develop the system requirements The requirements which should be prototyped are those which cause most difficulties to customers and which are the hardest to understand. Little documentation is needed Determine the feasibility of a requirement

Evolutionary Prototyping - 1 Intended to deliver a workable system quickly to the customer The requirements which should be supported by the initial versions of this prototype are those which are well-understood and which can deliver useful end-user functionality

Evolutionary Prototyping - 2 Documentation of the prototype is needed to build upon This process repeats indefinitely until the prototype system satisfies all needs and has thus evolved into the real system

Evolutionary Prototyping - 3 Evolutionary prototype may not be built in a ‘dirty’ fashion. The evolutionary prototype evolves into the final product, and thus it must exhibit all the quality attributes of the final product

Comparison of Prototyping - 1 Throwaway Evolutionary Development approach Quick and dirty. No rigor No sloppiness. Rigorous

Comparison of Prototyping - 2 Throwaway Evolutionary What to build Build only difficult parts Build understood parts first. Build on solid foundation

Comparison of Prototyping - 3 Throwaway Evolutionary Design drivers Optimize development time Optimize modifiability Ultimate goal Throw it away Evolve it

Prototyping Benefits - 1 The prototype allows users to experiment and discover what they really need to support their work Establishes feasibility and usefulness before high development costs are incurred

Prototyping Benefits - 2 Essential for developing the ‘look and feel’ of a user interface. Helps customers in ‘visualizing’ their requirements Forces a detailed study of the requirements which reveals inconsistencies and omissions

Prototyping Costs Training costs Development costs Prototype development may require the use of special purpose tools Development costs Depend on the type of prototype being developed Extended development schedules Developing a prototype may extend the schedule although the prototyping time may be recovered because rework is avoided Incompleteness It may not be possible to prototype emergent system requirements

Additional Benefits of Prototyping Developing a system prototype is worth the investment in time and money Real needs of the customers will be reflected in the requirements set Rework will be reduced Defect prevention

Developing Prototypes Conventional system development techniques usually take too long, and prototypes are needed early in the elicitation process to be useful Rapid development approaches are used for prototype development

Approaches to Prototyping Paper prototyping ‘Wizard of Oz’ prototyping Executable prototyping

Paper Prototyping - 1 A paper mock-up of the system is developed and used for system experiments This is very cheap and very effective approach to prototype development No executable software is needed

Paper Prototyping - 2 Paper versions of the screens, which might be presented to the user are drawn and various usage scenarios are planned For interactive systems, this is very effective way to find users’ reactions and the required information

‘Wizard of Oz’ Prototyping - 1 A person simulates the responses of the system in response to some user inputs Relatively cheap as only user interface software needs to be developed The users interact through this user interface software and all requests are channeled to the person, who simulates the system’s responses

‘Wizard of Oz’ Prototyping - 2 This is particularly useful for new systems, which are extensions of existing software systems, and the users are familiar with the existing user interface The person simulating the system is called ‘Wizard of Oz’

Executable Prototyping - 1 A fourth generation language or other rapid development environment is used to develop an executable prototype This is an expensive option and involves writing software to simulate the functionality of the proposed system

Comments on Prototyping Prototyping interactive applications is easier than prototyping real-time applications Prototyping is used better to understand and discover functional requirements, as compared to non-functional requirements

Summary Discussed different aspects of prototyping, its types, and how it is useful in requirements engineering, particularly requirements elicitation We also discussed approaches to prototyping: paper prototyping, ‘Wizard of Oz’ prototyping, and ‘automated prototyping’

References ‘Software Engineering: A Practitioner’s Approach’ by R. Pressman, PH 2000 ‘Requirements Engineering: Processes and Techniques’ by G. Kotonya and I. Sommerville, John Wiley & Sons, 1998