Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Prototype
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== Computer programming and computer science == {{Main|Software prototyping|Software release cycle}} Prototype software is often referred to as [[alpha test|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 test|beta software]] for testing of the entire software and to adjust the program to respond correctly during situations unforeseen during development.<ref>{{Cite web |title=Alpha Version Definition |url=https://www.pcmag.com/encyclopedia_term/0,1233,t=alpha+version&i=37675,00.asp |work=PC Magazine |access-date=2012-05-03}}{{Dead link|date=August 2024 |bot=InternetArchiveBot |fix-attempted=yes}}</ref> 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.<ref>{{Cite web|url=https://www.baseblock.com/PRODUCTS/applicationsimulationsoftware.htm|title=Baseblock Software LLC, Software for the Motor Control Industry.|website=baseblock.com|access-date=2019-12-15}}</ref> [[Extreme programming]] uses [[iterative design]] to gradually add one feature at a time to the initial prototype.<ref>{{Cite news|url=https://hbr.org/1993/07/building-a-learning-organization|title=Building a Learning Organization|last=Garvin|first=David A.|date=1993-07-01|work=Harvard Business Review|access-date=2019-12-15|issue=July–August 1993|issn=0017-8012}}</ref> === Other programming/computing concepts === In many [[programming language]]s, a ''[[function prototype]]'' is the [[declaration (computer science)|declaration]] of a [[subroutine]] or function (and should not be confused with software prototyping). This term is rather [[C (programming language)|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.<ref>{{Cite web |title=5.5 Function Prototypes |url= http://h30097.www3.hp.com/docs/base_doc/DOCUMENTATION/V40F_HTML/AQTLTBTE/DOCU_055.HTM |publisher=HP |access-date=2012-05-03}}</ref> The term may also refer to the [[Prototype Javascript Framework]]. Additionally, the term may refer to the [[Prototype pattern|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.<ref>{{Cite journal|last1=Tuch|first1=Alexandre N.|last2=Presslaber|first2=Eva E.|last3=Stöcklin|first3=Markus|last4=Opwis|first4=Klaus|last5=Bargas-Avila|first5=Javier A.|date=2012-11-01|title=The role of visual complexity and prototypicality regarding first impression of websites: Working towards understanding aesthetic judgments|journal=International Journal of Human-Computer Studies|volume=70|issue=11|pages=794–811|doi=10.1016/j.ijhcs.2012.06.003|s2cid=9051274 |issn=1071-5819}}</ref> === Data prototyping === A ''data prototype'' is a form of ''functional ''or ''working'' prototype.<ref>{{Cite book|url=https://books.google.com/books?id=8l5-DwAAQBAJ|title=Introduction to Engineering: Engineering Fundamentals and Concepts: E-Book|date=2018-12-11|publisher=Türker Canbazoğlu|language=en}}</ref> 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<ref>{{Cite book|last=Abedjan|first=Ziawasch|title=Business Intelligence and Big Data |chapter=An Introduction to Data Profiling |date=2018|editor-last=Zimányi|editor-first=Esteban|series=Lecture Notes in Business Information Processing|volume=324|language=en|publisher=Springer International Publishing|pages=1–20|doi=10.1007/978-3-319-96655-7_1|isbn=978-3-319-96655-7}}</ref> 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.<ref name="Houde 367–381">{{Citation|last1=Houde|first1=Stephanie|title=Chapter 16 – What do Prototypes Prototype?|date=1997-01-01|url=https://www.sciencedirect.com/science/article/pii/B9780444818621500820|work=Handbook of Human-Computer Interaction (Second Edition)|pages=367–381|editor-last=Helander|editor-first=Marting G.|place=Amsterdam|publisher=North-Holland|language=en|doi=10.1016/b978-044481862-1.50082-0|isbn=978-0-444-81862-1|access-date=2021-12-13|last2=Hill|first2=Charles|s2cid=18520479 |editor2-last=Landauer|editor2-first=Thomas K.|editor3-last=Prabhu|editor3-first=Prasad V.|citeseerx=10.1.1.224.2119}}</ref> [[Human-computer interaction]] (HCI) practitioners can employ several different types of prototypes: * '''"Wizard of Oz" prototype:''' named after the [[Wizard of Oz (character)|Wizard of Oz]] in the film [[The Wizard of Oz (1939 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.<ref>{{Cite web|title=Wizard of Oz Prototypes|url=https://www.interaction-design.org/literature/topics/wizard-of-oz-prototypes|access-date=2021-12-13|publisher=The Interaction Design Foundation|language=en}}</ref> 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.<ref name="Houde 367–381"/> A famous example of this kind of prototype would be the block of wood carried by [[Jeff Hawkins]], when developing the [[PalmPilot|Palm Pilot]]. * '''[[Paper prototyping|paper prototype]]:''' this prototype may use cut paper, cardboard, or other inexpensive materials to demonstrate an interface. The purpose of this prototype is to test with users, without having to use a digital tool or develop a program to test functionality.<ref>{{Cite journal|last=Rettig|first=Marc|date=April 1994|title=Prototyping for tiny fingers|journal=Communications of the ACM|language=en|volume=37|issue=4|pages=21–27|doi=10.1145/175276.175288|s2cid=9934034 |issn=0001-0782|doi-access=free}}</ref> 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.<ref>{{Cite web|last=Knapp|first=Jake|date=2016-01-06|title=Paper prototyping is a waste of time|url=https://library.gv.com/paper-prototyping-is-a-waste-of-time-353076395187|access-date=2021-12-13|website=Medium|language=en}}</ref>
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)