The History Of The Software Prototyping Information Technology Essay
Software prototyping is a process in which the prototypes of the software applications or we can say that a rough or incomplete version of the software is developed. The prototyping is done during certain software development and it is very much like the prototyping in mechanical engineering and manufacturing companies.
The purpose to create the prototype is to allow the users who will use the software so as to tell the developers by giving them proposals for the design of the eventual product by actually trying them out, so that the developer does not only have to develop and interpret and evaluate the design on the basis of descriptions given in specifications. The prototype is also used by the end users so that they can describe and prove that the developers have not considered controlling the prototype which is the main factor in the dealership between the developers and the clients and the Interaction design in particular makes heavy use of prototyping with that goal.
Uses of software prototyping:
1. To help customers and developers understand the requirements of the system.
2. It reduces the requirement risks.
Benefits of prototyping:
When the project is under development the software developer can obtain feedback from the users.
With the prototype the client and the developer are able to make sure that the actual software developed matches the specification given by client or not.
Prototyping also helps the software developer some to estimate the initial project development cost and it also allows the developer to estimate whether the deadlines and milestones proposed can be successfully met.
Improved system usability
Closer match to the system needed
Improved design quality
Reduced overall development effort
Fig1. Prototype process
Objectives of software prototyping
It helps to explain the use of prototypes in different types of development project.
To explain the evolutionary and throw-away prototyping.
To give the proper reason for the need of user interface prototyping.
To introduce three rapid prototyping techniques – high-level language development, database programming and component reuse.
TYPES OF PROTOTYPING
Throw-away prototyping: this type of prototyping is creates a prototype which is usually a practical implementation of the system. The prototype is produced helps to meet the requirement problems and then discarding them. Then the system is developed using some other development process. This type is also called close ended prototyping. The rapid or the throwaway prototyping actually creates a model which will be discarded rather than becoming the part of the final software to be developed. In Rapid Prototyping everything is done rapidly and it involved creating a working model of various parts. Throwaway Prototyping is that it can be done quickly.
Figure 2 Throw away prototyping
OBJECTIVE OF THROW-AWAY PROTOTYPING:
The main objective of the throw away prototyping is to make the system requirements valid and derived. This prototyping starts with those requirements which are very poor to be understood.
In this prototyping the prototype is produced so as to meet that thinking or the idea that it will be not used and will be discarded and we will build final product from scratch. The steps in this approach are:
Write all the preliminary requirements
Design the prototype according to requirements
User experiences/uses the prototype, specifies new requirements
Repeat if necessary
Write the final requirements
Develop the real products
Evolutionary prototyping: the evolutionary prototyping is related to system development in which an initial prototype is built and it is refined through a number of stages to the final product. Evolutionary prototype is like the heart of the new system to be developed and the improvements will be made according to the further requirements. It acknowledges that we do not understand all the requirements and builds only those that are well understood.
This prototyping must be used in the systems where the specification is not made in advance like in artificial intelligence systems and UI systems. Based on techniques which allow rapid system iterations
Verification is impossible as there is no specification. Validation means demonstrating the adequacy of the system
Figure3. Evolutionary prototyping
OBJECTIVE OF EVOLUTIONARY PROTOTYPING:
The objective of evolutionary prototyping is to deliver a working system to end-users. The development starts with those requirements which are best understood.
Advantages of evolutionary prototyping:
1. System is delivered very fast
In this the rapid delivery and installation is more important than proper functionality and maintainability.
2. User is attached to system
If it meets the user requirements user uses the system effectively.
1. Management problems: management processes use waterfall model for development.
2. Maintenance problem
The final product is developed in separate prototypes. To get the overall designed system all the prototypes are combined. For each increment requirements and specifications for each can be made.
The user can use the delivered increments while the new ones are being developed. Intended to combine some of the advantages of prototyping but with a more manageable process and better system structure
Figure 4 Incremental prototyping
Figure 5. Extreme prototyping
Extreme Prototyping is a development process which is used for developing web applications. This prototyping breaks down the web application development into three phases; each phase depends upon the previous one.
First phase builds a static prototype that mainly consists of only HTML pages so as to provide the interface to the web application.
Second phase, the buttons or the menus, all the links, the screens are programmed and fully functional using a simulated services layer.
Third phases, all the services of the project are implemented. This process is known as extreme prototyping because it provides attention to the second phase of the process, in which a fully functioning user interface is developed, with very little regard to the services other than their contract.
User interface prototyping:
As it is known that it is impossible to pre determine the look and feel of the user interface so prototyping is needed.
So when prototyping is done for user interfaces the overall system cost increases.
User interface generators may be used to â€˜drawâ€™ the interface and simulate its functionality with components associated with interface entities
Website editor provides prototype for web interfaces.
Small talk, java, prolog, lisp
Small talk is object oriented based used in interactive systems.
Java is object oriented based used in interactive systems.
Prolog is logic based used in symbolic processing
Lisp is list based used in symbolic processing
Prototyping with reuse:
1. Application level development:
In this type of development the entire application systems are combined with the prototype so as to share functionality.
For example, if text preparation is required, a standard word processor can be used
2. Component level development
In this type of development the Individual components are combined together into a standard framework to implement the system Frame work can be a scripting language or an integration framework such as CORBA
Fig6. Reusable component composition
Methods for software prototyping:
Dynamic system development method (DSDM): It is a framework model which delivers business solutions which makes the prototype as a core technique or the heart of the software system and it is ISO 9001 certified. In this method the definition of the prototype is most understood. According to this method, the prototype can be simply a diagram; it can be business process or even a system under production. DSDM prototypes are incremental in nature and they evolve from simple forms into more complex ones.
DSDM prototypes can be the evolutionary or the throwaway prototype. The first one can be evolved horizontally or vertically. Evolutionary prototypes can eventually evolve into final systems.
DSDM provides four types of prototypes:
Business prototypes: in this prototype business process being automated is designed and demonstrated.
Usability prototypes: in this prototype the user interface design usability, accessibility, look and feel is defined, refined and demonstrated.
Performance and capacity prototypes: in this prototype, how the systems will perform under peak loads is defined and demonstrated and predicted, as well as to demonstrate and evaluate other non-functional aspects of the system. It includes transaction rates, data storage volume, response time.
Capability/technique prototypes: design is developed, demonstrated and evaluated.
DSDM lifecycle of prototype is:
1. Prototype identification
2. Plan agreement
3. Produce the prototype
4. Validate the prototype
2. Operational prototyping:
This prototyping was given by Alan Davis which integrated the throwaway and evolutionary prototyping for the system development. It is a method of presenting the rough and quick and conventional development in a good manner. Designers develop only well-understood features in building the evolutionary baseline, while using throwaway prototyping to experiment with the poorly understood features.
It contains the following steps:
First an evolutionary prototype is build and it is made into a baseline using development strategies so that requirements are well understood.
A trained prototyper takes the copies of baseline to customers.
The prototyper analyzes every user using the system.
A new log is made when user encounters problem or need something new.
After the user feedback, a throwaway prototype is created by the prototype on the top of the baseline system.
The user now uses the new system and evaluates. If the new changes aren’t effective, the prototyper removes them.
If the changes are accepted by user then prototyper logs it and forwards to developers
The development team, with the change requests in hand from all the sites, and then produce a new evolutionary prototype using conventional methods.
3. Evolutionary Systems Development:
Evolutionary Systems Development is a collection of methods that use evolutionary Prototyping.
Systems-craft is a prototype which should be modified and adapted to fit specific environment in which it was implemented. The basis of Systems-craft, not unlike Evolutionary Prototyping, is to create a working system from the initial requirements and build upon it in a series of revisions. Systems-craft places heavy emphasis on traditional analysis being used throughout the development of the system.
4. Evolutionary Rapid Development (ERD):
It was given Software Productivity Consortium agent of the Defense Advanced Research Projects Agency (DARPA).
The ERD focuses on the reusability of the components to build the software system which actually depend on these components. It is like a software template. Continuous evolution of system capabilities in rapid response to changing user needs and technology is highlighted by the evolvable architecture, representing a class of solutions. The process focuses on the use of small artisan-based teams integrating software and systems engineering disciplines working multiple, often parallel short-duration time-boxes with frequent customer interaction.
Advantages of prototyping
The time is reduced and cost is also reduced to rebuild the software product.
User involvement in the development of software is Improved and increased
May provide the proof of concept necessary to attract funding
The user can estimate the final system because the prototype is early visible
It provides the active participation among users and producer
It provides a higher output for user
It is Cost effective
This prototype increases the development speed of software system.
It is useful to find the potential risks which are related to the final system.
Various aspects can be tested and quicker feedback can be got from the user
The client easily gets the quality product.
The developer can interact with the user during the development cycle of prototype
Disadvantages of prototyping
The Developer can misunderstand the objectives of user.
User can get confused in prototype and the final software product.
There can be Insufficient analysis
Developer attachment to prototype
The development time of prototype is
The extra expenses are to be made for implementing prototyping
The user can provide the full support till then the program cannot be developed to a high standard.
Due to the changes the Structure of system can be damaged
It is not suitable for large applications
If it goes for longer time periods then the consumers loses the interest in the project and can cancel the project development agreement because no further need in market.
Areas of prototyping where it can be used very effectively:
The prototyping cannot be used all the time so there are some systems where the prototyping must be used and it will be more beneficial. The systems are those which have large interaction with the users.
The prototyping is very much effective and useful in the analysis and the development of online systems, like transaction processing; where the screen dialogues are interact with the user need. The more benefit can be obtained if the interaction between the computer system and the user is greater so we can build faster systems and the user can easily interact with it.
The Systems which require little user interaction, like the batch processors or the systems which automatically do calculations, they gain less benefit from prototyping. Sometimes, the coding needed to perform the system functions may be too intensive and the potential gains that prototyping could provide are too small.
For designing the good human- computer interfaces, prototyping is very useful. The rapid prototyping is used as a tool for iterative user requirements engineering and human-computer interface design.Order Now