Prototyping Software Development Approaches A prototype is a

  • Slides: 12
Download presentation
Prototyping Software Development Approaches

Prototyping Software Development Approaches

A prototype is a working model Prototyping uses an evolutionary design model Customer tests

A prototype is a working model Prototyping uses an evolutionary design model Customer tests prototype Listen to customer Build or revise prototype

Why use prototyping? • To gather information about system requirements when the user is

Why use prototyping? • To gather information about system requirements when the user is unclear about them • To collaborate with the client/user and help develop commitment to the project • To develop a system quickly

Types of Prototypes Throw-away prototypes • A working model of the system used to

Types of Prototypes Throw-away prototypes • A working model of the system used to determine user requirements and then discarded. Evolutionary prototypes • The initial prototype is continually developed until it becomes the final system

Throw-Away Prototyping • Used when the users or the software developers are unclear about

Throw-Away Prototyping • Used when the users or the software developers are unclear about system requirements • Checks that the requirements have been correctly understood by the developers • Enables further requirements to be developed • Starts with poorly understood requirements and clarifies these by gaining feedback from the user • The whole prototype is discarded at the end.

Initial requirements Throw-Away Prototyping Requirements are documented Create prototype User uses prototype Modify the

Initial requirements Throw-Away Prototyping Requirements are documented Create prototype User uses prototype Modify the prototype No further suggestions Prototype Is Discarded System Is Developed User gives suggestions for improvement 6

Evolutionary Prototyping • Contains some or all of the code or data that will

Evolutionary Prototyping • Contains some or all of the code or data that will be used in a full system • Starts with those requirements that are best understood • The prototype is continually developed until a working system is produced

Evolutionary Prototyping Initial requirements Prototype used for solution Create prototype No further suggestions User

Evolutionary Prototyping Initial requirements Prototype used for solution Create prototype No further suggestions User uses prototype Modify the prototype User gives suggestions for improvement

Prototyping is suitable for… • Developing systems where users are unclear of requirements •

Prototyping is suitable for… • Developing systems where users are unclear of requirements • Developing user interfaces • It is particularly suitable to developing: • multimedia systems • online enquiry systems

Prototyping is not suitable for… • Large scale, complex projects • Projects and processes

Prototyping is not suitable for… • Large scale, complex projects • Projects and processes involving many mathematical calculations

Advantages of Prototyping • Helps determine and/or clarify system requirements • Takes less time

Advantages of Prototyping • Helps determine and/or clarify system requirements • Takes less time than the Structured Approach • Reduced costs because the process is shorter • Accelerated delivery of a working system – users do not have to wait the entire process to begin using the system • Creates user ownership

Disadvantages of Prototyping • System may be harder to maintain: • Documentation may not

Disadvantages of Prototyping • System may be harder to maintain: • Documentation may not be thorough • Code quality and program structure may not be as good as in the structured approach • The final program may not be as efficient because the code quality and program structure may not be as good • Some parts of the requirements may be impossible to prototype. However they must still appear in the final system. • Customer is never “satisfied” and wants to continually improve the solution – so you never finish or have enormous development cost over runs … “Wouldn’t it be great if it could do this …”