1
Prototyping: alternative systems development methodology by J M Carey
Presented by Cynthia Johnson
February 7, 2007 EEL 6883
2
What is Prototyping?
“’Prototyping’ is the process of quickly building a model of the final software system, which is used primarily as a communication tool to assess and meet the information needs of the user?” – J M Carey
3
What is prototyping?
“Prototyping is the use of approximately 30% of the ultimate staff to build one or two working versions of various aspects of a system. It is not production code but it may eventually become pre-production code or it may be completely discarded. In the prototyping effort, we are not concerned with the maintainability of the code nor are we concerned with formally documenting it.” – Larry Bernstein
4
Why use prototyping?
Helps user clarify their needsLess ambiguous than traditional narrative function specificationImproves team communication. “A picture is worth a 1000 words”Less emphasis on time consuming documentationGenerally faster than traditional development
5
Why prototype?
The prototype provides a vehicle for systems engineers to better understand the environment and the requirements problem being addressed. A prototype is a demonstration of what's actually feasible with existing technology, and where the technical weak spots still exist. A prototype lets the developer meet earlier schedules for the production version. A prototype allows for early customer interaction.
6
Prototyping Environments
Two major types of prototyping environments mentioned.
Automated development environments
Prototyping toolkits – a collection of unintegrated tools.
7
Fourth and Fifth Generation Software Languages
Often abbreviated 4GL, fourth-generation languages are programming languages which are closer to human language than previous languages. Most of today’s 4GLs are database languages. One example is FIND ALL RECORDS WHERE NAME IS "SMITH"
8
The generations of computer languages
1st GenerationMachine Language
2nd GenerationAssembly Language
3rd GenerationC, C++, FORTRAN, Java, Pascal, Ada
4th GenerationSQL, RPG-II
5th GenerationUsed for artificial intelligence and neural networks – primarily researchers
9
Successful 4GL Languages
Database QuerySQL, Progress 4GL, Informix
Report GeneratorsBuildProfessional, PostScript
Data Manipulation and ReportingClarion, GraphTalk
Screen Painters, GUI DevelopersFourGen, Visual Basic
10
Types of Prototyping
Type I – Iterative
Type II - Throwaway
11
Type I - Iterative
Uses the Prototype as the final system after a series of iterative upgrades
Generally uses a 4GL tool for development
12
Type II - Throwaway
Prototype is developed in 4GL or toolkit
Final product based on prototype built in 3GL language.
13
Advantages of prototyping
Faster development time
Easier for end-users to learn to use
More end-user involvement
Enhances user/analysts communication
Requirements are easier to determine.
14
Disadvantages of prototyping
Undue user expectations
Inconsistencies between prototype and final product
Final system inefficiencies
Lack of attention to good human factors practice.
Inattention to proper design and analysis.
15
When to prototype
A good prototyping candidate isDynamic
Transaction processing based
Contains extensive user dialogs
Is small
Is well defined
Is online
‘is’ the business
16
When not to prototype
A system with the following attributes is not a good candidate
Is stable
Is decision-support based
Is ill-defined
Makes little use of user dialogs
Is real-time
Has lots of number crunching
17
Methodology
Following good methodology is key to successful prototyping
Four phases of prototype development
Determine what to prototype
Build the prototype
Test the prototype
Use the prototype as a model
18
Incorporating Human Factors
Prototyping does nothing to ensure use of good human factors practices.The issue of “user friendly” or usability has become a huge determinant of system success.A system that works perfectly may be rejected if difficult to useNote that this is not an issue that applies just to prototypes.
19
Some good guidelines
Know your userUse selection not entryMake the system behave predictablyMake the system unobtrusiveChange displays as little as possibleMinimize keystrokes and mouse useUse meaningful error messagesAllow for “undo”
20
Case Study- NJ DMV
Price Waterhouse contracted to build New Jersey’s DMV primary information system.They chose a new (at the time)4GL called Ideal from Applied Data Research to develop the systemWhen delivered, the response time was so slow that the backlog required thousands of hours of overtime
21
What went wrong?
Ideal was new and untested.
Little time was spent training staff in its use
The contract imposed bigger penalties for late system than a non performing one
They ignored consultants warnings that Ideal was not the right tool.
22
How did they fix it?
By converting 58 of 800 modules to COBOL, system performance was made acceptable.
Those 58 modules performed 85% of the systems work.
23
Case Study: Town and Country Credit Line
Banking card system improvement
Hired consultants to help them choose IEF (Information Engineering Facility) from Texas Instruments
Used Iterative prototyping and delivered a successful system
24
What went right?
Tool was 5 years more advanced than Ideal
They did a more extensive study of available tools before choosing
Learned from others’ mistakes
25
Summary
Prototyping is made possible by the availability of 4GLs and soon 5GL
Not all systems are good candidates for prototyping
For those that are, prototyping can reduce development time and cost
Prototyping does not ensure good human factors
26
My opinion
I’m not a big fan of type II prototyping. Anything that gets thrown away seems wasteful and end product may not match prototype.
Iterative prototyping is good for working out incompletely defined user interfaces
Customer is usually happier when they have up front involvement in final product.
27
Additional References
http://www.webopedia.com/TERM/F/fourth_generation_language.htmlhttp://en.wikipedia.org/wiki/4GL“Importance of Software Prototyping” by Larry Bernstein - Have Laptop - Will Travel, http://www.dacs.dtic.mil/awareness/newsletters/technews2-1/prototyping.html