150 likes | 404 Views
Software Prototyping. COEN/ELEC 390. Outline. What is prototyping Why prototyping Types of prototyping Advantages of each Recommendations Incremental Development?. Background. Waterfall model .. Does not really work Design / Coding / Integration Test / Acceptance Test
E N D
Software Prototyping COEN/ELEC 390
Outline • What is prototyping • Why prototyping • Types of prototyping • Advantages of each • Recommendations • Incremental Development?
Background • Waterfall model .. • Does not really work Design / Coding / Integration Test / Acceptance Test Design 49.2 / 34.1 / 10.3 / 6.4 • Hence, prototyping is used to clarify requirements • The first push-button phone had 2000 prototypes built!
Software Prototyping • ~ 0 cost of fabricating different versions • Most cost associated with developing the first fully working version • Hence, software prototyping used for: • Rapid development of a basic & inefficient executable version • Rapid development of the user interface • This assumes throw-away prototyping
Throw-away vs. Evolutionary • Throw-away prototyping actually saves money by eliminating the need for expensive late-cycle re-engineering • To ensure it is thrown away, a very high-level language is used • This contrasts with evolutionary prototyping, where the prototype grows into the final product
Advantages vs. Disadvantages 1/2 • Resulting system easier to use • User needs better accommodated • Resulting system has fewer features • Problems detected earlier • Design is of higher quality • Resulting system easier to maintain • Development incurs less effort
Advantages vs. Disadvantages 2/2 • Resulting systems has more features • Worse performance • Lesser quality design • Resulting systems harder to maintain • Prototyping approach requires experienced engineers
Recommendations • Good for situations where user requirements are unclear • Good where there is emphasis on user interface • User must be made aware of the costs of changes/additions and that proto’s are not products • Prototyping must be controlled, with explicit procedures and documentation