Monday, April 25, 2011

Lecture # 20 Prototyping

Prototyping can help elicit and validate requirements
For a prototype, it is necessary that it gets developed quickly, therefore
• Prototypes normally include necessary functions only
• Many management practices and Quality Assurance practices are skipped
• Non functional requirements are ignored
• Sometimes it may be developed using a different technology so that development time is saved.
Benefits of Prototypes
• Allows customer and end-user to experiment thus providing them with an opportunity to refine and improve their requirements.
• Customer can get an idea of how system can be used.
• Suggests overall feasibility and usefulness
• Effective way of developing user interface
• Ensures effective testing
• Since requires careful study thus reveals inconsistencies thus lesser requirement reworks
Problems
• Training is required if the team does not have experience of developing prototypes
• Additional time is required
• May cause delay as development team can get stuck into an infinite loop, where client suggests further improvements and requirements on each delivery of prototype
• Misleading as the emergent behavior may be different from actual product. For example actual payroll calculation for all employees of company may take a lot of time however since the prototype is not considering all records or may be all rules therefore payroll calculation will take less time. The end user may be mislead by this may begin to expect that payroll calculation will always take this much time.
• Can be used majorly for functional requirements
Categories of Prototypes
Throwaway

• Discarded when final system has been developed
• Helps elicit and develop system requirement
• Usually requirements that are hardest to understand are included so that real expectation of client is determined
• Such features are included that are most crucial in terms of difficulties the customer may face while using them.
Evolutionary
• Deliver workable system quickly
• This prototype will be evolved into the actual system rather than developing the system from scratch after refinement of requirement (contrary to Throw-Away prototype).
• Features that are well understood are included
• Features that can deliver useful functionality to end-user are included

No comments:

Post a Comment