36
SOFTWARE PROTOTYPING CHAPTER 4

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

Embed Size (px)

Citation preview

Page 1: 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 PROTOTYPING CHAPTER 4

Page 2: 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 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.

Page 3: 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

Prototyping

Listen To Customer

Build/Revise Mockup

Customer Test Drives Mockup

working model of something built for study or testing or display

Page 4: 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

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.

Page 5: 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

ADVANTAGES 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.

Page 6: 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

ADVANTAGES 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.

Page 7: 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

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.

Page 8: 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

PROTOTYPE 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

Page 9: 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

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 Requireme

nts

Establish Objectives

EvaluatePrototype

Execute Prototype

Establish Interface &

Relationships

Process of prototype development

Prototype development in software process

Page 10: 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

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

Page 11: 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

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

Page 12: 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

TYPES OF PROTOTYPE 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 prototypeThrow-away prototype

Page 13: 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

APPROACHES TO PROTOTYPING

Evolutionaryprototyping

Throw-awayPrototyping

Deliveredsystem

Executable Prototype +System Specification

OutlineRequirements

Page 14: 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

TYPES OF PROTOTYPE 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.

Page 15: 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

EVOLUTIONARY PROTOTYPING

User

Executable Prototype

Suggests Modification

Prototype Version 1

Prototype Version 2

Prototype Version 3

Page 16: 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

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.

Page 17: 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

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.

Page 18: 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

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.

Page 19: 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

THROW-AWAY PROTOTYPING

Steps in the development of throw away prototype:

Outline system requirements.Develop prototype.Evaluate prototype.Release the executable system.Throw away prototype.

Page 20: 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

Concurrentactivities

ValidationFinal

version

DevelopmentIntermediate

versions

SpecificationInitial

version

Outlinedescription

Page 21: 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

THROW-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.

Page 22: 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

THROW-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.

Page 23: 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

Evolutionary prototyping

Throw-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

Page 24: 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

PROTOTYPING TECHNIQUES

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 Programming3. Component and application assembly (also

called as reusability).

Page 25: 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

PROTOTYPING TECHNIQUES1. 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.

Page 26: 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

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.

Page 27: 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

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.

Page 28: 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

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

Page 29: 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

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.

Page 30: 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

USER INTERFACE PROTOTYPING

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.

Page 31: 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

USER INTERFACE PROTOTYPING

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.

Page 32: 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

PROTOTYPING EXAMPLE

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

Page 33: 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

PROTOTYPING EXAMPLE (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

Page 34: 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

PROTOTYPING EXAMPLE (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

Page 35: 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

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

Page 36: 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

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 techniquesb) User interface prototyping1. Explain prototype development process with advantages and

disadvantages.2. Describe two types of prototyping with advantage sand

disadvantages.

36