130 likes | 195 Views
Prototyping. Software Development Approaches. A prototype is a working model. Prototyping uses an evolutionary design model. Listen to customer. Customer tests prototype. Build or revise prototype. Why use prototyping?.
E N D
Prototyping Software Development Approaches
A prototype is a working model Prototyping uses an evolutionary design model Listen to customer Customer tests prototype Build or revise prototype
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 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 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.
Create prototype No further suggestions User uses prototype User gives suggestions for improvement Throw-AwayPrototyping Initial requirements Prototype Is Discarded Requirements are documented System Is Developed Modify the prototype 6
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
Create prototype No further suggestions User uses prototype Evolutionary Prototyping Initial requirements Prototype used for solution User gives suggestions for improvement Modify the prototype
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 involving many mathematical calculations
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 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 …”