130 likes | 249 Views
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.
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