Prototyping: alternative systems development methodology by J M Carey Presented by Cynthia

advertisement
Prototyping: alternative
systems development
methodology by J M Carey
Presented by Cynthia
Johnson
February 7, 2007 EEL 6883
1
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
2
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
3
Why use prototyping?
Helps user clarify their needs
Less ambiguous than traditional
narrative function specification
Improves team communication. “A
picture is worth a 1000 words”
Less emphasis on time consuming
documentation
Generally faster than traditional
development
4
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.
5
Prototyping Environments
Two major types of prototyping
environments mentioned.
Automated development environments
Prototyping toolkits – a collection of
unintegrated tools.
6
Fourth and Fifth Generation
Software Languages
Often abbreviated 4GL, fourthgeneration 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"
7
The generations of computer
languages
1st Generation
Machine Language
2nd Generation
Assembly Language
3rd Generation
C, C++, FORTRAN, Java, Pascal, Ada
4th Generation
SQL, RPG-II
5th Generation
Used for artificial intelligence and neural
networks – primarily researchers
8
Successful 4GL Languages
Database Query
SQL, Progress 4GL, Informix
Report Generators
BuildProfessional, PostScript
Data Manipulation and Reporting
Clarion, GraphTalk
Screen Painters, GUI Developers
FourGen, Visual Basic
9
Types of Prototyping
Type I – Iterative
Type II - Throwaway
10
Type I - Iterative
Uses the Prototype as the final
system after a series of iterative
upgrades
Generally uses a 4GL tool for
development
11
Type II - Throwaway
Prototype is developed in 4GL or
toolkit
Final product based on prototype built
in 3GL language.
12
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.
13
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.
14
When to prototype
A good prototyping candidate is
Dynamic
Transaction processing based
Contains extensive user dialogs
Is small
Is well defined
Is online
‘is’ the business
15
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
16
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
17
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 use
Note that this is not an issue that
applies just to prototypes.
18
Some good guidelines
Know your user
Use selection not entry
Make the system behave predictably
Make the system unobtrusive
Change displays as little as possible
Minimize keystrokes and mouse use
Use meaningful error messages
Allow for “undo”
19
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 system
When delivered, the response time
was so slow that the backlog required
thousands of hours of overtime
20
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.
21
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.
22
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
23
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
24
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
25
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.
26
Additional References
http://www.webopedia.com/TERM/F/f
ourth_generation_language.html
http://en.wikipedia.org/wiki/4GL
“Importance of Software
Prototyping” by Larry Bernstein Have Laptop - Will Travel,
http://www.dacs.dtic.mil/awareness
/newsletters/technews21/prototyping.html
27
Download