130 likes | 257 Views
Prototyping is a crucial method for clarifying requirements in software development. It helps mitigate customer uncertainty and identifies unrealistic or incomplete requirements, reducing risks and overall development costs. Two primary approaches include Evolutionary Prototyping, where a working system is iteratively improved, and Throw-Away Prototyping, which aids in understanding requirements before discarding the prototype. Benefits include detecting misunderstandings between developers and users while quickly demonstrating system feasibility. This ensures better alignment between expectations and outcomes, leading to more successful projects.
E N D
CMSC 345 Prototyping
Prototyping the Requirements • Investigate requirements • Customer uncertainty • Are requirements realistic • Risk Reduction • Reduces number of problems with requirements and overall development cost
Benefits of Prototyping • Identify misunderstandings between developers and users • Detect missing user services • Identify and refine hard-to-use or confusing user services • Identify incomplete or inconsistent requirements • A working (but incomplete) system is quickly available to demo feasibility and usefulness • Basis for specification for production quality system
Approaches to Prototyping • Evolutionary Prototyping • Give the user an incomplete system, then modify and augment as the requirements become clear • Throw-Away Prototyping • Help with requirements analysis and validation then discarded
Evolutionary Prototyping • Objective: to deliver a working system to the end-users • Starts with limited understanding of requirements • System is changed and augmented as new requirements are discovered • Incorporate well understood requirements, then move on to those which are unclear • May never be a system specification
Problems withEvolutionary Prototyping • SW Management set up to deal with regular deliverables to asses progress. Prototypes evolve quickly. No docs. • Continual change corrupts the structure of the prototype, making maintenance difficult and costly • Requires small teams of highly skilled and motivated individuals
Throw-Away Prototyping • Objective: Validate or derive the system requirements • Priority is to understand requirements that are unclear • Extends requirements analysis with intention of reducing life cycle costs
Problems withThrow-Away Prototyping • Important features may be left out of prototype to simplify rapid development • Nonfunctional requirements such as those concerning reliability, robustness and safety cannot be adequately tested in prototype
Incremental Development • Combines advantages of evolutionary prototyping with control required for large-scale development • Avoids problem of constant change • More manageable since normal software process standards are followed • Problem – software architecture must be established before requirements are complete so requirements tend to be constrained by the architecture.
GUI Prototyping • Developers cannot impose their view on the user. User must take part. • Use evolutionary Prototyping • Initial interface produced, evaluated by users and revised until users satisfied • May be re-implemented
Enter year:____ Enter month:____ Enter day:____
2025 1998 31 1 Dec Jan Tue 16 Oct 2002