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. 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