Prototyping And Planned Software System Information Technology Essay

A prototype is an easily modified and extensible model of a planned software system likely including its interface and input-output functionality. A prototype is just a overview of actual software.It provide a rough guess or idea about the final project.It does not include internal details of the project.It give a view to the client that how would his project look like and what kind of output he will get.If the client is not satisfied with the software,he can make the developer aware of his requirements at the very beginning of the development of final project.It also help in estimating cost and effort required for the project.

Instead of freezing the requirements for the different phases a throwaway prototype is built which help in determining the requirements.The basic prototype is built using the currently known requirements.The prototype also went through same phases like coding ,testing, designing etc , but this is not the formal activities.This prototype make the client to understand how his system would look like. Prototype is applicable to those system in which requirements are completely unknown and there is no existing system for reference.

The development of the protype starts after the preliminary version of the requirements specification document has been generated.Developing prototype is a part of requirement analysis phase of prototyping model.After freezing the requirements further phases are executed.Through the use of prototyping,risk can be reduced to great extent.The prototype is modified until the proper requirements are known and the user is satisfied with the system.

Developing prototype undergoes following steps:-

1.Identifying the requirements:-This is the initial step which include determining requirements for generating the desired output,What will be the input for getting desired output.But detail explanation can be ignored.

2.Developing prototype:-Initial prototype is developed so that user can play with that prototype i.e it include user interface. Prototype can be of various types-throwaway prototype,incremental prototype,evolutionary prototype etc.

3.Review/feedback:-After developing the prototype it is handed over to the users and clients.They provide their feedback according to their needs.If they are not satisfied the prototype can be modified at that time only.

4.Amendments:-Prototype can be revised or enhanced if user is not satisfied otherwise it is treated as final prototype and final system is developed again repeating all the phases formally.

TYPES OF PROTOTYPE

1.Throwaway prototyping:- This is also known as Close ended or Rapid Prototyping.Firstly the initial requirements for the system is gathered. Using that initial requirements prototype is developed.It acts as a working model which is given to the user and user can determine how their final product would look like,whether they are getting what they want or not.This prototype can be discarded after all the requirements are properly known and final system is developed using the requirements that has been identified..The developing of the prototype is done in very short span of time.All the work is done very informally.

Since this type of prototyping is less time consuming,it can be handed over to the users very early and changes can be made at very early stage accordingly.It will help in reducing cost since making changes in later stages is not feasible and cost and effort consuming also.Cost and time is very crucial part of a software,so saving them means efficient system.

Secondly it provide more user interfaces.User interfaces make the user understand the system properly only by viewing the prototype. Requirements can be identified, simulated, and tested far more quickly and cheaply when issues of evolve ability, maintainability, and software structure are ignored.Accurate specification of requirements are determined and valid system is developed.

Rapid prototyping can be any of variety of processes which avoids tooling time in producing prototypes and consequently allows prototypes to be produced within hours or days.These prototypes are frequently used to quickly test the consumer interest.

2.Evolutionary Prototyping:- It is also known as Breadboard prototyping.As compared to throwaway prototype it is build in proper and formal or structured manner .After getting the feedback from user the prototype is revised and refined at regular interval of time.It is developed basically by keeping the current need or environment need of the system which changes with time.Here,assumptions are made about the prototype in the beginning keeping in the mind the technology and needs and plan is made.Work is done according to the planning. Evolutionary Prototypes have an advantage over Throwaway Prototypes in that they are functional systems.In this type of prototyping emphasis is given in developing the system in small parts rather than developing whole project in a single part.

Developer does not include those features in the prototype that are not completely understood in order to minimize the risk.The half built system is provided to the user and as the clients suggest new features .After taking the feedback, developer look into that features whether they should be included or not .The features are implemented then by using suitable configuration management plan.

3.Presentation Prototype:-It is a representation of final product.But is not the exact copy of final project.It should be self explanatory that what the project should do,what would be the input and output of the project.It include other factors like manufacturing cost,safety factors,marketing details etc.

4.Pre-Production Prototype:- This kind of prototype is for practical purposes.It should include all details including information regarding how the project is manufactured,

details including all instructions etc. This final-stage prototype is typically expensive to produce,and far more expensive to make than the actual unit cost once the product is in full production,but the added cost is often well worth it. But it is important because it enables the developers to grasp the proper detail which are needed prior the launching of the final product.

5.Extreme prototyping:-It is used while developing web applications.It include three phases:-

1.static prototype

2.Developing user interface.

3.implementation of services.

Prototype based on Development Planning:-

6.Patch Up Prototype:- As the name suggest , it encourages participation of different developers.Each developer is assigned a particular individual task.These modules are integrated to generate the final product.This process consume less time since there are more number of developers working on a single system divided into parts.In this type of prototype development model,project manager plays an important role as it can look into the development of the system and guide the developers accordingly.It also ensures that there is no overlapping of functions among the developers.

7 Non-operational prototype:- This type of prototype model is used only when a part of the system is needed to be modified.It is implemented when some problems in subpart of the system arises.Since developing a prototype is a long term process. So making changes in some part is mandatary and necessary according to the changing environment.This task is accomplished by non-operational prototyping.

8..First of a series Prototype:- It is known as a beta version.The system is provided in beta versions,and can be used by the clients for the testing purposes.It is a functional software,and users can give their feedback according to their taste.they can even test security and firewall features which are generally not included in other prototypes.This type of prototyping is needed to be done properly,otherwise there is no use of it.

9. Selected Features Prototype:-This is another form of releasing a software in beta version. However, instead of giving the public the full version of the software in beta, only selected features or limited access to some important tools in the program is introduced. Selected Features It is mainly applicable while developing part of the large projects. It is helpful in testing independent part of the system.The versions should be integrated later to form the final system.

Prototype based on dimensions:-

10.Vertical prototype:-It give emphasis on a part of the program rather than the whole system.It is useful while updating database design, and is mainly useful in understanding the complex requirements.It provide user interface.It cuts down the number of features so that the result is a narrow system.it includes in depth functionality for only some features.user can test real tasks.

11.Horizontal prototype:-Unlike vertical prototype it give emphasis on the whole system rather than concentrating on a function.It focuses more on user interface thus help in determining users requirements properly,even though they can not perform any real tasks..It lalso provide a estmation of cost,efforts and time which is necessity for developing the software.It reduces the level of functionality. It can simulate the user interface as long as the user follows a previously planned path.It can be used for early evaluation of user interface and help to get the feedback and reduces the expense of constructing a running prototype.

CHARACTERISTICS OF PROTOTYPE:-

1.Cost effective:- It is preferred to keep the cost of the prototype low.In order to reduce the cost,those features should be included that will required for user interface, so that user can play with that prototype.One of the cost cutting measure is to reduce testing.If the cost will be more in the beginning phase only,then it will effect the other phases also which will leads to high cost.

2.Executability:- It should be executable.It should include that features which provide a way for the testing.these features allow user to interact with the prototype and by giving their input they can determine their output.

3.Representation:- The prototype should be self-explanatory.Although it should not be exactly like the final system but it should include the essential features of the final system.Ignore unwanted aspects like exception handling,recovery and conformance etc.

4.Maturation:- Prototype should be such that with sufficient improvement,it can be evolved to final product.

5.Simple:- Prototype should be simple and understandable.It should not include complex features which are not understood to the clients.

6.Documentation:- In prototyping ,as the prototype is to be discarded,only minimal documentation needs to be produced during prototyping.

7.Scope:- As a minimum, prototype simulates the 20 percent of the functions, that customers will use 80 percent of the time.

Things keep to be in mind before building prototype:-

Purpose of the prototype.

What kind of prototyping tools are needed.Whether it will be constructed manually or with the help of a software.

What features and functionality is to be included in the prototype.for example-avoiding testing, exception handling, and already known requirements are ignored.

Dividing the work among the teams.teams include developer,clients.users.senior management etc.

Deciding level of fidelity whether it will be low or high.

If the conflict arises among team members,how to resolve them.

Maximum length of an iteration cycle.

When to prototype:-

1.Before the beginning:- If a prototype is developed in the beginning,it can be used as a proof pf concept which can be shown to senior management.

2.In the beginning:-The basic need of the prototype is to gather the complete requirements.So,if the requirements are completely unknown and there is not a existing system ,it is preferred to built the prototype in the beginning.It comes under requirement analysis phase.Those requirements are not needed to be included in the prototypes that are already completely known.

3.After the beginning:-As the requirements may change after certain period of time with changing needs and technology.During this time period ,it is used to validate evolving user requirements.

4.In the middle stages:- In the middle stages of system development,It is helpful in validate system specifications.

5. In middle and later stages:- Here prototype is useful to create a marketing demo and to train users.

6.In the later stages:- To explore solutions to specific usability or design problems.

Features of a prototyping tool:-

A prototyping tool is the tool that is used to built the prototype.prototype can be manually created or it may be built by using emerging techniques.

1.It should be able to create working prototype with user interface.

2.Screens should be created easily and can be modifiable.

3.It should allow review and scientific collection of the user.

4.It should simulate expected performance.

5. Should import text,graphics and other media if desired.

6. Should make it easy to change window and task order.

7. Should import reusable software components of various kind.

8. Should fulfill industry standards and libraries

Prototyping tools include:-

1.Pencil and paper

2. Demo makers

3. Drawing software are available

4. Animation and slide show software

5. Visual RAD tools (visual basic,optima++,Borland Delphi)

6. User interface management system

7.4GL&acirc;€™s( 4th generation programming languages)

Advantages of prototype:-

Prototypes can be changed or modified easily.Since requirements changes constantly,so the prototype must have the property of modifiable.

It acts as a medium of communication between the user and the developer.

Users prefer those systems that are developed using prototypes.Since they can feel the actual system using prototypes and they have facilty to make the developers change their system in the very beginning.

It may serve as a marketing tool.

It pays a lot in reducing the risk.

It may provide early training for the future users of the system

It may provide useful functions even if there is shortage of time or money

Since problems can be detected early, it help in reducing redesign costs.

It require less developing effort than final software.

Prototyping strengthen requirement specifications.

System developed through prototyping are easier to learn and use.

It demand increased and more user involvement.

It provide quality assurance.

Help in determining the requirements which are sometimes not known in advance.

Time efficient

Disadvantages of prototype:-

Development is sometimes time consuming.

Sometimes cost required is high,if we include unwanted phases.

Can introduce conflict between client and the developer.

Problem arises in managing the schedule for the development of the prototype.

Sometimes developer thought of only change the prototype to final project,but prototype is needed to be thrown out.

The excellent performance characteristics of prototypes may mislead the customer.

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

It may lead to excessive change requests.

Important characteristics like performance may have been ignored.

Prototypes of complex systems may be complex which can be time consuming.

It provide little testing features.

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

It may be too long to complete if requirements keep on changing.

Where the prototyping is applicable?????

Prototyping is preferred in those systems where user interaction is more.It is also applicable to those projects where requirements are difficult to analyze or requirements are not known in advance. Those systems where there is no existing systems for reference, prototyping is applicable.It also provide more opportunity for users as they can suggest changes prior to the development of the final project,which also save money and time.Prototyping can act as a best technique in reducing risk.The main use of prototyping is in analyzing the requirements. Prototyping is used to compare alternatives design.

It is used to model a system that is large and complex.It also provide a good basis of communication between developer and clients.It is used to create living specification.It is also used to identify market requirements.

Prototyping is very effective in the analysis and design of online systems where use of screen dialogues is more..It is also worth in designing computer-human interface.Systems with little user interaction get little benefit from prototyping.