S OFTWARE P ROTOTYPING C HAPTER 4. SOFTWARE PROTOTYPING Prototype: Customers and end-users of the system find it difficult to express their real requirements.

Slides:



Advertisements
Similar presentations
Chapter 8 Software Prototyping.
Advertisements

Software Processes.
Prescriptive Process models
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.
1 Software Processes A Software process is a set of activities and associated results which lead to the production of a software product. Activities Common.
CS 501: Software Engineering Fall 2000 Lecture 2 The Software Process.
Lecture # 2 : Process Models
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
1 Chapter 4 - Part 1 Software Processes. 2 Software Processes is: Coherent (logically connected) sets of activities for specifying, designing, implementing,
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.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Software Processes Coherent sets of activities for specifying, designing, implementing and testing software systems.
7M701 1 Software Prototyping Sommerville, Ian (2001) Software Engineering, 6 th edition: Chapter 8
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
Alternate Software Development Methodologies
Software Engineering 6/e, Chapter 8
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 2 Software Processes.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 1 Software Prototyping l Rapid software development.
CS 501: Software Engineering
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Process Models.
CS 501: Software Engineering
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
Software Life Cycle Model
Chapter 3 Software Processes.
©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.
CSI315 Web Technology and Applications
1 Chapter 2 The Process. 2 Process  What is it?  Who does it?  Why is it important?  What are the steps?  What is the work product?  How to ensure.
©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.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 1 Software Processes (Chapter 3)
Software Processes lecture 8. Topics covered Software process models Process iteration Process activities The Rational Unified Process Computer-aided.
SOFTWARE PROTOTYPING Anil Kumar.Arikepudi.
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.
 CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1.
Software Engineering Management Lecture 1 The Software Process.
Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures.
소프트웨어공학 강좌 1 Chap 7. Software Prototyping - Rapid software development to validate requirements -
1 SWE Introduction to Software Engineering Lecture 4.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Slide 1 Software Prototyping Class Notes for ReqEng.
1 CS 501 Spring 2004 CS 501: Software Engineering Lecture 2 Software Processes.
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
Software Prototyping Rapid software development to validate requirements.
Topic 4 - Database Design Unit 1 – Database Analysis and Design Advanced Higher Information Systems St Kentigern’s Academy.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
CC20O7N Software Engineering 1 CC2007N Software Engineering 1 Part 1 Introduction to Software Engineering.
©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.
Software Engineering, 8th edition. Chapter 4 1 Courtesy: ©Ian Sommerville 2006 FEB 13 th, 2009 Lecture # 5 Software Processes.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
1 Chapter 2 SW Process Models. 2 Objectives  Understand various process models  Understand the pros and cons of each model  Evaluate the applicability.
Rekayasa Perangkat Lunak Part-6
Prototyping in the software process
Software Engineering Management
Software Prototyping.
Software Processes (a)
Chapter 2 SW Process Models
Object oriented system development life cycle
Software Prototyping Animating and demonstrating system requirements.
Software Processes.
CS310 Software Engineering Lecturer Dr.Doaa Sami
Software Processes.
Rapid software development
Presentation transcript:

S OFTWARE P ROTOTYPING C HAPTER 4

SOFTWARE PROTOTYPING Prototype: Customers and end-users of the system find it difficult to express their real requirements. Software analyst find it difficult to predict how system operates and how it can interact with other system. This problem can be avoided by presenting Prototype Model. Prototype is a technique to demonstrate the concepts. Definition: Prototyping is a technique for providing a reduced functionality or a limited performance version of a software system. Prototyping can also be used as risk analysis and risk reduction technique.

Prototyping Listen To Customer Build/Revise Mockup Customer Test Drives Mockup workingworking model of something built for study or testing or displaymodeltestingdisplay

Prototype: Prototype is the initial version of software system. Prototype supports Requirement Elicitation and Requirement Validation. User can highlight new ideas and help to develop new version of prototype. Prototype allows the user to validate the software. They can point out errors and omissions in the beginning.

A DVANTAGES OF PROTOTYPING IN SOFTWARE DEVELOPMENT Prototype acts as a bridge between customers, end-users and system developer to understand the system functions. At each stage developer adds on to the sub-system as they discover incomplete or inconsistent changes during development. Prototype acts as ready model so that customer and user gets basic idea of the candidate system. The purpose of prototyping is to support the analysis and design stages of a project by enabling the users to see very clearly what the system will do.

A DVANTAGES OF PROTOTYPING Missing requirements can be added. Incomplete and inconsistent requirements can be identified. Prototype can be used for training the user before final system is delivered.

Disadvantages of Prototyping 1. In the first version itself, the customer often wants “few fixes” rather than rebuilding the system. 2. The first version may have some compromises. 3. Sometimes developer may take implementation compromises to get the prototype working quickly. Later developer may become comfortable with compromises and forget why they are inappropriate.

P ROTOTYPE DEVELOPMENT IN SOFTWARE PROCESS Plan prototype Specify the objectives Define the requirements Include all the possible functions Establish relationships and interfaces Develop prototype Evaluate the prototype Execute prototype

1. Plan prototype: This is the first stage. Prototype type depends on the type of the project to be developed. Plan Prototype Function Specificatio n Develop Prototype Define Requiremen ts Establish Objectives Evaluate Prototype Execute Prototype Establish Interface & Relationships Process of prototype development Prototype development in software process

2. Establish Objectives: Objectives of the project must be clearly established in the beginning. Prototype may not be the same for all the projects. It is different for different projects. Prototype may be used: To study and validate functions of already existing system. To study the extension of the existing system. To set user interface. In business and scientific cases to establish simulation movements. Prototype development in software process

3. Define Requirements Specify the functional and non-functional requirements of the system. 4. Function Specification Determine input, output and process functions to get preliminary idea of the working of prototype. 5. Establish interface and relationship Interface management is very essential as the system has to operate in a complex inter-locked pattern. 6. Develop Evaluate and execute preliminary prototype. Prototype development in software process

T YPES OF P ROTOTYPE IN SOFTWARE PROCESS Developer can develop useful and operational prototype only when he gets the co-operation and co-ordination from client and end-users. Prototypes can be of 2 types :- Evolutionary prototype Throw-away prototype

A PPROACHES TO PROTOTYPING

T YPES OF P ROTOTYPE IN SOFTWARE PROCESS Evolutionary prototyping Evolutionary development is based on the idea of developing an initial implementation, exposing this to user comment and refining this through many versions until the acceptable system has been developed. The development of the product starts with the parts of the system, which is well understood by the developer. This product is exposed to the user. New features are added to the product and process continues until a final acceptable product is built.

E VOLUTIONARY P ROTOTYPING User Executable Prototype Suggests Modification Prototype Version 1 Prototype Version 2 Prototype Version 3

Evolutionary prototyping Advantages: 1. Fast delivery of the working system. 2. User is involved while developing the system. 3. More useful system can be delivered. 4. Specifications, design and implementation work in co-ordinated manner.

Evolutionary prototyping Problems: 1. Management Problems: Typically a waterfall model is adopted in which the development skill is required in all the development team members. 2. Maintenance problems: Continuous changes may lead to changes in the system structure that may cause maintenance problems. 3. Verification: It is impossible as there is no specification.

Throw-away prototyping The development of the product starts with the part of system which is poorly understood. It is then exposed to the user to get more and refined requirements. This type of development is helpful to understand the user’s needs. Afterwards this development part is thrown-away and actual system development starts from scratch.

T HROW - AWAY PROTOTYPING Steps in the development of throw away prototype: Outline system requirements. Develop prototype. Evaluate prototype. Release the executable system. Throw away prototype.

Concurrent activities Validation Final version Development Intermediate versions Specification Initial version Outline description

T HROW - AWAY PROTOTYPE Advantages: If the delivered model is not as per the customer needs, then it can be discarded and development can occur with another new engineering paradigm. Requirement risks are very less.

T HROW - AWAY PROTOTYPES Disadvantages: Prototypes are normally undocumented. Developers may be pressurized to deliver throw- away prototype as final system. This is not recommended. The prototype structure is usually degraded through rapid change The prototype probably will not meet normal organizational quality standards.

Evolutionary prototypingThrow-away prototyping An approach to system development where an initial prototype is produced and refined through a number of stages to the final system. Objective: the evolutionary prototyping is to deliver a working system to end-users. The development starts with those requirements which are best understood. A prototype which is usually a practical implementation of the system is produced to help discover requirements problems and then discarded. The system is then developed using some other development process. Objective: the throw-away prototyping is to validate or deliver the system requirements. The prototyping process starts with those requirements which are poorly understood

P ROTOTYPING T ECHNIQUES Is a developing technique which focuses on fast or speedy delivery of system rather than system characteristics such as efficiency, performance and reliability. Three important rapid prototype techniques/types are: 1. Dynamic high level language development. 2. Database Programming 3. Component and application assembly (also called as reusability).

P ROTOTYPING T ECHNIQUES 1. Dynamic high level language development: They simplify the program development. Reduces many problems such as storage allocation and management. Till recently high level languages were not widely used for system development because they need large run-time support system, which increases the storage needs and reduces the execution speed etc. However, with the increasing power and reduction in the cost of computer hardware, these factors have become less important.

2. Database programming: It is carried out using specialized language which embeds (fix) knowledge of the database and which also includes operations for database manipulation. The term fourth generation language (4GL) refers to both database Programming Language and Supporting Environment.

2. Database programming: The tools which are included in a 4GL environment are: 1. A database query which is now SQL. 2. An interface generator which is used to create forms for data input and display. 3. A spreadsheet for the analysis and manipulation of numeric information. 4. A report generator which is used to define and create reports from information in the database.

3. Component and application assembly: Prototypes can be constructed quickly if a set of reusable components are available. Prototype development with reuse can be supported at two levels. 1. Application level 2. Component level

3. Component and application assembly: 1. Application level: In this the entire application is integrated with the prototype so that the functionality can be shared. Ex: Suppose if a prototype requires text processing capability, then it can be integrated with word processing system such as MS-Office application. 2. Component level: In this the individual components are integrated within a standard framework. Ex: VB to implement the system.

U SER INTERFACE P ROTOTYPING GUI (Graphical User Interface) have now become standard for the interactive system. From the Software Engineering point of view, prototyping is essential part of user interface design process. Because of the dynamic nature of user interface, textual descriptions and diagrams are not sufficient. Therefore, evolutionary prototype with the end user involvement is the sensible way of developing (GUI) software system.

U SER INTERFACE P ROTOTYPING Interface generators are graphical design system, where interface components such as menus, icons and buttons are selected from menu and positioned on an interface. In the Web pages- buttons, fields, tables can be included. Multimedia objects can also be included which gives access to pictures, sound etc.

P ROTOTYPING E XAMPLE Prototype for building a tool to track how much a user exercises each day Graphical representation of first prototype, in which the user must type the day, month and year

P ROTOTYPING E XAMPLE ( CONTINUED ) Second prototype shows a more interesting and sophisticated interface involving a calendar User uses a mouse to select the month and year The system displays the chart for that month, and the user selects the appropriate date in the chart

P ROTOTYPING E XAMPLE ( CONTINUED ) Third prototype shows that instead of a calendar, the user is presented with three slide bars User uses the mouse to slide each bar left or right The box at the bottom of the screen changes to show the selected day, month, and year

QUESTIONS AND EXERCISES Two mark questions: 1. Define prototype? 2. What are the characteristics of prototype? 3. What is prototype process? 4. Define prototype model. 5. What are the advantages of prototype model? 6. What are the disadvantages of prototype model? 7. Define evolutionary prototyping. 8. Define throw-away prototyping. 9. What are the objectives of prototyping? 35

QUESTIONS AND EXERCISES Five, Seven and Eight marks Questions: 1. What is the basis of prototyping as a software engineering paradigm? 2. Explain prototyping model? 3. What is the need for prototyping in software development? 4. What are the benefits of developing a prototype early in software process? 5. Difference between evolutionary and throw-away prototyping. 6. Write a short notes on a) Prototyping techniques b) User interface prototyping 1. Explain prototype development process with advantages and disadvantages. 2. Describe two types of prototyping with advantage sand disadvantages. 36