User:Janfil mejia

From Wikipedia, the free encyclopedia

==ADVANTAGES OF PROTOYPING

Prototypes can be easily changed

May provide the proof of concept necessary to attract funding

Early visibility of the prototype gives users an idea of what the final system looks like

High user satisfaction

Encourages active participation among users and producer

Enables a higher output for user

Cost effective (Development costs reduced) * Increases system development speed

Make changes quickly and easily.


==DISADVANTAGES OF PROTOTYPING

User’s expectation on prototype may be above its performance

Possibility of causing systems to be left unfinished or implemented before they are ready.

Producer might produce a system inadequate for overall organization needs

Producer might get too attached to it (might cause legal involvement)

Often lack flexibility

Not suitable for large applications

Project management difficulties.


==Another concepts of SOFTWARE PROTOTYPING

The prototyping model is a software development process that begins with requirements collection, followed by prototyping and user evaluation. Often the end users may not be able to provide a complete set of application objectives, detailed input, processing, or output requirements in the initial stage. After the user evaluation, another prototype will be built based on feedback from users, and again the cycle returns to customer evaluation. The cycle starts by listening to the user, followed by building or revising a mock-up, and letting the user test the mock-up, then back.

In the mid-1980s, prototyping became seen as the solution to the problem of requirements analysis within software engineering. Prototypes are mock-ups of the screens of an application which allow users to visualize the application that is not yet constructed. Prototypes help users get an idea of what the system will look like, and make it easier for users to make design decisions without waiting for the system to be built. When they were first introduced the initial results were considered amazing. Major improvements in communication between users and developers were often seen with the introduction of prototypes. Early views of the screens led to fewer changes later and hence reduced overall costs considerably.

However, over the next decade, while proving a useful technique, it did not solve the requirements problem:

Managers, once they see the prototype, often have a hard time understanding that the finished design will not be produced for some time. Designers often feel compelled to use the patched-together prototype code in the real system, because they are afraid to 'waste time' starting again. Prototypes principally help with design decisions and user interface design. However, they can not tell what the requirements were originally. Designers and end users can focus too much on user interface design and too little on producing a system that serves the business process.

[edit] Electronics prototyping In electronics, prototyping means building an actual circuit to a theoretical design to verify that it works, and to provide a physical platform for debugging it if it does not. The prototype is often constructed using techniques such as wire wrap or using veroboard or breadboard, that create an electrically correct circuit, but one that is not physically identical to the productionized product.

A technician can build a prototype (and make additions and modifications) much quicker with these techniques — however, it is much faster and usually cheaper to mass produce custom printed circuit boards than these other kinds of prototype boards. This is for the same reasons that writing a poem is fastest by hand for one or two, but faster by printing press if you need several thousand copies.(END)


==WHAT IS PROTOTYPING?

Prototyping is the process of building a model of a system. In terms of an information system, prototypes are employed to help system designers build an information system that intuitive and easy to manipulate for end users. Prototyping is an iterative process that is part of the analysis phase of the systems development life cycle.

During the requirements determination portion of the systems analysis phase, system analysts gather information about the organization's current procedures and business processes related the proposed information system. In addition, they study the current information system, if there is one, and conduct user interviews and collect documentation. This helps the analysts develop an initial set of system requirements.

Prototyping can augment this process because it converts these basic, yet sometimes intangible, specifications into a tangible but limited working model of the desired information system. The user feedback gained from developing a physical system that the users can touch and see facilitates an evaluative response that the analyst can employ to modify existing requirements as well as developing new ones.

Prototyping comes in many forms - from low tech sketches or paper screens(Pictive) from which users and developers can paste controls and objects, to high tech operational systems using CASE (computer-aided software engineering) or fourth generation languages and everywhere in between. Many organizations use multiple prototyping tools. For example, some will use paper in the initial analysis to facilitate concrete user feedback and then later develop an operational prototype using fourth generation languages, such as Visual Basic, during the design stage.

==SOME ADVANTAGES OF PROTOTYPING_

Some Advantages of Prototyping:

Reduces development time.


Reduces development costs.

Requires user involvement.

Developers receive quantifiable user feedback.

Facilitates system implementation since users know what to expect.

Results in higher user satisfaction.

Exposes developers to potential future system enhancements.(END)



==Some Disadvantages of Prototyping

Can lead to insufficient analysis.

Users expect the performance of the ultimate system to be the same as the prototype.

Developers can become too attached to their prototypes

Can cause systems to be left unfinished and/or implemented before they are ready.

Sometimes leads to incomplete documentation.

If sophisticated software prototypes (4th GL or CASE Tools) are employed, the time saving benefit of prototyping can be lost.(END)


==why prototyping is important??

Because prototypes inherently increase the quality and amount of communication between the developer/analyst and the end user, its' use has become widespread. In the early 1980's, organizations used prototyping approximately thirty percent (30%) of the time in development projects. By the early 1990's, its use had doubled to sixty percent (60%). Although there are guidelines on when to use software prototyping, two experts believed some of the rules developed were nothing more than conjecture.

In the article "An Investigation of Guidelines for Selecting a Prototyping Strategy", Bill C. Hardgrave and Rick L. Wilson compare prototyping guidelines that appear in information systems literature with their actual use by organizations that have developed prototypes. Hardgrave and Wilson sent out 500 prototyping surveys to information systems managers throughout the United States. The represented organizations were comprised of a variety of industries - educational, health service, financial, transportation, retail, insurance, government, manufacturing and service. A copy of the survey was also presented to a primary user and a key developer of two systems that the company had implemented within the two years of the survey.

There were usable survey results received from 88 organizations representing 118 different projects. Hardgrave and Wilson wanted to find out how many of the popular prototyping guidelines outlined in literature were actually used by organizations and whether compliance affected system success (measured by the user's stated level of satisfaction). It should be noted that, although not specifically stated, the study was based on the use of "high tech" software models, not "low tech" paper or sketch prototypes.

Based on the results of their research, Hardgrave and Wilson found that industry followed only six of the seventeen recommended in information system literature. The guidelines practiced by industry whose adherence was found to have a statistical effect on system success were:

Prototyping should be employed only when users are able to actively participate in the project.

Developers should either have prototyping experience or given training.

Users involved in the project should also have prototyping experience or be educated on the use and purpose of prototyping.

Prototypes should become part of the final system only if the developers are given access to prototyping support tools.

If experimentation and learning are needed before there can be full commitment to a project, prototyping can be successfully used.

Prototyping is not necessary if the developer is already familiar with the language ultimately used for system design.

Instead of software prototyping , several information systems consultants and researchers recommend using "low tech" prototyping tools (also known as paper prototypes or Pictive), especially for initial systems analysis and design. The paper approach allows both designers and users to literally cut and paste the system interface. Object command and controls can be easily and quickly moved to suit user needs.

Among its' many benefits, this approach lowers the cost and time involved in prototyping, allows for more iterations, and gives developers the chance to get immediate user feedback on refinements to the design. It effectively eliminates many of the disadvantages of prototyping since paper prototypes are inexpensive to create, developers are less likely to become attached to their work, users do not develop performance expectations, and best of all, your paper prototypes are usually "bug-free" (unlike most software prototypes)!(END)




PROTOTYPING..................

PICTURE

DEFINITION OF PROTOTYPE

CHARACTERISTICS OF A PROTOTYPE

THE PROTOTYPING PROCESS

WHEN DO YOU PROTOTYPE?

WHAT TO CONSIDER UP-FRONT BEFORE BUILDING A PROTOTYPE

PROBLEMS CAUSED AND CURED BY PROTOTYPING

PROTOTYPING TOOLS

EVALUATION OF PROTOTYPING

)PICTURE..




DEFINITION OF PROTOTYPE ,........ An easily modified and extensible model (representation, simulation or demonstration) of a planned software system, likely including its interface and input/output functionality

CHARACTERISTICS OF A PROTOTYPE

TYPES OF PROTOTYPE

LOW-FIDELITY versus HIGH-FIDELITY

LOW-FIDELITY A set of drawings (e.g., storyboard) that provide a static, non-computerized, non-working mock-up of user interface for the planned system

HIGH-FIDELITY A set of screens that provide a dynamic, computerized, working model of the planned system

EXPLORATORY versus EXPERIMENTAL versus OPERATIONAL

EXPLORATORY A throw-away prototype used to clarify project goals, to identify requirements, to examine alternative designs, or to investigate a large and complex system

EXPERIMENTAL A prototype used to validate system specifications

OPERATIONAL An iterative prototype that is progressively refined until it becomes the final system

HORIZONTAL versus VERTICAL

HORIZONTAL A prototype that models many features but with little detail

a horizontal slice of a system's structure chart from the top down to a specific depth

most useful in the early stages of design

purpose is to test the overall interaction metaphor, so includes common functions that the user is expected to perform frequently

VERTICAL A prototype that models few features but with much detail

a vertical slice of a system's structure chart from top to bottom

most useful in the later stages of design

purpose is to test details of the design

DIAGONAL A prototype that is horizontal down to a particular level, then vertical below that point

GLOBAL versus LOCAL

GLOBAL A prototype of the entire system

an expanded horizontal prototype that models a greater number of features and covers multiple levels of the system's structure chart

useful throughout the design process

LOCAL A prototype of a single usability-critical system component

a vertical prototype that is focused on one feature

useful at some specific stage of the design process

DIMENSIONS OF PROTOTYPING

EXECUTABILITY Will the prototype be runnable and, if so, what does that mean?

CHAUFFEURED PROTOTYPE "runnable" in the VERY LOOSE SENSE that the prototype allows a walkthrough to be performed

ANIMATION PROTOTYPE runnable in the LOOSE SENSE that it is executes frame by frame in "slide show" mode on a computer

TURING PROTOTYPE "runnable" in the sense that it executes in "slide show" mode BUT allows a third party, hidden from view, to pick the next slide based on user input (also called "Wizard of Oz" prototyping)

INTERACTIVE PROTOTYPE runnable in the STRICT SENSE that it executes on the computer AND responds to user input in real time

FUNCTIONAL PROTOTYPE runnable in the VERY STRICT SENSE that it executes on the computer, responds to live input, and performs some of the expected computations

MATURATION Will the prototype be improved by stages and, if so, will it eventually grow into the final product?

REPRESENTATION What level of fidelity will the prototype achieve?

SCOPE Will the prototype be limited to specific areas of functionality?

CHARACTERISTICS OF A GOOD NON-DISPOSABLE PROTOTYPE

EXECUTABILITY Works sufficiently well with live user input to permit usability testing

MATURATION Can evolve, given sufficient refinement, into the final product

REPRESENTATION Has the "look and feel" and performance characteristics of the planned system

SCOPE As a minimum, simulates the 20% of the functions that customers will use 80% of the time


THE PROTOTYPING PROCESS Many variations

Perform customer needs analysis in a JAD session but leave requirements incomplete.

Build a low-fidelity prototype to clarify initial requirements.

Iterate (re-specify, re-design, re-evaluate) until the team, both users and developers, agree that the fidelity and completeness of the evolving prototype are sufficiently high.

Freeze these specifications.

Finish building the product exactly as prototyped.

NOTE: The prototyping process experiences a series of birthdays while traditional software development experiences a series of deadlines.


WHEN DO YOU PROTOTYPE?

BEFORE THE BEGINNING to show proof of concept to senior management

IN THE BEGINNING to gather initial user requirements

AFTER THE BEGINNING to validate evolving user requirements

IN THE MIDDLE STAGES to validate system specifications

IN MIDDLE AND LATER STAGES to pre-train users or to create a marketing demo

IN THE LATER STAGES to explore solutions to specific usability or design problems


WHAT TO CONSIDER UP-FRONT BEFORE BUILDING A PROTOTYPE

Breadth of functionality needed in the prototype at first, later on

Choice of prototyping tool and its limitations

Completion criteria for the iteration cycle

Composition of the team (users, developers, other stakeholders)

Level of fidelity needed in the prototype at first, later on

Maximum length of an iteration cycle

Purpose of the prototype at first, later on

Ways to manage conflict between team members, build consensus


PROBLEMS CAUSED AND CURED BY PROTOTYPING

PROTOTYPING MAY ADDRESS THE PROBLEM OF ...

communication between developers and customers

customer acceptance

delivering early proof of concept

fuzziness in early stages of design

gathering valid requirements

increasing constructive user participation

managing change requests

product invisibility

quality assurance

PROTOTYPING MAY INTRODUCE THE PROBLEM OF ...

deciding how much iteration is enough

gauging progress without traditional milestones

managing conflict between developers and customers

managing the schedule for a development cycle that is essentially open-ended

processing excess change requests from customers

runaway customer expectations

DEALING WITH PARTICULAR PROBLEMS

HOW DO YOU PREVENT RUNAWAY EXPECTATIONS DURING PROTOTYPING?

Build the expected performance into the prototype, using delays (timing loops) if necessary.

Develop realistic specifications.

Distinguish between primary and secondary requirements.

Give customers a crash course in software development.

HOW DO YOU KNOW WHEN YOU ARE DONE PROTOTYPING?

When you run out of time or money (default criterion)

When the prototype meets all the requirements of the final system

When the prototype has a limited purpose (e.g., gathering initial requirements) and that purpose has been achieved

When, in horizontal prototyping, you reach the target level (depth) in the system structure chart

When developers and users jointly agree to move on to the next stage


PROTOTYPING TOOLS

FEATURES NEEDED IN A RAPID PROTOTYPING TOOL

MOST IMPORTANT FEATURES

Should create a working prototype with which users can interact

Should make it easy to create, develop and modify screens

Should simulate the look and feel of the planned interface

OTHER DESIRABLE FEATURES

Should allow calls of external procedures and programs

Should allow playback of user trials

Should allow scientific collection and review of user interaction data

Should be able to simulate the expected performance characteristics of the planned system (e.g., by using timers)

Should exhibit the look and feel of the target operating system

Should generate much of the code needed to implement the interface design

Should import reusable software components of various kinds

Should import text, graphics, sound and other media

Should leverage industry-standard APIs and standard libraries

Should make it easy to change task order

Should make it easy to change window order

Should make it easy to create simple animations

Should make it easy to modify tasks

Should make it easy to sequence and re-sequence windows

Should provide a seamless transition from design to implementation

TYPES OF PROTOTYPING TOOLS From less formal to more formal

Pencil and paper

Drawing software

Demo makers (e.g., Demo-It)

Animation and slide-show software

Perl + Motif + Tcl/Tk (UNIX)

"Visual" RAD tools such as Visual Basic, Optima++ and Borland Delphi

4GLs

UIMSs (User Interface Management Systems)

Executable specification languages (VDM variants)


EVALUATION OF PROTOTYPING

BENEFITS AND RISKS OF PROTOTYPING

ADVANTAGES (BENEFITS)

NUMBER 1 BENEFIT Prototypes may be easily changed or even discarded.

NUMBER 2 BENEFIT Prototyping may improve communication between and among developers and customers

NUMBER 3 BENEFIT Users may be more satisfied with systems developed using prototyping.

A prototype may provide the proof of concept necessary to attract funding.

A prototype may serve as a marketing tool.

A prototype may serve as the basis for operational specifications.

Early visibility of the prototype may help management assess progress.

Exploratory prototyping allows productive work to proceed despite initial uncertainties.

Prototypes may demonstrate progress at an early stage of development.

Prototypes may provide early training for future users of the system.

Prototyping may prevent unpleasant surprises by calling attention to incomplete or inconsistent requirements, or to missing functionality.

Prototyping may produce some useful deliverables even if the project runs out of time or money.

Prototyping may reduce misunderstandings between and among developers and customers.

Prototyping may reduce redesign costs if problems are detected early when they are cheap to fix.

Prototyping may reduce the time required for testing if problems are detected early when they are cheap to fix.

Prototyping may require less effort (43% less, according to Boehm, Gray & Seewaldt, 1984) than conventional development.

Prototyping may result in a 50-50 partnership between users and developers where both experience "ownership".

Prototyping may result in a product that is a better fit for the customer's requirements.

Prototyping may save on initial maintenance costs because, in effect, customers are doing "acceptance testing" all along the way.

Prototyping may strengthen requirements specifications.

Systems produced through prototyping may be judged easier to learn and easier to use.

The horizontal prototyping method works nicely as a complement to structured analysis.

The prototyping environment less vested in a particular design, hence more open to change and innovation.

Use of prototypes may flush out change requests earlier, when they are cheaper to process.

Users may understand prototypes better than paper specifications.

Using prototyping during development may reduce the amount of code that is finally written (by 60%, according to Boehm, Gray & Seewaldt, 1984).

PITFALLS (RISKS)

NUMBER 1 RISK Prototpying may encourage an excess of change requests.

NUMBER 2 RISK Working prototypes may lead management and customers to believe that the final product is almost ready for delivery.

NUMBER 3 RISK The excellent (or disappointing) performance characteristics of prototypes may mislead the customer.

Customers may not be prepared to provide the level or frequency of feedback required for iterative prototyping.

Customers may not be willing to participate in the iteration cycle over the long haul

Developers may have difficulty writing the back-end code needed to support the slick front-end interface designed with the prototyping tool.

Due to time and market constraints, system specifications may be frozen before the prototyping process has reached a definitive stage.

During prototyping, the only "design specification" is the prototype itself, which may allow uncontrolled change.

Early prototypes may be of low fidelity, dismissed as toys.

Hi-fidelity prototypes may be mistaken for a real product.

Important system characteristics (e.g., performance, security, robustness and reliability) may have been ignored during prototype development.

It may be impossible to prototype mission- or safety-critical system functions.

Iterative prototyping may be difficult for management to plan and schedule.

Prototypes may become over-evolved, straining to incorporate secondary functionality even though that will take disproportionately more development time.

Prototypes may embody simplifications and other inaccuracies.

Prototypes may oversell the product.

Prototypes of complex systems may themselves be rather complex.

Prototyping is an adaptive process that may not exhibit well-defined phases.

Prototyping may continue too long because there may be no well-defined completion criterion.

Prototyping may force developers to change design philosophies (e.g., switch to a bottom-up or an event-driven model).

Prototyping may provide little room for testing NON-functional system requirements.

Prototyping may stall if members of the team do not have enough decision-making authority.

Prototyping, because it may be less controlled than conventional development methods, may lead to a reduction in programmer discipline.

Specifications that emerge during later prototyping may reduce the structural integrity of the partially designed system (e.g., increase coupling between modules).

The context of use for a prototype may be very different from the context of use for the final system.

There is no guarantee that the positions of developers and customers will converge during the iteration cycle.

WHEN PROTOTYPING WORKS AND WHEN IT DOESN'T

PROTOTYPING IS MORE LIKELY TO SUCCEED WHEN ...

used as a means to achieve early usability testing

used to compare alternative designs (the "dueling prototypes" technique)

used to create a "living" specification

used to escape from the rigid serial pattern imposed by the traditional software development life cycle

used to evaluate a proposed interface

used to explore the effect of change requests

used to expose new or unexpected requirements

used to identify market requirements

used to involve users in the design process

used to model a system that has a significant user interface component

used to model a system that is relatively large and complex

used to provide a common basis for good communication between developers and customers

used to stimulate customer input during requirements gathering

used within a rapid prototyping tool

PROTOTYPING IS MORE LIKELY TO FAIL WHEN ...

no clear terminating criterion has been established to end the iterative development cycle

the expectations of customers are allowed go grow beyond reasonable bounds

the functionality of an operational prototype does not scale up to the functionality required of the final system

the opinions of developers and customers diverge during the iterative phase

the project is too small to justify prototyping

the prototype is mistaken for the promised product

used to model systems that present no external interface (e.g., embedded systems)

used to gauge the future performance of the planned system

used to market software that does not exist