Prototype software is often referred to as
alpha grade, meaning it is the first version to run. Often only a few functions are implemented, the primary focus of the alpha is to have a functional base code on to which features may be added. Once alpha grade software has most of the required features integrated into it, it becomes
beta software for testing of the entire software and to adjust the program to respond correctly during situations unforeseen during development. 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. There is now a new generation of tools called
Application Simulation Software which help quickly simulate application before their development.
Extreme programming uses
iterative design to gradually add one feature at a time to the initial prototype.
Other programming/computing concepts In many
programming languages, a
function prototype is the
declaration of a
subroutine or function (and should not be confused with software prototyping). This term is rather
C/
C++-specific; other terms for this notion are
signature,
type and
interface. In
prototype-based programming (a form of
object-oriented programming), new objects are produced by cloning existing objects, which are called prototypes. The term may also refer to the
Prototype Javascript Framework. Additionally, the term may refer to the
prototype design pattern. Continuous learning approaches within organizations or businesses may also use the concept of business or process prototypes through software models. The concept of prototypicality is used to describe how much a website deviates from the expected norm, and leads to a lowering of user preference for that site's design.
Data prototyping A
data prototype is a form of
functional or
working prototype. The justification for its creation is usually a
data migration,
data integration or application implementation project and the raw materials used as input are an instance of all the relevant data which exists at the start of the project. The objectives of
data prototyping are to produce: • A set of data cleansing and transformation rules which have been
seen to produce data which is all fit for purpose. • A dataset which is the result of those rules being applied to an instance of the relevant raw (source) data. To achieve this, a data architect uses a graphical interface to interactively develop and execute transformation and cleansing rules using raw data. The resultant data is then evaluated and the rules refined. Beyond the obvious visual checking of the data
on-screen by the data architect, the usual evaluation and validation approaches are to use
data profiling software and then to insert the resultant data into a test version of the target application and trial its use.
Prototyping for human-computer interaction When developing software or digital tools that humans interact with, a prototype is an artifact that is used to ask and answer a design question. Prototypes provide the means for examining design problems and evaluating solutions.
Human-computer interaction (HCI) practitioners can employ several different types of prototypes: •
"Wizard of Oz" prototype: named after the
Wizard of Oz in the film
The Wizard of Oz. This is a prototyping method with which the computer-side of the interaction is faked by an offsite or hidden human. This prototyping technique is particularly useful for demonstrating functionality that is difficult or lengthy to engineer, such as applications like
voice user interface. •
Role prototype: this prototype may not be engineered or look and feel like a finished product, but the purpose of this type of prototype is to investigate and evaluation a user need, or what the prototype could do for the user. They can present features and functionality that the user might benefit from, to demonstrate what role an artifact like the prototype might fulfill for the user. Recently, paper prototyping has fallen out of favor within certain design circles, particularly because the low-fidelity nature of this method and the lack of effectiveness when testing with users. == Architecture ==