•There are two types of prototyping:incremental or evolutionary and throwaway.
Incremental and Iterative Approach•In incremental development, the product isbuilt through successive versions that arerefined and expanded with each iteration–Three concepts underlie the incrementalapproach:•The Initialization Step•The Control List•The Iteration Step
Throwaway Approach•In the incremental approach,–the initial prototype is revised and refinedrepeatedly until it becomes the final product.•In the throwaway approach,–the prototype is discarded after the stakeholdersin the development are confident that they havearrived at the correct specifications and thedevelopment on the “real” product can start.
Problems with Prototyping•Unbalanced Architecture–Since the main thrust of prototyping is towards the user interface, thedevelopers tend to include more and more functionality in the outer layers ofthe information system, creating a distorted architecture.•The Illusion of Completeness–Since the clients might not understand why the developers insist that a lotmore is to be done, the prototype may successfully present the user interfacefor a complex functionality the feasibility of which is far from certain.•Diminishing Changeability–Since prototyping can leave little trace of how the development evolved,modifying the application can resemble an archeological undertaking to piecetogether a lost civilization.•Prototyping can result in too little documentation or, more importantly,too little modeling.
The Spiral Model•The spiral model is a risk‐oriented lifecyclemodel that breaks a software project up intomini‐projects.
Rapid Application Development (RAD)•Rapid Application Development is selectingtechniques, methods, practices andprocedures that would result fasterdevelopment and shorter schedules.
Characteristics of RAD•Requirements Planning–Aims at eliciting information and requirements from the senior people andverifying the goals.•Design–The design phase begins once thetop‐levelrequirements of the system areidentified. To discover more detailed requirements, RAD relies on JointApplication Development (JAD) workshops.•Implementation–Once the users approve the preliminary design, a detailed design of thesystem is created and code is generated. Implementation phase is heavilydependent upon CASE tools.•Enhancements and Maintenance–In the framework of RAD, a software is never completed until it is retired.–there is no significant difference between development and maintenance.(This position is in opposition to most SDLC methodologies.)
Agile Methodologies•Agile methodologies aim at being adaptiverather than predictive.
Extreme Programming (XP)–A better‐known example of agile methods, andone of the earliest ones, is Extreme Programming(XP).

You've reached the end of your free preview.
Want to read all 120 pages?
- Fall '09
- Object-Oriented Programming