The prototyping software development methodology




















The Disadvantages of Prototyping Alas, no project development model is perfect expect for, perhaps, oxygen plus hydrogen equals water. Insufficient analysis: A focus on a limited prototype can distract developers from properly analyzing the complete project.

The potential end result: A potential overlooking of better solutions, incomplete specifications or the conversion of limited prototypes into poorly engineered and developed final projects that are hard to maintain. User confusion: The worst-case scenario of any prototype is customers mistaking it for the finished project. Customers seeing a rough prototype may not understand it merely needs to be finished or polished. Also, customers can wrongly perceive the prototype to accurately model the performance of the final system.

Customers may also grow fond of prototype features that are not part of the final system. Developer misunderstanding of user objectives: For every project to be successful, developers and customers must be on the same page and share the same project objectives. If customers require all proposed features of a prototype be included in the final product, this can lead to team and mission conflicts.

Excessive Development Time: Remember, prototypes are by nature designed to be developed quickly. If a developer spends too much time developing a complex prototype, the project can run into roadblocks especially if there are disagreements over prototype details and run over both time and cost budgets.

For this purpose, software is a mere medium. That is how software prototypes enter the picture, and this guide thereby gives you the insight on what you need to look out for when choosing the right one s — whether you are a technopreneur, designer or developer.

From science to engineering, prototypes are a popular means of demonstrating what an idea, theory or object would look and feel like, not to forget how it will possibly function too.

In short, prototypes are everywhere in the world where new items are developed for learning better, or for enhancing the quality of life. Software prototypes hardly differ; they provide the knowledge and experience needed to understand how a certain application is supposed to look, feel and function, while offering the scope for teams to think how it can all be improved in due course of development.

Gives you, your team and your client a feel of your software during the early stages of development. As mentioned above, software prototypes provide a means to experiencing a working product during the early stages of software or mobile app development.

While working versions of a product are necessary when development is taking place in an Agile manner, it also opens the possibility of getting feedback during the early stages — from the core team as well as the client. This helps the team to alleviate any glitches, most of which may not have been prominent until the entire software was complete. Encourages consistency if more features are added, or any changes are made. With a software prototype, you already have the foundational architecture constructed for reference.

Should the software need to be scaled, additional features can then be added, modified or removed in reference to this basic architecture — instead of doing it all from scratch every single time.

With software development having so many technicalities involved, a wealth of prototyping options are available out there. But how do you know which one is ideal for your project? To answer this question, we first need to be aware of the various ways that software can be prototyped.

In an attempt to overcome the shortcomings of the waterfall model many new software development approaches such as iterative enhancement Basili and Turner, , rapid prototyping Gomaa, evolutionary prototyping and incremental development Floyd, have been suggested.

Software development approaches incorporating prototyping have gained respectability as they have proved to be able to dynamically respond to changes in user requirements Floyd, reduce the amount of rework required and help control the risk of incomplete requirements Floyd, Researchers have also noted that prototyping enables us to partition the development process into smaller, easier to handle steps Kaushaar and Shirland, , is cost-effective Boehm et al.

There is much confusion in the prototyping literature in the use of the prototyping terminology. Researchers have described various process models and classificatory schemes for prototypes and prototyping over the past two decades. The exact meaning of, and the differences between terms such as iterative, rapid, evolutionary, throwaway, interface, incremental, and mock up prototyping tends to be blurred.

In this review we attempt to understand and place the terms in context. Prototypes are used in many disciplines, for example engineers fabricate prototypes of products to explore and control uncertainty in the design of a product, or in order to explore difficulties in the production process before the eventual large scale manufacture of the product.

The software industry has adopted this industrial technique to construct prototypes as models, simulations, or as partial implementations of systems and to use them for a variety of different purposes, e. The prototyping process can encourage the efficient development of applications by breaking a complex, and often ill-defined problem into several comprehensive yet smaller and simpler parts Kaushaar and Shirland, A prototyping development approach can help build, and subsequently refine, a product to meet end-user or market expectations.

Gomaa H. In this review we consider what prototypes are, what the prototyping process is, and how software development approaches adopt prototyping for exploration, experiment or evolution.

We provide a classification of the software development approaches that include prototyping of some kind see Figure 1 below. Four types of prototypes: presentation prototypes, prototype proper, breadboard prototypes and pilot system prototypes are identified according to the different tasks they accomplish.

The presentation prototype is one which is presented to prospective clients by a software manufacturer in order to convince them of the feasibility of a new project. As such it is their first impression of the future system.

The prototype proper is constructed and tested, to clarify user needs, while the actual information system is under construction. The breadboard prototype is used mainly by development staff to ascertain the feasibility of certain technical aspects of the system.

A pilot system prototype is a type of prototype which constitutes the core of an application system. Budde et al. Prototypes can be developed technically in different ways. Horizontal prototyping involves the building of specific layers such as the user-interface alone.

Horizontal prototyping is also called mock-up prototyping. Vertical prototyping involves the building of selected parts of the target system through all layers. Vertical or functional prototyping is used when particular aspects of functionality need to be demonstrated Budde et al. Nauman and Jenkins, , Boar, , Stephens and Bates, In this section, a general outline of the characteristics of the prototyping process is discussed and the major features identified by researchers are considered.

Floyd describes the prototyping process as consisting of functional selection, construction, evaluation and further use. Those functions that are to be prototyped are selected and a prototype is constructed. This prototype is evaluated and the prototype is further used for outlining specification or as a part of the new system. There are four types of model available: A Rapid Throwaway Prototyping — This technique offers a useful method of exploring ideas and getting customer feedback for each of them.

In this method, a developed prototype need not necessarily be a part of the ultimately accepted prototype. Customer feedback helps in preventing unnecessary design faults and hence, the final prototype developed is of better quality. B Evolutionary Prototyping — In this method, the prototype developed initially is incrementally refined on the basis of customer feedback till it finally gets accepted. In comparison to Rapid Throwaway Prototyping, it offers a better approach which saves time as well as effort.

This is because developing a prototype from scratch for every iteration of the process can sometimes be very frustrating for the developers. C Incremental Prototyping — In this type of incremental Prototyping, the final expected product is broken into different small pieces of prototypes and being developed individually.

In the end, when all individual pieces are properly developed, then the different prototypes are collectively merged into a single final product in their predefined order. The time interval between the project begin and final delivery is substantially reduced because all parts of the system are prototyped and tested simultaneously. Of course, there might be the possibility that the pieces just not fit together due to some lack ness in the development phase — this can only be fixed by careful and complete plotting of the entire system before prototyping starts.



0コメント

  • 1000 / 1000