CINXE.COM
Software prototyping - Wikipedia
<!DOCTYPE html> <html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-sticky-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-enabled skin-theme-clientpref-day vector-toc-available" lang="en" dir="ltr"> <head> <meta charset="UTF-8"> <title>Software prototyping - Wikipedia</title> <script>(function(){var className="client-js vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-sticky-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-enabled skin-theme-clientpref-day vector-toc-available";var cookie=document.cookie.match(/(?:^|; )enwikimwclientpreferences=([^;]+)/);if(cookie){cookie[1].split('%2C').forEach(function(pref){className=className.replace(new RegExp('(^| )'+pref.replace(/-clientpref-\w+$|[^\w-]+/g,'')+'-clientpref-\\w+( |$)'),'$1'+pref+'$2');});}document.documentElement.className=className;}());RLCONF={"wgBreakFrames":false,"wgSeparatorTransformTable":["",""],"wgDigitTransformTable":["",""],"wgDefaultDateFormat":"dmy", "wgMonthNames":["","January","February","March","April","May","June","July","August","September","October","November","December"],"wgRequestId":"e40247f7-dc1a-4c6f-ab5b-00ca291c156d","wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"Software_prototyping","wgTitle":"Software prototyping","wgCurRevisionId":1241070369,"wgRevisionId":1241070369,"wgArticleId":1090852,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":["Webarchive template archiveis links","Articles with short description","Short description matches Wikidata","All articles with unsourced statements","Articles with unsourced statements from March 2010","Articles with unsourced statements from January 2015","Software development"],"wgPageViewLanguage":"en","wgPageContentLanguage":"en","wgPageContentModel":"wikitext","wgRelevantPageName":"Software_prototyping","wgRelevantArticleId":1090852,"wgIsProbablyEditable":true, "wgRelevantPageIsProbablyEditable":true,"wgRestrictionEdit":[],"wgRestrictionMove":[],"wgNoticeProject":"wikipedia","wgCiteReferencePreviewsActive":false,"wgFlaggedRevsParams":{"tags":{"status":{"levels":1}}},"wgMediaViewerOnClick":true,"wgMediaViewerEnabledByDefault":true,"wgPopupsFlags":0,"wgVisualEditor":{"pageLanguageCode":"en","pageLanguageDir":"ltr","pageVariantFallbacks":"en"},"wgMFDisplayWikibaseDescriptions":{"search":true,"watchlist":true,"tagline":false,"nearby":true},"wgWMESchemaEditAttemptStepOversample":false,"wgWMEPageLength":40000,"wgRelatedArticlesCompat":[],"wgCentralAuthMobileDomain":false,"wgEditSubmitButtonLabelPublish":true,"wgULSPosition":"interlanguage","wgULSisCompactLinksEnabled":false,"wgVector2022LanguageInHeader":true,"wgULSisLanguageSelectorEmpty":false,"wgWikibaseItemId":"Q576460","wgCheckUserClientHintsHeadersJsApi":["brands","architecture","bitness","fullVersionList","mobile","model","platform","platformVersion"],"GEHomepageSuggestedEditsEnableTopics": true,"wgGETopicsMatchModeEnabled":false,"wgGEStructuredTaskRejectionReasonTextInputEnabled":false,"wgGELevelingUpEnabledForUser":false};RLSTATE={"ext.globalCssJs.user.styles":"ready","site.styles":"ready","user.styles":"ready","ext.globalCssJs.user":"ready","user":"ready","user.options":"loading","ext.cite.styles":"ready","skins.vector.search.codex.styles":"ready","skins.vector.styles":"ready","skins.vector.icons":"ready","jquery.makeCollapsible.styles":"ready","ext.wikimediamessages.styles":"ready","ext.visualEditor.desktopArticleTarget.noscript":"ready","ext.uls.interlanguage":"ready","wikibase.client.init":"ready","ext.wikimediaBadges":"ready"};RLPAGEMODULES=["ext.cite.ux-enhancements","site","mediawiki.page.ready","jquery.makeCollapsible","mediawiki.toc","skins.vector.js","ext.centralNotice.geoIP","ext.centralNotice.startUp","ext.gadget.ReferenceTooltips","ext.gadget.switcher","ext.urlShortener.toolbar","ext.centralauth.centralautologin","mmv.bootstrap","ext.popups", "ext.visualEditor.desktopArticleTarget.init","ext.visualEditor.targetLoader","ext.echo.centralauth","ext.eventLogging","ext.wikimediaEvents","ext.navigationTiming","ext.uls.interface","ext.cx.eventlogging.campaigns","ext.cx.uls.quick.actions","wikibase.client.vector-2022","ext.checkUser.clientHints","ext.growthExperiments.SuggestedEditSession","wikibase.sidebar.tracking"];</script> <script>(RLQ=window.RLQ||[]).push(function(){mw.loader.impl(function(){return["user.options@12s5i",function($,jQuery,require,module){mw.user.tokens.set({"patrolToken":"+\\","watchToken":"+\\","csrfToken":"+\\"}); }];});});</script> <link rel="stylesheet" href="/w/load.php?lang=en&modules=ext.cite.styles%7Cext.uls.interlanguage%7Cext.visualEditor.desktopArticleTarget.noscript%7Cext.wikimediaBadges%7Cext.wikimediamessages.styles%7Cjquery.makeCollapsible.styles%7Cskins.vector.icons%2Cstyles%7Cskins.vector.search.codex.styles%7Cwikibase.client.init&only=styles&skin=vector-2022"> <script async="" src="/w/load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector-2022"></script> <meta name="ResourceLoaderDynamicStyles" content=""> <link rel="stylesheet" href="/w/load.php?lang=en&modules=site.styles&only=styles&skin=vector-2022"> <meta name="generator" content="MediaWiki 1.44.0-wmf.4"> <meta name="referrer" content="origin"> <meta name="referrer" content="origin-when-cross-origin"> <meta name="robots" content="max-image-preview:standard"> <meta name="format-detection" content="telephone=no"> <meta name="viewport" content="width=1120"> <meta property="og:title" content="Software prototyping - Wikipedia"> <meta property="og:type" content="website"> <link rel="preconnect" href="//upload.wikimedia.org"> <link rel="alternate" media="only screen and (max-width: 640px)" href="//en.m.wikipedia.org/wiki/Software_prototyping"> <link rel="alternate" type="application/x-wiki" title="Edit this page" href="/w/index.php?title=Software_prototyping&action=edit"> <link rel="apple-touch-icon" href="/static/apple-touch/wikipedia.png"> <link rel="icon" href="/static/favicon/wikipedia.ico"> <link rel="search" type="application/opensearchdescription+xml" href="/w/rest.php/v1/search" title="Wikipedia (en)"> <link rel="EditURI" type="application/rsd+xml" href="//en.wikipedia.org/w/api.php?action=rsd"> <link rel="canonical" href="https://en.wikipedia.org/wiki/Software_prototyping"> <link rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en"> <link rel="alternate" type="application/atom+xml" title="Wikipedia Atom feed" href="/w/index.php?title=Special:RecentChanges&feed=atom"> <link rel="dns-prefetch" href="//meta.wikimedia.org" /> <link rel="dns-prefetch" href="//login.wikimedia.org"> </head> <body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject mw-editable page-Software_prototyping rootpage-Software_prototyping skin-vector-2022 action-view"><a class="mw-jump-link" href="#bodyContent">Jump to content</a> <div class="vector-header-container"> <header class="vector-header mw-header"> <div class="vector-header-start"> <nav class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-dropdown" class="vector-dropdown vector-main-menu-dropdown vector-button-flush-left vector-button-flush-right" > <input type="checkbox" id="vector-main-menu-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-main-menu-dropdown" class="vector-dropdown-checkbox " aria-label="Main menu" > <label id="vector-main-menu-dropdown-label" for="vector-main-menu-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-menu mw-ui-icon-wikimedia-menu"></span> <span class="vector-dropdown-label-text">Main menu</span> </label> <div class="vector-dropdown-content"> <div id="vector-main-menu-unpinned-container" class="vector-unpinned-container"> <div id="vector-main-menu" class="vector-main-menu vector-pinnable-element"> <div class="vector-pinnable-header vector-main-menu-pinnable-header vector-pinnable-header-unpinned" data-feature-name="main-menu-pinned" data-pinnable-element-id="vector-main-menu" data-pinned-container-id="vector-main-menu-pinned-container" data-unpinned-container-id="vector-main-menu-unpinned-container" > <div class="vector-pinnable-header-label">Main menu</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-main-menu.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-main-menu.unpin">hide</button> </div> <div id="p-navigation" class="vector-menu mw-portlet mw-portlet-navigation" > <div class="vector-menu-heading"> Navigation </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-mainpage-description" class="mw-list-item"><a href="/wiki/Main_Page" title="Visit the main page [z]" accesskey="z"><span>Main page</span></a></li><li id="n-contents" class="mw-list-item"><a href="/wiki/Wikipedia:Contents" title="Guides to browsing Wikipedia"><span>Contents</span></a></li><li id="n-currentevents" class="mw-list-item"><a href="/wiki/Portal:Current_events" title="Articles related to current events"><span>Current events</span></a></li><li id="n-randompage" class="mw-list-item"><a href="/wiki/Special:Random" title="Visit a randomly selected article [x]" accesskey="x"><span>Random article</span></a></li><li id="n-aboutsite" class="mw-list-item"><a href="/wiki/Wikipedia:About" title="Learn about Wikipedia and how it works"><span>About Wikipedia</span></a></li><li id="n-contactpage" class="mw-list-item"><a href="//en.wikipedia.org/wiki/Wikipedia:Contact_us" title="How to contact Wikipedia"><span>Contact us</span></a></li> </ul> </div> </div> <div id="p-interaction" class="vector-menu mw-portlet mw-portlet-interaction" > <div class="vector-menu-heading"> Contribute </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-help" class="mw-list-item"><a href="/wiki/Help:Contents" title="Guidance on how to use and edit Wikipedia"><span>Help</span></a></li><li id="n-introduction" class="mw-list-item"><a href="/wiki/Help:Introduction" title="Learn how to edit Wikipedia"><span>Learn to edit</span></a></li><li id="n-portal" class="mw-list-item"><a href="/wiki/Wikipedia:Community_portal" title="The hub for editors"><span>Community portal</span></a></li><li id="n-recentchanges" class="mw-list-item"><a href="/wiki/Special:RecentChanges" title="A list of recent changes to Wikipedia [r]" accesskey="r"><span>Recent changes</span></a></li><li id="n-upload" class="mw-list-item"><a href="/wiki/Wikipedia:File_upload_wizard" title="Add images or other media for use on Wikipedia"><span>Upload file</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> <a href="/wiki/Main_Page" class="mw-logo"> <img class="mw-logo-icon" src="/static/images/icons/wikipedia.png" alt="" aria-hidden="true" height="50" width="50"> <span class="mw-logo-container skin-invert"> <img class="mw-logo-wordmark" alt="Wikipedia" src="/static/images/mobile/copyright/wikipedia-wordmark-en.svg" style="width: 7.5em; height: 1.125em;"> <img class="mw-logo-tagline" alt="The Free Encyclopedia" src="/static/images/mobile/copyright/wikipedia-tagline-en.svg" width="117" height="13" style="width: 7.3125em; height: 0.8125em;"> </span> </a> </div> <div class="vector-header-end"> <div id="p-search" role="search" class="vector-search-box-vue vector-search-box-collapses vector-search-box-show-thumbnail vector-search-box-auto-expand-width vector-search-box"> <a href="/wiki/Special:Search" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only search-toggle" title="Search Wikipedia [f]" accesskey="f"><span class="vector-icon mw-ui-icon-search mw-ui-icon-wikimedia-search"></span> <span>Search</span> </a> <div class="vector-typeahead-search-container"> <div class="cdx-typeahead-search cdx-typeahead-search--show-thumbnail cdx-typeahead-search--auto-expand-width"> <form action="/w/index.php" id="searchform" class="cdx-search-input cdx-search-input--has-end-button"> <div id="simpleSearch" class="cdx-search-input__input-wrapper" data-search-loc="header-moved"> <div class="cdx-text-input cdx-text-input--has-start-icon"> <input class="cdx-text-input__input" type="search" name="search" placeholder="Search Wikipedia" aria-label="Search Wikipedia" autocapitalize="sentences" title="Search Wikipedia [f]" accesskey="f" id="searchInput" > <span class="cdx-text-input__icon cdx-text-input__start-icon"></span> </div> <input type="hidden" name="title" value="Special:Search"> </div> <button class="cdx-button cdx-search-input__end-button">Search</button> </form> </div> </div> </div> <nav class="vector-user-links vector-user-links-wide" aria-label="Personal tools"> <div class="vector-user-links-main"> <div id="p-vector-user-menu-preferences" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-userpage" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <nav class="vector-appearance-landmark" aria-label="Appearance"> <div id="vector-appearance-dropdown" class="vector-dropdown " title="Change the appearance of the page's font size, width, and color" > <input type="checkbox" id="vector-appearance-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-appearance-dropdown" class="vector-dropdown-checkbox " aria-label="Appearance" > <label id="vector-appearance-dropdown-label" for="vector-appearance-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-appearance mw-ui-icon-wikimedia-appearance"></span> <span class="vector-dropdown-label-text">Appearance</span> </label> <div class="vector-dropdown-content"> <div id="vector-appearance-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <div id="p-vector-user-menu-notifications" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-overflow" class="vector-menu mw-portlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="https://donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&utm_medium=sidebar&utm_campaign=C13_en.wikipedia.org&uselang=en" class=""><span>Donate</span></a> </li> <li id="pt-createaccount-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Special:CreateAccount&returnto=Software+prototyping" title="You are encouraged to create an account and log in; however, it is not mandatory" class=""><span>Create account</span></a> </li> <li id="pt-login-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Special:UserLogin&returnto=Software+prototyping" title="You're encouraged to log in; however, it's not mandatory. [o]" accesskey="o" class=""><span>Log in</span></a> </li> </ul> </div> </div> </div> <div id="vector-user-links-dropdown" class="vector-dropdown vector-user-menu vector-button-flush-right vector-user-menu-logged-out" title="Log in and more options" > <input type="checkbox" id="vector-user-links-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-user-links-dropdown" class="vector-dropdown-checkbox " aria-label="Personal tools" > <label id="vector-user-links-dropdown-label" for="vector-user-links-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-ellipsis mw-ui-icon-wikimedia-ellipsis"></span> <span class="vector-dropdown-label-text">Personal tools</span> </label> <div class="vector-dropdown-content"> <div id="p-personal" class="vector-menu mw-portlet mw-portlet-personal user-links-collapsible-item" title="User menu" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport" class="user-links-collapsible-item mw-list-item"><a href="https://donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&utm_medium=sidebar&utm_campaign=C13_en.wikipedia.org&uselang=en"><span>Donate</span></a></li><li id="pt-createaccount" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Special:CreateAccount&returnto=Software+prototyping" title="You are encouraged to create an account and log in; however, it is not mandatory"><span class="vector-icon mw-ui-icon-userAdd mw-ui-icon-wikimedia-userAdd"></span> <span>Create account</span></a></li><li id="pt-login" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Special:UserLogin&returnto=Software+prototyping" title="You're encouraged to log in; however, it's not mandatory. [o]" accesskey="o"><span class="vector-icon mw-ui-icon-logIn mw-ui-icon-wikimedia-logIn"></span> <span>Log in</span></a></li> </ul> </div> </div> <div id="p-user-menu-anon-editor" class="vector-menu mw-portlet mw-portlet-user-menu-anon-editor" > <div class="vector-menu-heading"> Pages for logged out editors <a href="/wiki/Help:Introduction" aria-label="Learn more about editing"><span>learn more</span></a> </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-anoncontribs" class="mw-list-item"><a href="/wiki/Special:MyContributions" title="A list of edits made from this IP address [y]" accesskey="y"><span>Contributions</span></a></li><li id="pt-anontalk" class="mw-list-item"><a href="/wiki/Special:MyTalk" title="Discussion about edits from this IP address [n]" accesskey="n"><span>Talk</span></a></li> </ul> </div> </div> </div> </div> </nav> </div> </header> </div> <div class="mw-page-container"> <div class="mw-page-container-inner"> <div class="vector-sitenotice-container"> <div id="siteNotice"><!-- CentralNotice --></div> </div> <div class="vector-column-start"> <div class="vector-main-menu-container"> <div id="mw-navigation"> <nav id="mw-panel" class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-pinned-container" class="vector-pinned-container"> </div> </nav> </div> </div> <div class="vector-sticky-pinned-container"> <nav id="mw-panel-toc" aria-label="Contents" data-event-name="ui.sidebar-toc" class="mw-table-of-contents-container vector-toc-landmark"> <div id="vector-toc-pinned-container" class="vector-pinned-container"> <div id="vector-toc" class="vector-toc vector-pinnable-element"> <div class="vector-pinnable-header vector-toc-pinnable-header vector-pinnable-header-pinned" data-feature-name="toc-pinned" data-pinnable-element-id="vector-toc" > <h2 class="vector-pinnable-header-label">Contents</h2> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-toc.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-toc.unpin">hide</button> </div> <ul class="vector-toc-contents" id="mw-panel-toc-list"> <li id="toc-mw-content-text" class="vector-toc-list-item vector-toc-level-1"> <a href="#" class="vector-toc-link"> <div class="vector-toc-text">(Top)</div> </a> </li> <li id="toc-Overview" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Overview"> <div class="vector-toc-text"> <span class="vector-toc-numb">1</span> <span>Overview</span> </div> </a> <ul id="toc-Overview-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Outline" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Outline"> <div class="vector-toc-text"> <span class="vector-toc-numb">2</span> <span>Outline</span> </div> </a> <ul id="toc-Outline-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Dimensions" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Dimensions"> <div class="vector-toc-text"> <span class="vector-toc-numb">3</span> <span>Dimensions</span> </div> </a> <button aria-controls="toc-Dimensions-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle Dimensions subsection</span> </button> <ul id="toc-Dimensions-sublist" class="vector-toc-list"> <li id="toc-Horizontal_prototype" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Horizontal_prototype"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.1</span> <span>Horizontal prototype</span> </div> </a> <ul id="toc-Horizontal_prototype-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Vertical_prototype" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Vertical_prototype"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.2</span> <span>Vertical prototype</span> </div> </a> <ul id="toc-Vertical_prototype-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Types" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Types"> <div class="vector-toc-text"> <span class="vector-toc-numb">4</span> <span>Types</span> </div> </a> <button aria-controls="toc-Types-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle Types subsection</span> </button> <ul id="toc-Types-sublist" class="vector-toc-list"> <li id="toc-Throwaway_prototyping" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Throwaway_prototyping"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.1</span> <span>Throwaway prototyping</span> </div> </a> <ul id="toc-Throwaway_prototyping-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Evolutionary_prototyping" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Evolutionary_prototyping"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.2</span> <span>Evolutionary prototyping</span> </div> </a> <ul id="toc-Evolutionary_prototyping-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Incremental_prototyping" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Incremental_prototyping"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.3</span> <span>Incremental prototyping</span> </div> </a> <ul id="toc-Incremental_prototyping-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Extreme_prototyping" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Extreme_prototyping"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.4</span> <span>Extreme prototyping</span> </div> </a> <ul id="toc-Extreme_prototyping-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Advantages" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Advantages"> <div class="vector-toc-text"> <span class="vector-toc-numb">5</span> <span>Advantages</span> </div> </a> <ul id="toc-Advantages-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Disadvantages" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Disadvantages"> <div class="vector-toc-text"> <span class="vector-toc-numb">6</span> <span>Disadvantages</span> </div> </a> <ul id="toc-Disadvantages-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Applicability" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Applicability"> <div class="vector-toc-text"> <span class="vector-toc-numb">7</span> <span>Applicability</span> </div> </a> <button aria-controls="toc-Applicability-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle Applicability subsection</span> </button> <ul id="toc-Applicability-sublist" class="vector-toc-list"> <li id="toc-Dynamic_systems_development_method" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Dynamic_systems_development_method"> <div class="vector-toc-text"> <span class="vector-toc-numb">7.1</span> <span>Dynamic systems development method</span> </div> </a> <ul id="toc-Dynamic_systems_development_method-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Operational_prototyping" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Operational_prototyping"> <div class="vector-toc-text"> <span class="vector-toc-numb">7.2</span> <span>Operational prototyping</span> </div> </a> <ul id="toc-Operational_prototyping-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Evolutionary_systems_development" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Evolutionary_systems_development"> <div class="vector-toc-text"> <span class="vector-toc-numb">7.3</span> <span>Evolutionary systems development</span> </div> </a> <ul id="toc-Evolutionary_systems_development-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Evolutionary_rapid_development" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Evolutionary_rapid_development"> <div class="vector-toc-text"> <span class="vector-toc-numb">7.4</span> <span>Evolutionary rapid development</span> </div> </a> <ul id="toc-Evolutionary_rapid_development-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Tools" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Tools"> <div class="vector-toc-text"> <span class="vector-toc-numb">8</span> <span>Tools</span> </div> </a> <button aria-controls="toc-Tools-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle Tools subsection</span> </button> <ul id="toc-Tools-sublist" class="vector-toc-list"> <li id="toc-Screen_generators,_design_tools,_and_software_factories" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Screen_generators,_design_tools,_and_software_factories"> <div class="vector-toc-text"> <span class="vector-toc-numb">8.1</span> <span>Screen generators, design tools, and software factories</span> </div> </a> <ul id="toc-Screen_generators,_design_tools,_and_software_factories-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Application_definition_or_simulation_software" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Application_definition_or_simulation_software"> <div class="vector-toc-text"> <span class="vector-toc-numb">8.2</span> <span>Application definition or simulation software</span> </div> </a> <ul id="toc-Application_definition_or_simulation_software-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Requirements_Engineering_Environment" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Requirements_Engineering_Environment"> <div class="vector-toc-text"> <span class="vector-toc-numb">8.3</span> <span>Requirements Engineering Environment</span> </div> </a> <ul id="toc-Requirements_Engineering_Environment-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Non-relational_environments" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Non-relational_environments"> <div class="vector-toc-text"> <span class="vector-toc-numb">8.4</span> <span>Non-relational environments</span> </div> </a> <ul id="toc-Non-relational_environments-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-PSDL" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#PSDL"> <div class="vector-toc-text"> <span class="vector-toc-numb">8.5</span> <span>PSDL</span> </div> </a> <ul id="toc-PSDL-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-References" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#References"> <div class="vector-toc-text"> <span class="vector-toc-numb">9</span> <span>References</span> </div> </a> <ul id="toc-References-sublist" class="vector-toc-list"> </ul> </li> </ul> </div> </div> </nav> </div> </div> <div class="mw-content-container"> <main id="content" class="mw-body"> <header class="mw-body-header vector-page-titlebar"> <nav aria-label="Contents" class="vector-toc-landmark"> <div id="vector-page-titlebar-toc" class="vector-dropdown vector-page-titlebar-toc vector-button-flush-left" > <input type="checkbox" id="vector-page-titlebar-toc-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-titlebar-toc" class="vector-dropdown-checkbox " aria-label="Toggle the table of contents" > <label id="vector-page-titlebar-toc-label" for="vector-page-titlebar-toc-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-listBullet mw-ui-icon-wikimedia-listBullet"></span> <span class="vector-dropdown-label-text">Toggle the table of contents</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-titlebar-toc-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Software prototyping</span></h1> <div id="p-lang-btn" class="vector-dropdown mw-portlet mw-portlet-lang" > <input type="checkbox" id="p-lang-btn-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-p-lang-btn" class="vector-dropdown-checkbox mw-interlanguage-selector" aria-label="Go to an article in another language. Available in 15 languages" > <label id="p-lang-btn-label" for="p-lang-btn-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--action-progressive mw-portlet-lang-heading-15" aria-hidden="true" ><span class="vector-icon mw-ui-icon-language-progressive mw-ui-icon-wikimedia-language-progressive"></span> <span class="vector-dropdown-label-text">15 languages</span> </label> <div class="vector-dropdown-content"> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li class="interlanguage-link interwiki-ar mw-list-item"><a href="https://ar.wikipedia.org/wiki/%D8%B5%D9%86%D8%A7%D8%B9%D8%A9_%D8%A7%D9%84%D9%86%D9%85%D8%A7%D8%B0%D8%AC_%D8%A7%D9%84%D8%A3%D9%88%D9%84%D9%8A%D8%A9_%D9%84%D9%84%D8%A8%D8%B1%D9%85%D8%AC%D9%8A%D8%A7%D8%AA" title="صناعة النماذج الأولية للبرمجيات – Arabic" lang="ar" hreflang="ar" data-title="صناعة النماذج الأولية للبرمجيات" data-language-autonym="العربية" data-language-local-name="Arabic" class="interlanguage-link-target"><span>العربية</span></a></li><li class="interlanguage-link interwiki-ca mw-list-item"><a href="https://ca.wikipedia.org/wiki/Model_de_prototips" title="Model de prototips – Catalan" lang="ca" hreflang="ca" data-title="Model de prototips" data-language-autonym="Català" data-language-local-name="Catalan" class="interlanguage-link-target"><span>Català</span></a></li><li class="interlanguage-link interwiki-cs mw-list-item"><a href="https://cs.wikipedia.org/wiki/Prototypov%C3%A1n%C3%AD" title="Prototypování – Czech" lang="cs" hreflang="cs" data-title="Prototypování" data-language-autonym="Čeština" data-language-local-name="Czech" class="interlanguage-link-target"><span>Čeština</span></a></li><li class="interlanguage-link interwiki-de mw-list-item"><a href="https://de.wikipedia.org/wiki/Prototyping_(Softwareentwicklung)" title="Prototyping (Softwareentwicklung) – German" lang="de" hreflang="de" data-title="Prototyping (Softwareentwicklung)" data-language-autonym="Deutsch" data-language-local-name="German" class="interlanguage-link-target"><span>Deutsch</span></a></li><li class="interlanguage-link interwiki-es mw-list-item"><a href="https://es.wikipedia.org/wiki/Modelo_de_prototipos" title="Modelo de prototipos – Spanish" lang="es" hreflang="es" data-title="Modelo de prototipos" data-language-autonym="Español" data-language-local-name="Spanish" class="interlanguage-link-target"><span>Español</span></a></li><li class="interlanguage-link interwiki-fa mw-list-item"><a href="https://fa.wikipedia.org/wiki/%D9%BE%DB%8C%D8%B4%E2%80%8C%D9%86%D9%85%D9%88%D9%86%D9%87_%D9%86%D8%B1%D9%85%E2%80%8C%D8%A7%D9%81%D8%B2%D8%A7%D8%B1" title="پیشنمونه نرمافزار – Persian" lang="fa" hreflang="fa" data-title="پیشنمونه نرمافزار" data-language-autonym="فارسی" data-language-local-name="Persian" class="interlanguage-link-target"><span>فارسی</span></a></li><li class="interlanguage-link interwiki-fr mw-list-item"><a href="https://fr.wikipedia.org/wiki/Prototypage_logiciel" title="Prototypage logiciel – French" lang="fr" hreflang="fr" data-title="Prototypage logiciel" data-language-autonym="Français" data-language-local-name="French" class="interlanguage-link-target"><span>Français</span></a></li><li class="interlanguage-link interwiki-hi mw-list-item"><a href="https://hi.wikipedia.org/wiki/%E0%A4%B8%E0%A5%89%E0%A4%AB%E0%A5%8D%E0%A4%9F%E0%A4%B5%E0%A5%87%E0%A4%AF%E0%A4%B0_%E0%A4%AA%E0%A5%8D%E0%A4%B0%E0%A5%8B%E0%A4%9F%E0%A5%8B%E0%A4%9F%E0%A4%BE%E0%A4%87%E0%A4%AA%E0%A4%BF%E0%A4%82%E0%A4%97" title="सॉफ्टवेयर प्रोटोटाइपिंग – Hindi" lang="hi" hreflang="hi" data-title="सॉफ्टवेयर प्रोटोटाइपिंग" data-language-autonym="हिन्दी" data-language-local-name="Hindi" class="interlanguage-link-target"><span>हिन्दी</span></a></li><li class="interlanguage-link interwiki-id mw-list-item"><a href="https://id.wikipedia.org/wiki/Pembuatan_purwarupa_perangkat_lunak" title="Pembuatan purwarupa perangkat lunak – Indonesian" lang="id" hreflang="id" data-title="Pembuatan purwarupa perangkat lunak" data-language-autonym="Bahasa Indonesia" data-language-local-name="Indonesian" class="interlanguage-link-target"><span>Bahasa Indonesia</span></a></li><li class="interlanguage-link interwiki-it mw-list-item"><a href="https://it.wikipedia.org/wiki/Modello_evolutivo" title="Modello evolutivo – Italian" lang="it" hreflang="it" data-title="Modello evolutivo" data-language-autonym="Italiano" data-language-local-name="Italian" class="interlanguage-link-target"><span>Italiano</span></a></li><li class="interlanguage-link interwiki-hu mw-list-item"><a href="https://hu.wikipedia.org/wiki/Protot%C3%ADpus-k%C3%A9sz%C3%ADt%C3%A9s" title="Prototípus-készítés – Hungarian" lang="hu" hreflang="hu" data-title="Prototípus-készítés" data-language-autonym="Magyar" data-language-local-name="Hungarian" class="interlanguage-link-target"><span>Magyar</span></a></li><li class="interlanguage-link interwiki-ja mw-list-item"><a href="https://ja.wikipedia.org/wiki/%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E3%83%97%E3%83%AD%E3%83%88%E3%82%BF%E3%82%A4%E3%83%94%E3%83%B3%E3%82%B0" title="ソフトウェアプロトタイピング – Japanese" lang="ja" hreflang="ja" data-title="ソフトウェアプロトタイピング" data-language-autonym="日本語" data-language-local-name="Japanese" class="interlanguage-link-target"><span>日本語</span></a></li><li class="interlanguage-link interwiki-pt badge-Q70893996 mw-list-item" title=""><a href="https://pt.wikipedia.org/wiki/Prototipa%C3%A7%C3%A3o" title="Prototipação – Portuguese" lang="pt" hreflang="pt" data-title="Prototipação" data-language-autonym="Português" data-language-local-name="Portuguese" class="interlanguage-link-target"><span>Português</span></a></li><li class="interlanguage-link interwiki-ru mw-list-item"><a href="https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D1%82%D0%BE%D1%82%D0%B8%D0%BF%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BE%D0%B1%D0%B5%D1%81%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D1%8F" title="Прототипирование программного обеспечения – Russian" lang="ru" hreflang="ru" data-title="Прототипирование программного обеспечения" data-language-autonym="Русский" data-language-local-name="Russian" class="interlanguage-link-target"><span>Русский</span></a></li><li class="interlanguage-link interwiki-zh-yue mw-list-item"><a href="https://zh-yue.wikipedia.org/wiki/%E8%BB%9F%E4%BB%B6%E5%8E%9F%E5%9E%8B" title="軟件原型 – Cantonese" lang="yue" hreflang="yue" data-title="軟件原型" data-language-autonym="粵語" data-language-local-name="Cantonese" class="interlanguage-link-target"><span>粵語</span></a></li> </ul> <div class="after-portlet after-portlet-lang"><span class="wb-langlinks-edit wb-langlinks-link"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q576460#sitelinks-wikipedia" title="Edit interlanguage links" class="wbc-editpage">Edit links</a></span></div> </div> </div> </div> </header> <div class="vector-page-toolbar"> <div class="vector-page-toolbar-container"> <div id="left-navigation"> <nav aria-label="Namespaces"> <div id="p-associated-pages" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-associated-pages" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-nstab-main" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/Software_prototyping" title="View the content page [c]" accesskey="c"><span>Article</span></a></li><li id="ca-talk" class="vector-tab-noicon mw-list-item"><a href="/wiki/Talk:Software_prototyping" rel="discussion" title="Discuss improvements to the content page [t]" accesskey="t"><span>Talk</span></a></li> </ul> </div> </div> <div id="vector-variants-dropdown" class="vector-dropdown emptyPortlet" > <input type="checkbox" id="vector-variants-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-variants-dropdown" class="vector-dropdown-checkbox " aria-label="Change language variant" > <label id="vector-variants-dropdown-label" for="vector-variants-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">English</span> </label> <div class="vector-dropdown-content"> <div id="p-variants" class="vector-menu mw-portlet mw-portlet-variants emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> </div> </div> </nav> </div> <div id="right-navigation" class="vector-collapsible"> <nav aria-label="Views"> <div id="p-views" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-views" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-view" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/Software_prototyping"><span>Read</span></a></li><li id="ca-edit" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Software_prototyping&action=edit" title="Edit this page [e]" accesskey="e"><span>Edit</span></a></li><li id="ca-history" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Software_prototyping&action=history" title="Past revisions of this page [h]" accesskey="h"><span>View history</span></a></li> </ul> </div> </div> </nav> <nav class="vector-page-tools-landmark" aria-label="Page tools"> <div id="vector-page-tools-dropdown" class="vector-dropdown vector-page-tools-dropdown" > <input type="checkbox" id="vector-page-tools-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-tools-dropdown" class="vector-dropdown-checkbox " aria-label="Tools" > <label id="vector-page-tools-dropdown-label" for="vector-page-tools-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">Tools</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-tools-unpinned-container" class="vector-unpinned-container"> <div id="vector-page-tools" class="vector-page-tools vector-pinnable-element"> <div class="vector-pinnable-header vector-page-tools-pinnable-header vector-pinnable-header-unpinned" data-feature-name="page-tools-pinned" data-pinnable-element-id="vector-page-tools" data-pinned-container-id="vector-page-tools-pinned-container" data-unpinned-container-id="vector-page-tools-unpinned-container" > <div class="vector-pinnable-header-label">Tools</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-page-tools.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-page-tools.unpin">hide</button> </div> <div id="p-cactions" class="vector-menu mw-portlet mw-portlet-cactions emptyPortlet vector-has-collapsible-items" title="More options" > <div class="vector-menu-heading"> Actions </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-more-view" class="selected vector-more-collapsible-item mw-list-item"><a href="/wiki/Software_prototyping"><span>Read</span></a></li><li id="ca-more-edit" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Software_prototyping&action=edit" title="Edit this page [e]" accesskey="e"><span>Edit</span></a></li><li id="ca-more-history" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Software_prototyping&action=history"><span>View history</span></a></li> </ul> </div> </div> <div id="p-tb" class="vector-menu mw-portlet mw-portlet-tb" > <div class="vector-menu-heading"> General </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-whatlinkshere" class="mw-list-item"><a href="/wiki/Special:WhatLinksHere/Software_prototyping" title="List of all English Wikipedia pages containing links to this page [j]" accesskey="j"><span>What links here</span></a></li><li id="t-recentchangeslinked" class="mw-list-item"><a href="/wiki/Special:RecentChangesLinked/Software_prototyping" rel="nofollow" title="Recent changes in pages linked from this page [k]" accesskey="k"><span>Related changes</span></a></li><li id="t-upload" class="mw-list-item"><a href="/wiki/Wikipedia:File_Upload_Wizard" title="Upload files [u]" accesskey="u"><span>Upload file</span></a></li><li id="t-specialpages" class="mw-list-item"><a href="/wiki/Special:SpecialPages" title="A list of all special pages [q]" accesskey="q"><span>Special pages</span></a></li><li id="t-permalink" class="mw-list-item"><a href="/w/index.php?title=Software_prototyping&oldid=1241070369" title="Permanent link to this revision of this page"><span>Permanent link</span></a></li><li id="t-info" class="mw-list-item"><a href="/w/index.php?title=Software_prototyping&action=info" title="More information about this page"><span>Page information</span></a></li><li id="t-cite" class="mw-list-item"><a href="/w/index.php?title=Special:CiteThisPage&page=Software_prototyping&id=1241070369&wpFormIdentifier=titleform" title="Information on how to cite this page"><span>Cite this page</span></a></li><li id="t-urlshortener" class="mw-list-item"><a href="/w/index.php?title=Special:UrlShortener&url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FSoftware_prototyping"><span>Get shortened URL</span></a></li><li id="t-urlshortener-qrcode" class="mw-list-item"><a href="/w/index.php?title=Special:QrCode&url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FSoftware_prototyping"><span>Download QR code</span></a></li> </ul> </div> </div> <div id="p-coll-print_export" class="vector-menu mw-portlet mw-portlet-coll-print_export" > <div class="vector-menu-heading"> Print/export </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="coll-download-as-rl" class="mw-list-item"><a href="/w/index.php?title=Special:DownloadAsPdf&page=Software_prototyping&action=show-download-screen" title="Download this page as a PDF file"><span>Download as PDF</span></a></li><li id="t-print" class="mw-list-item"><a href="/w/index.php?title=Software_prototyping&printable=yes" title="Printable version of this page [p]" accesskey="p"><span>Printable version</span></a></li> </ul> </div> </div> <div id="p-wikibase-otherprojects" class="vector-menu mw-portlet mw-portlet-wikibase-otherprojects" > <div class="vector-menu-heading"> In other projects </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-wikibase" class="wb-otherproject-link wb-otherproject-wikibase-dataitem mw-list-item"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q576460" title="Structured data on this page hosted by Wikidata [g]" accesskey="g"><span>Wikidata item</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> </div> </div> </div> <div class="vector-column-end"> <div class="vector-sticky-pinned-container"> <nav class="vector-page-tools-landmark" aria-label="Page tools"> <div id="vector-page-tools-pinned-container" class="vector-pinned-container"> </div> </nav> <nav class="vector-appearance-landmark" aria-label="Appearance"> <div id="vector-appearance-pinned-container" class="vector-pinned-container"> <div id="vector-appearance" class="vector-appearance vector-pinnable-element"> <div class="vector-pinnable-header vector-appearance-pinnable-header vector-pinnable-header-pinned" data-feature-name="appearance-pinned" data-pinnable-element-id="vector-appearance" data-pinned-container-id="vector-appearance-pinned-container" data-unpinned-container-id="vector-appearance-unpinned-container" > <div class="vector-pinnable-header-label">Appearance</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-appearance.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-appearance.unpin">hide</button> </div> </div> </div> </nav> </div> </div> <div id="bodyContent" class="vector-body" aria-labelledby="firstHeading" data-mw-ve-target-container> <div class="vector-body-before-content"> <div class="mw-indicators"> </div> <div id="siteSub" class="noprint">From Wikipedia, the free encyclopedia</div> </div> <div id="contentSub"><div id="mw-content-subtitle"></div></div> <div id="mw-content-text" class="mw-body-content"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr"><div class="shortdescription nomobile noexcerpt noprint searchaux" style="display:none">Activity of creating prototypes of software applications</div> <style data-mw-deduplicate="TemplateStyles:r1236090951">.mw-parser-output .hatnote{font-style:italic}.mw-parser-output div.hatnote{padding-left:1.6em;margin-bottom:0.5em}.mw-parser-output .hatnote i{font-style:normal}.mw-parser-output .hatnote+link+.hatnote{margin-top:-0.5em}@media print{body.ns-0 .mw-parser-output .hatnote{display:none!important}}</style><div role="note" class="hatnote navigation-not-searchable">For other uses, see <a href="/wiki/Prototype-based_programming" title="Prototype-based programming">Prototype-based programming</a>.</div> <style data-mw-deduplicate="TemplateStyles:r1129693374">.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}</style><style data-mw-deduplicate="TemplateStyles:r1246091330">.mw-parser-output .sidebar{width:22em;float:right;clear:right;margin:0.5em 0 1em 1em;background:var(--background-color-neutral-subtle,#f8f9fa);border:1px solid var(--border-color-base,#a2a9b1);padding:0.2em;text-align:center;line-height:1.4em;font-size:88%;border-collapse:collapse;display:table}body.skin-minerva .mw-parser-output .sidebar{display:table!important;float:right!important;margin:0.5em 0 1em 1em!important}.mw-parser-output .sidebar-subgroup{width:100%;margin:0;border-spacing:0}.mw-parser-output .sidebar-left{float:left;clear:left;margin:0.5em 1em 1em 0}.mw-parser-output .sidebar-none{float:none;clear:both;margin:0.5em 1em 1em 0}.mw-parser-output .sidebar-outer-title{padding:0 0.4em 0.2em;font-size:125%;line-height:1.2em;font-weight:bold}.mw-parser-output .sidebar-top-image{padding:0.4em}.mw-parser-output .sidebar-top-caption,.mw-parser-output .sidebar-pretitle-with-top-image,.mw-parser-output .sidebar-caption{padding:0.2em 0.4em 0;line-height:1.2em}.mw-parser-output .sidebar-pretitle{padding:0.4em 0.4em 0;line-height:1.2em}.mw-parser-output .sidebar-title,.mw-parser-output .sidebar-title-with-pretitle{padding:0.2em 0.8em;font-size:145%;line-height:1.2em}.mw-parser-output .sidebar-title-with-pretitle{padding:0.1em 0.4em}.mw-parser-output .sidebar-image{padding:0.2em 0.4em 0.4em}.mw-parser-output .sidebar-heading{padding:0.1em 0.4em}.mw-parser-output .sidebar-content{padding:0 0.5em 0.4em}.mw-parser-output .sidebar-content-with-subgroup{padding:0.1em 0.4em 0.2em}.mw-parser-output .sidebar-above,.mw-parser-output .sidebar-below{padding:0.3em 0.8em;font-weight:bold}.mw-parser-output .sidebar-collapse .sidebar-above,.mw-parser-output .sidebar-collapse .sidebar-below{border-top:1px solid #aaa;border-bottom:1px solid #aaa}.mw-parser-output .sidebar-navbar{text-align:right;font-size:115%;padding:0 0.4em 0.4em}.mw-parser-output .sidebar-list-title{padding:0 0.4em;text-align:left;font-weight:bold;line-height:1.6em;font-size:105%}.mw-parser-output .sidebar-list-title-c{padding:0 0.4em;text-align:center;margin:0 3.3em}@media(max-width:640px){body.mediawiki .mw-parser-output .sidebar{width:100%!important;clear:both;float:none!important;margin-left:0!important;margin-right:0!important}}body.skin--responsive .mw-parser-output .sidebar a>img{max-width:none!important}@media screen{html.skin-theme-clientpref-night .mw-parser-output .sidebar:not(.notheme) .sidebar-list-title,html.skin-theme-clientpref-night .mw-parser-output .sidebar:not(.notheme) .sidebar-title-with-pretitle{background:transparent!important}html.skin-theme-clientpref-night .mw-parser-output .sidebar:not(.notheme) .sidebar-title-with-pretitle a{color:var(--color-progressive)!important}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .sidebar:not(.notheme) .sidebar-list-title,html.skin-theme-clientpref-os .mw-parser-output .sidebar:not(.notheme) .sidebar-title-with-pretitle{background:transparent!important}html.skin-theme-clientpref-os .mw-parser-output .sidebar:not(.notheme) .sidebar-title-with-pretitle a{color:var(--color-progressive)!important}}@media print{body.ns-0 .mw-parser-output .sidebar{display:none!important}}</style><table class="sidebar sidebar-collapse nomobile"><tbody><tr><td class="sidebar-pretitle">Part of a series on</td></tr><tr><th class="sidebar-title-with-pretitle"><a href="/wiki/Software_development" title="Software development">Software development</a></th></tr><tr><td class="sidebar-content"> <div class="sidebar-list mw-collapsible mw-collapsed"><div class="sidebar-list-title" style="color: var(--color-base)">Core activities</div><div class="sidebar-list-content mw-collapsible-content hlist"> <ul><li><a href="/wiki/Data_modeling" title="Data modeling">Data modeling</a></li> <li><a href="/wiki/Software_development_process" title="Software development process">Processes</a></li> <li><a href="/wiki/Requirements_analysis" title="Requirements analysis">Requirements</a></li> <li><a href="/wiki/Software_design" title="Software design">Design</a></li> <li><a href="/wiki/Software_construction" title="Software construction">Construction</a></li> <li><a href="/wiki/Software_engineering" title="Software engineering">Engineering</a></li> <li><a href="/wiki/Software_testing" title="Software testing">Testing</a></li> <li><a href="/wiki/Debugging" title="Debugging">Debugging</a></li> <li><a href="/wiki/Software_deployment" title="Software deployment">Deployment</a></li> <li><a href="/wiki/Software_maintenance" title="Software maintenance">Maintenance</a></li></ul></div></div></td> </tr><tr><td class="sidebar-content"> <div class="sidebar-list mw-collapsible mw-collapsed"><div class="sidebar-list-title" style="color: var(--color-base)">Paradigms and models</div><div class="sidebar-list-content mw-collapsible-content hlist"> <ul><li><a href="/wiki/Agile_software_development" title="Agile software development">Agile</a></li> <li><a href="/wiki/Cleanroom_software_engineering" title="Cleanroom software engineering">Cleanroom</a></li> <li><a href="/wiki/Incremental_build_model" title="Incremental build model">Incremental</a></li> <li><a class="mw-selflink selflink">Prototyping</a></li> <li><a href="/wiki/Spiral_model" title="Spiral model">Spiral</a></li> <li><a href="/wiki/V-model_(software_development)" title="V-model (software development)">V model</a></li> <li><a href="/wiki/Waterfall_model" title="Waterfall model">Waterfall</a></li></ul></div></div></td> </tr><tr><td class="sidebar-content"> <div class="sidebar-list mw-collapsible mw-collapsed"><div class="sidebar-list-title" style="color: var(--color-base)"><a href="/wiki/Software_development_methodology" class="mw-redirect" title="Software development methodology">Methodologies</a> and frameworks</div><div class="sidebar-list-content mw-collapsible-content hlist"> <ul><li><a href="/wiki/Adaptive_software_development" title="Adaptive software development">ASD</a></li> <li><a href="/wiki/DevOps" title="DevOps">DevOps</a></li> <li><a href="/wiki/Disciplined_agile_delivery" title="Disciplined agile delivery">DAD</a></li> <li><a href="/wiki/Dynamic_systems_development_method" title="Dynamic systems development method">DSDM</a></li> <li><a href="/wiki/Feature-driven_development" title="Feature-driven development">FDD</a></li> <li><a href="/wiki/Iterative_and_incremental_development" title="Iterative and incremental development">IID</a></li> <li><a href="/wiki/Kanban_(development)" title="Kanban (development)">Kanban</a></li> <li><a href="/wiki/Lean_software_development" title="Lean software development">Lean SD</a></li> <li><a href="/wiki/Scrum_(software_development)#Large-scale_Scrum" title="Scrum (software development)">LeSS</a></li> <li><a href="/wiki/Model-driven_development" class="mw-redirect" title="Model-driven development">MDD</a></li> <li><a href="/wiki/Microsoft_Solutions_Framework" title="Microsoft Solutions Framework">MSF</a></li> <li><a href="/wiki/Personal_software_process" title="Personal software process">PSP</a></li> <li><a href="/wiki/Rapid_application_development" title="Rapid application development">RAD</a></li> <li><a href="/wiki/Rational_Unified_Process" class="mw-redirect" title="Rational Unified Process">RUP</a></li> <li><a href="/wiki/Scaled_agile_framework" title="Scaled agile framework">SAFe</a></li> <li><a href="/wiki/Scrum_(software_development)" title="Scrum (software development)">Scrum</a></li> <li><a href="/wiki/SEMAT" title="SEMAT">SEMAT</a></li> <li><a href="/wiki/Test-driven_development" title="Test-driven development">TDD</a></li> <li><a href="/wiki/Team_software_process" title="Team software process">TSP</a></li> <li><a href="/wiki/Unified_Process" class="mw-redirect" title="Unified Process">UP</a></li> <li><a href="/wiki/Extreme_programming" title="Extreme programming">XP</a></li></ul></div></div></td> </tr><tr><td class="sidebar-content"> <div class="sidebar-list mw-collapsible mw-collapsed"><div class="sidebar-list-title" style="color: var(--color-base)">Supporting disciplines</div><div class="sidebar-list-content mw-collapsible-content hlist"> <ul><li><a href="/wiki/Software_configuration_management" title="Software configuration management">Configuration management</a></li> <li><a href="/wiki/Deployment_management#Computer_science" title="Deployment management"> Deployment management</a></li> <li><a href="/wiki/Software_documentation" title="Software documentation">Documentation</a></li> <li><a href="/wiki/Software_quality_assurance" title="Software quality assurance">Software quality assurance</a></li> <li><a href="/wiki/Software_project_management" title="Software project management">Project management</a></li> <li><a href="/wiki/User_experience" title="User experience">User experience</a></li></ul></div></div></td> </tr><tr><td class="sidebar-content"> <div class="sidebar-list mw-collapsible mw-collapsed"><div class="sidebar-list-title" style="color: var(--color-base)">Practices</div><div class="sidebar-list-content mw-collapsible-content hlist"> <ul><li><a href="/wiki/Acceptance_test%E2%80%93driven_development" class="mw-redirect" title="Acceptance test–driven development">ATDD</a></li> <li><a href="/wiki/Behavior-driven_development" title="Behavior-driven development">BDD</a></li> <li><a href="/wiki/Extreme_programming_practices#Collective_code_ownership" title="Extreme programming practices">CCO</a></li> <li><a href="/wiki/Continuous_integration" title="Continuous integration">CI</a></li> <li><a href="/wiki/Continuous_delivery" title="Continuous delivery">CD</a></li> <li><a href="/wiki/Domain-driven_design" title="Domain-driven design">DDD</a></li> <li><a href="/wiki/Pair_programming" title="Pair programming">PP</a></li> <li><a href="/wiki/Specification_by_example" title="Specification by example">SBE</a></li> <li><a href="/wiki/Stand-up_meeting" title="Stand-up meeting">Stand-up</a></li> <li><a href="/wiki/Test-driven_development" title="Test-driven development">TDD</a></li></ul></div></div></td> </tr><tr><td class="sidebar-content"> <div class="sidebar-list mw-collapsible mw-collapsed"><div class="sidebar-list-title" style="color: var(--color-base)"><a href="/wiki/Programming_tool" title="Programming tool">Tools</a></div><div class="sidebar-list-content mw-collapsible-content hlist"> <ul><li><a href="/wiki/Compiler" title="Compiler">Compiler</a></li> <li><a href="/wiki/Debugger" title="Debugger">Debugger</a></li> <li><a href="/wiki/Profiling_(computer_programming)" title="Profiling (computer programming)">Profiler</a></li> <li><a href="/wiki/Graphical_user_interface_builder" title="Graphical user interface builder">GUI designer</a></li> <li><a href="/wiki/UML_tool" title="UML tool">UML Modeling</a></li> <li><a href="/wiki/Integrated_development_environment" title="Integrated development environment">IDE</a></li> <li><a href="/wiki/Build_automation" title="Build automation">Build automation</a></li> <li><a href="/wiki/Application-release_automation" title="Application-release automation">Release automation</a></li> <li><a href="/wiki/Infrastructure_as_code" title="Infrastructure as code">Infrastructure as code</a></li></ul></div></div></td> </tr><tr><td class="sidebar-content"> <div class="sidebar-list mw-collapsible mw-collapsed"><div class="sidebar-list-title" style="color: var(--color-base)">Standards and bodies of knowledge</div><div class="sidebar-list-content mw-collapsible-content hlist"> <ul><li><a href="/wiki/Capability_Maturity_Model_Integration" title="Capability Maturity Model Integration">CMMI</a></li> <li><a href="/wiki/IEEE_Standards_Association" title="IEEE Standards Association">IEEE standards</a></li> <li><a href="/wiki/ISO_9001" class="mw-redirect" title="ISO 9001">ISO 9001</a></li> <li><a href="/wiki/ISO/IEC_JTC_1/SC_7" title="ISO/IEC JTC 1/SC 7">ISO/IEC standards</a></li> <li><a href="/wiki/Project_Management_Body_of_Knowledge" title="Project Management Body of Knowledge">PMBOK</a></li> <li><a href="/wiki/Software_Engineering_Body_of_Knowledge" title="Software Engineering Body of Knowledge">SWEBOK</a></li> <li><a href="/wiki/ITIL" title="ITIL">ITIL</a></li> <li><a href="/wiki/International_Requirements_Engineering_Board" title="International Requirements Engineering Board">IREB</a></li> <li><a href="/wiki/Object_Management_Group" title="Object Management Group">OMG</a></li></ul></div></div></td> </tr><tr><td class="sidebar-content"> <div class="sidebar-list mw-collapsible mw-collapsed"><div class="sidebar-list-title" style="color: var(--color-base)">Glossaries</div><div class="sidebar-list-content mw-collapsible-content hlist"> <ul><li><a href="/wiki/Glossary_of_artificial_intelligence" title="Glossary of artificial intelligence">Artificial intelligence</a></li> <li><a href="/wiki/Glossary_of_computer_science" title="Glossary of computer science">Computer science</a></li> <li><a href="/wiki/Glossary_of_electrical_and_electronics_engineering" title="Glossary of electrical and electronics engineering">Electrical and electronics engineering</a></li></ul></div></div></td> </tr><tr><td class="sidebar-content"> <div class="sidebar-list mw-collapsible mw-collapsed"><div class="sidebar-list-title" style="color: var(--color-base)">Outlines</div><div class="sidebar-list-content mw-collapsible-content hlist"> <ul><li><a href="/wiki/Outline_of_software_development" title="Outline of software development">Outline of software development</a></li></ul></div></div></td> </tr><tr><td class="sidebar-navbar"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374"><style data-mw-deduplicate="TemplateStyles:r1239400231">.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}</style><div class="navbar plainlinks hlist navbar-mini"><ul><li class="nv-view"><a href="/wiki/Template:Software_development_process" title="Template:Software development process"><abbr title="View this template">v</abbr></a></li><li class="nv-talk"><a href="/wiki/Template_talk:Software_development_process" title="Template talk:Software development process"><abbr title="Discuss this template">t</abbr></a></li><li class="nv-edit"><a href="/wiki/Special:EditPage/Template:Software_development_process" title="Special:EditPage/Template:Software development process"><abbr title="Edit this template">e</abbr></a></li></ul></div></td></tr></tbody></table> <p><b>Software prototyping</b> is the activity of creating <a href="/wiki/Prototype" title="Prototype">prototypes</a> of software applications, i.e., incomplete versions of the <a href="/wiki/Software" title="Software">software program</a> being developed. It is an activity that can occur in <a href="/wiki/Software_development_process" title="Software development process">software development</a> and is comparable to <a href="/wiki/Prototyping" class="mw-redirect" title="Prototyping">prototyping</a> as known from other fields, such as <a href="/wiki/Mechanical_engineering" title="Mechanical engineering">mechanical engineering</a> or <a href="/wiki/Manufacturing" title="Manufacturing">manufacturing</a>.<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> </p><p>A prototype typically simulates only a few aspects of, and may be completely different from, the final product. </p><p>Prototyping has several benefits: the software designer and implementer can get valuable feedback from the users early in the project. The client and the contractor can compare if the software made matches the <a href="/wiki/Program_specification" class="mw-redirect" title="Program specification">software specification</a>, according to which the software program is built. It also allows the software engineer some insight into the accuracy of initial project estimates and whether the deadlines and <a href="/wiki/Milestone_(project_management)" title="Milestone (project management)">milestones</a> proposed can be successfully met. The degree of completeness and the techniques used in prototyping have been in development and debate since its proposal in the early 1970s.<sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> </p> <meta property="mw:PageProp/toc" /> <div class="mw-heading mw-heading2"><h2 id="Overview">Overview</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Software_prototyping&action=edit&section=1" title="Edit section: Overview"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The purpose of a prototype is to allow users of the software to evaluate developers' proposals for the design of the eventual product by actually trying them out, rather than having to interpret and evaluate the design based on descriptions. Software prototyping provides an understanding of the software's functions and potential threats or issues.<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup> Prototyping can also be used by end users to describe and prove requirements that have not been considered, and that can be a key factor in the commercial relationship between developers and their clients.<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup> <a href="/wiki/Interaction_design" title="Interaction design">Interaction design</a> in particular makes heavy use of prototyping with that goal. </p><p>This process is in contrast with the 1960s and 1970s monolithic development cycle of building the entire program first and then working out any inconsistencies between design and implementation, which led to higher software costs and poor estimates of time and cost.<sup class="noprint Inline-Template Template-Fact" style="white-space:nowrap;">[<i><a href="/wiki/Wikipedia:Citation_needed" title="Wikipedia:Citation needed"><span title="This claim needs references to reliable sources. (March 2010)">citation needed</span></a></i>]</sup> The monolithic approach has been dubbed the "Slaying the (software) Dragon" technique, since it assumes that the software designer and developer is a single hero who has to slay the entire dragon alone. Prototyping can also avoid the great expense and difficulty of having to change a finished software product. </p><p>The practice of prototyping is one of the points <a href="/wiki/Frederick_P._Brooks" class="mw-redirect" title="Frederick P. Brooks">Frederick P. Brooks</a> makes in his 1975 book <i><a href="/wiki/The_Mythical_Man-Month" title="The Mythical Man-Month">The Mythical Man-Month</a></i> and his 10-year anniversary article "<a href="/wiki/No_Silver_Bullet" title="No Silver Bullet">No Silver Bullet</a>". </p><p>An early example of large-scale software prototyping was the implementation of NYU's Ada/ED translator for the <a href="/wiki/Ada_(programming_language)" title="Ada (programming language)">Ada programming language</a>.<sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup> It was implemented in <a href="/wiki/SETL" title="SETL">SETL</a> with the intent of producing an executable semantic model for the Ada language, emphasizing clarity of design and user interface over speed and efficiency. The NYU Ada/ED system was the first validated Ada implementation, certified on April 11, 1983.<sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup> </p> <div class="mw-heading mw-heading2"><h2 id="Outline">Outline</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Software_prototyping&action=edit&section=2" title="Edit section: Outline"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The process of prototyping involves the following steps:<sup class="noprint Inline-Template Template-Fact" style="white-space:nowrap;">[<i><a href="/wiki/Wikipedia:Citation_needed" title="Wikipedia:Citation needed"><span title="This claim needs references to reliable sources. (January 2015)">citation needed</span></a></i>]</sup> </p> <ol><li>Identify basic <a href="/wiki/Requirement" title="Requirement">requirements</a> <dl><dd>Determine basic requirements including the input and output information desired. Details, such as security, can typically be ignored.</dd></dl></li> <li>Develop initial prototype <dl><dd>The initial prototype is developed that includes only user interfaces. (See <a href="#Horizontal_prototype">Horizontal Prototype</a>, below)</dd></dl></li> <li>Review <dl><dd>The customers, including end-users, examine the prototype and provide feedback on potential additions or changes.</dd></dl></li> <li>Revise and enhance the prototype <dl><dd>Using the feedback both the specifications and the prototype can be improved. Negotiation about what is within the scope of the contract/product may be necessary. If changes are introduced then a repeat of steps #3 and #4 may be needed.</dd></dl></li></ol> <div class="mw-heading mw-heading2"><h2 id="Dimensions">Dimensions</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Software_prototyping&action=edit&section=3" title="Edit section: Dimensions"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p><a href="/wiki/Jakob_Nielsen_(usability_consultant)" title="Jakob Nielsen (usability consultant)">Nielsen</a> summarizes the various dimensions of prototypes in his book <i><a href="/wiki/Usability_Engineering" class="mw-redirect" title="Usability Engineering">Usability Engineering</a></i>: </p> <div class="mw-heading mw-heading3"><h3 id="Horizontal_prototype">Horizontal prototype</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Software_prototyping&action=edit&section=4" title="Edit section: Horizontal prototype"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>A common term for a user interface prototype is the <b>horizontal prototype</b>. It provides a broad view of an entire system or subsystem, focusing on user interaction more than low-level system functionality, such as database access. Horizontal prototypes are useful for: </p> <ul><li>Confirmation of user interface requirements and system scope,</li> <li>Demonstration version of the system to obtain buy-in from the business,</li> <li>Develop preliminary estimates of development time, cost and effort.</li></ul> <div class="mw-heading mw-heading3"><h3 id="Vertical_prototype">Vertical prototype</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Software_prototyping&action=edit&section=5" title="Edit section: Vertical prototype"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>A <b>vertical prototype</b> is an enhanced complete elaboration of a single subsystem or function. It is useful for obtaining detailed requirements for a given function, with the following benefits: </p> <ul><li><a href="/wiki/Refinement_(computing)" title="Refinement (computing)">Refinement</a> database design,</li> <li>Obtain information on data volumes and system interface needs, for network sizing and performance engineering,</li> <li>Clarify complex requirements by drilling down to actual system functionality.</li></ul> <div class="mw-heading mw-heading2"><h2 id="Types">Types</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Software_prototyping&action=edit&section=6" title="Edit section: Types"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Software prototyping has many variants. However, all of the methods are in some way based on two major forms of prototyping: throwaway prototyping and evolutionary prototyping. </p> <div class="mw-heading mw-heading3"><h3 id="Throwaway_prototyping">Throwaway prototyping</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Software_prototyping&action=edit&section=7" title="Edit section: Throwaway prototyping"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Also called close-ended prototyping. Throwaway or <a href="/wiki/Rapid_application_development" title="Rapid application development">rapid prototyping</a> refers to the creation of a model that will eventually be discarded rather than becoming part of the final delivered software. After preliminary requirements gathering is accomplished, a simple working model of the system is constructed to visually show the users what their requirements may look like when they are implemented into a finished system. It is also a form of rapid prototyping. </p> <dl><dd>Rapid prototyping involves creating a working model of various parts of the system at a very early stage, after a relatively short investigation. The method used in building it is usually quite informal, the most important factor being the speed with which the model is provided. The model then becomes the starting point from which users can re-examine their expectations and clarify their requirements. When this goal has been achieved, the prototype model is 'thrown away', and the system is formally developed based on the identified requirements.<sup id="cite_ref-Crinnion1991p18_7-0" class="reference"><a href="#cite_note-Crinnion1991p18-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup></dd></dl> <p>The most obvious reason for using throwaway prototyping is that it can be done quickly. If the users can get quick feedback on their requirements, they may be able to refine them early in the development of the software. Making changes early in the development lifecycle is extremely cost effective since there is nothing at that point to redo. If a project is changed after a considerable amount of work has been done then small changes could require large efforts to implement since software systems have many dependencies. Speed is crucial in implementing a throwaway prototype, since with a limited budget of time and money little can be expended on a prototype that will be discarded. </p><p>Another strength of throwaway prototyping is its ability to construct interfaces that the users can test. The user interface is what the user sees as the system, and by seeing it in front of them, it is much easier to grasp how the system will function. </p> <dl><dd>…it is asserted that revolutionary rapid prototyping is a more effective manner in which to deal with user requirements-related issues, and therefore a greater enhancement to software productivity overall. Requirements can be identified, simulated, and tested far more quickly and cheaply when issues of evolvability, maintainability, and software structure are ignored. This, in turn, leads to the accurate specification of requirements, and the subsequent construction of a valid and usable system from the user's perspective, via conventional software development models.<sup id="cite_ref-Overmyer_8-0" class="reference"><a href="#cite_note-Overmyer-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup></dd></dl> <p>Prototypes can be classified according to the fidelity with which they resemble the actual product in terms of appearance, interaction and timing. One method of creating a low fidelity throwaway prototype is <a href="/wiki/Paper_prototypes" class="mw-redirect" title="Paper prototypes">paper prototyping</a>. The prototype is implemented using paper and pencil, and thus mimics the function of the actual product, but does not look at all like it. Another method to easily build high fidelity throwaway prototypes is to use a <a href="/wiki/GUI_Builder" class="mw-redirect" title="GUI Builder">GUI Builder</a> and create a <i>click dummy</i>, a prototype that looks like the goal system, but does not provide any functionality. </p><p>The usage of <a href="/wiki/Storyboard" title="Storyboard">storyboards</a>, animatics or drawings is not exactly the same as throwaway prototyping, but certainly falls within the same family. These are non-functional implementations but show how the system will look. </p><p>Summary: In this approach the prototype is constructed with the idea that it will be discarded and the final system will be built from scratch. The steps in this approach are: </p> <ol><li>Write preliminary requirements</li> <li>Design the prototype</li> <li>User experiences/uses the prototype, specifies new requirements</li> <li>Repeat if necessary</li> <li>Write the final requirements</li></ol> <div class="mw-heading mw-heading3"><h3 id="Evolutionary_prototyping">Evolutionary prototyping</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Software_prototyping&action=edit&section=8" title="Edit section: Evolutionary prototyping"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Evolutionary prototyping (also known as <a href="/wiki/Breadboard" title="Breadboard">breadboard</a> prototyping) is quite different from <a class="mw-selflink-fragment" href="#Throwaway_prototyping">throwaway prototyping</a>. The main goal when using evolutionary prototyping is to build a very robust prototype in a structured manner and constantly refine it. The reason for this approach is that the evolutionary prototype, when built, forms the heart of the new system, and the improvements and further requirements will then be built. </p><p>When developing a system using evolutionary prototyping, the system is continually refined and rebuilt. </p> <dl><dd>"…evolutionary prototyping acknowledges that we do not understand all the requirements and builds only those that are well understood."<sup id="cite_ref-Davis1992p71_9-0" class="reference"><a href="#cite_note-Davis1992p71-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup></dd></dl> <p>This technique allows the development team to add features, or make changes that couldn't be conceived during the requirements and design phase. </p> <dl><dd>For a system to be useful, it must evolve through use in its intended operational environment. A product is never "done;" it is always maturing as the usage environment changes…we often try to define a system using our most familiar frame of reference—where we are now. We make assumptions about the way business will be conducted and the technology base on which the business will be implemented. A plan is enacted to develop the capability, and, sooner or later, something resembling the envisioned system is delivered.<sup id="cite_ref-SoftwareProductivityConsortium1997p6_10-0" class="reference"><a href="#cite_note-SoftwareProductivityConsortium1997p6-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup></dd></dl> <p>Evolutionary prototypes have an advantage over throwaway prototypes in that they are functional systems. Although they may not have all the features the users have planned, they may be used on an interim basis until the final system is delivered. </p> <dl><dd>"It is not unusual within a prototyping environment for the user to put an initial prototype to practical use while waiting for a more developed version…The user may decide that a 'flawed' system is better than no system at all."<sup id="cite_ref-Crinnion1991p18_7-1" class="reference"><a href="#cite_note-Crinnion1991p18-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup></dd></dl> <p>In evolutionary prototyping, developers can focus themselves to develop parts of the system that they understand instead of working on developing a whole system. </p> <dl><dd>To minimize risk, the developer does not implement poorly understood features. The partial system is sent to customer sites. As users work with the system, they detect opportunities for new features and give requests for these features to developers. Developers then take these enhancement requests along with their own and use sound configuration-management practices to change the software-requirements specification, update the design, recode and retest.<sup id="cite_ref-11" class="reference"><a href="#cite_note-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup></dd></dl> <div class="mw-heading mw-heading3"><h3 id="Incremental_prototyping">Incremental prototyping</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Software_prototyping&action=edit&section=9" title="Edit section: Incremental prototyping"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The final product is built as separate prototypes. At the end, the separate prototypes are merged in an overall design. By the help of incremental prototyping the time gap between user and software developer is reduced. </p> <div class="mw-heading mw-heading3"><h3 id="Extreme_prototyping">Extreme prototyping</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Software_prototyping&action=edit&section=10" title="Edit section: Extreme prototyping"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Extreme prototyping as a development process is used especially for developing web applications. Basically, it breaks down web development into three phases, each one based on the preceding one. The first phase is a static prototype that consists mainly of HTML pages. In the second phase, the screens are programmed and fully functional using a simulated services layer. In the third phase, the services are implemented. </p> <dl><dd>"The process is called Extreme Prototyping to draw attention to the second phase of the process, where a fully functional UI is developed with very little regard to the services other than their contract."<sup id="cite_ref-12" class="reference"><a href="#cite_note-12"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup></dd></dl> <div class="mw-heading mw-heading2"><h2 id="Advantages">Advantages</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Software_prototyping&action=edit&section=11" title="Edit section: Advantages"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>There are many advantages to using prototyping in software development – some tangible, some abstract.<sup id="cite_ref-13" class="reference"><a href="#cite_note-13"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup> </p><p><b>Reduced time and costs</b>: Prototyping can improve the quality of requirements and specifications provided to developers. Because changes cost exponentially more to implement as they are detected later in development, the early determination of <i>what the user really wants</i> can result in faster and less expensive software.<sup id="cite_ref-Overmyer_8-1" class="reference"><a href="#cite_note-Overmyer-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup> </p><p><b>Improved and increased user involvement</b>: Prototyping requires user involvement and allows them to see and interact with a prototype allowing them to provide better and more complete feedback and specifications.<sup id="cite_ref-Crinnion1991p18_7-2" class="reference"><a href="#cite_note-Crinnion1991p18-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> The presence of the prototype being examined by the user prevents many misunderstandings and miscommunications that occur when each side believe the other understands what they said. Since users know the <a href="/wiki/Domain_(software_engineering)" title="Domain (software engineering)">problem domain</a> better than anyone on the development team does, increased interaction can result in a final product that has greater tangible and intangible quality. The final product is more likely to satisfy the user's desire for look, feel and performance. </p> <div class="mw-heading mw-heading2"><h2 id="Disadvantages">Disadvantages</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Software_prototyping&action=edit&section=12" title="Edit section: Disadvantages"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Using, or perhaps misusing, prototyping can also have disadvantages. </p><p><b>Insufficient analysis</b>: The focus on a limited prototype can distract developers from properly analyzing the complete project. This can lead to overlooking better solutions, preparation of incomplete specifications or the conversion of limited prototypes into poorly engineered final projects that are hard to <a href="/wiki/Software_maintenance" title="Software maintenance">maintain</a>. Further, since a prototype is limited in functionality it may not scale well if the prototype is used as the basis of a final deliverable, which may not be noticed if developers are too focused on building a prototype as a model. </p><p><b>User confusion of prototype and finished system</b>: Users can begin to think that a prototype, intended to be thrown away, is actually a final system that merely needs to be finished or polished. (They are, for example, often unaware of the effort needed to add error-checking and security features which a prototype may not have.) This can lead them to expect the prototype to accurately model the performance of the final system when this is not the intent of the developers. Users can also become attached to features that were included in a prototype for consideration and then removed from the specification for a final system. If users are able to require all proposed features be included in the final system this can lead to conflict. </p><p><b>Developer misunderstanding of user objectives</b>: Developers may assume that users share their objectives (e.g. to deliver core functionality on time and within budget), without understanding wider commercial issues. For example, user representatives attending <a href="/wiki/Enterprise_software" title="Enterprise software">Enterprise software</a> (e.g. <a href="/wiki/PeopleSoft" title="PeopleSoft">PeopleSoft</a>) events may have seen demonstrations of "transaction auditing" (where changes are logged and displayed in a difference grid view) without being told that this feature demands additional coding and often requires more hardware to handle extra database accesses. Users might believe they can demand auditing on every field, whereas developers might think this is <a href="/wiki/Feature_creep" title="Feature creep">feature creep</a> because they have made assumptions about the extent of user requirements. If the developer has committed delivery before the user requirements were reviewed, developers are between a rock and a hard place, particularly if user management derives some advantage from their failure to implement requirements. </p><p><b>Developer attachment to prototype:</b> Developers can also become attached to prototypes they have spent a great deal of effort producing; this can lead to problems, such as attempting to convert a limited prototype into a final system when it does not have an appropriate underlying architecture. (This may suggest that throwaway prototyping, rather than evolutionary prototyping, should be used.) </p><p><b>Excessive development time of the prototype</b>: A key property to prototyping is the fact that it is supposed to be done quickly. If the developers lose sight of this fact, they very well may try to develop a prototype that is too complex. When the prototype is thrown away the precisely developed requirements that it provides may not yield a sufficient increase in productivity to make up for the time spent developing the prototype. Users can become stuck in debates over details of the prototype, holding up the development team and delaying the final product. </p><p><b>Expense of implementing prototyping</b>: the start up costs for building a development team focused on prototyping may be high. Many companies have development methodologies in place, and changing them can mean retraining, retooling, or both. Many companies tend to just begin prototyping without bothering to retrain their workers as much as they should. </p> <dl><dd>A common problem with adopting prototyping technology is high expectations for productivity with insufficient effort behind the learning curve. In addition to training for the use of a prototyping technique, there is an often overlooked need for developing corporate and project specific underlying structure to support the technology. When this underlying structure is omitted, lower productivity can often result.<sup id="cite_ref-14" class="reference"><a href="#cite_note-14"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup></dd></dl> <div class="mw-heading mw-heading2"><h2 id="Applicability">Applicability</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Software_prototyping&action=edit&section=13" title="Edit section: Applicability"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>It has been argued that prototyping, in some form or another, should be used all the time. However, prototyping is most beneficial in systems that will have many interactions with the users. </p> <dl><dd>It has been found that prototyping is very effective in the analysis and design of <a href="/w/index.php?title=On-line_systems&action=edit&redlink=1" class="new" title="On-line systems (page does not exist)">on-line systems</a>, especially for <a href="/wiki/Transaction_processing" title="Transaction processing">transaction processing</a>, where the use of screen dialogs is much more in evidence. The greater the interaction between the computer and the user, the greater the benefit is that can be obtained from building a quick system and letting the user play with it.<sup id="cite_ref-Crinnion1991p18_7-3" class="reference"><a href="#cite_note-Crinnion1991p18-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup></dd></dl> <p>Systems with little user interaction, such as <a href="/wiki/Batch_processing" title="Batch processing">batch processing</a> or systems that mostly do calculations, benefit little 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.<sup id="cite_ref-Crinnion1991p18_7-4" class="reference"><a href="#cite_note-Crinnion1991p18-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> </p><p>Prototyping is especially good for designing good <a href="/wiki/Human%E2%80%93computer_interface" class="mw-redirect" title="Human–computer interface">human–computer interfaces</a>. "One of the most productive uses of rapid prototyping to date has been as a tool for iterative user requirements engineering and human–computer interface design."<sup id="cite_ref-Overmyer_8-2" class="reference"><a href="#cite_note-Overmyer-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup> </p> <div class="mw-heading mw-heading3"><h3 id="Dynamic_systems_development_method">Dynamic systems development method</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Software_prototyping&action=edit&section=14" title="Edit section: Dynamic systems development method"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p><a href="/wiki/Dynamic_Systems_Development_Method" class="mw-redirect" title="Dynamic Systems Development Method">Dynamic Systems Development Method</a> (DSDM)<sup id="cite_ref-15" class="reference"><a href="#cite_note-15"><span class="cite-bracket">[</span>15<span class="cite-bracket">]</span></a></sup> is a framework for delivering business solutions that relies heavily upon prototyping as a core technique, and is itself <a href="/wiki/ISO_9001" class="mw-redirect" title="ISO 9001">ISO 9001</a> approved. It expands upon most understood definitions of a prototype. According to DSDM the prototype may be a diagram, a business process, or even a system placed into production. DSDM prototypes are intended to be incremental, evolving from simple forms into more comprehensive ones. </p><p>DSDM prototypes can sometimes be <i>throwaway</i> or <i>evolutionary</i>. Evolutionary prototypes may be evolved horizontally (breadth then depth) or vertically (each section is built in detail with additional iterations detailing subsequent sections). Evolutionary prototypes can eventually evolve into final systems. </p><p>The four categories of prototypes as recommended by DSDM are: </p> <ul><li><b>Business prototypes</b> – used to design and demonstrates the business processes being automated.</li> <li><b>Usability prototypes</b> – used to define, refine, and demonstrate user interface design usability, accessibility, look and feel.</li> <li><b>Performance and capacity prototypes</b> – used to define, demonstrate, and predict how systems will perform under peak loads as well as to demonstrate and evaluate other non-functional aspects of the system (transaction rates, data storage volume, response time, etc.)</li> <li><b>Capability/technique prototypes</b> – used to develop, demonstrate, and evaluate a design approach or concept.</li></ul> <p>The <a href="/wiki/Dynamic_systems_development_method" title="Dynamic systems development method">DSDM</a> lifecycle of a prototype is to: </p> <ol><li>Identify prototype</li> <li>Agree to a plan</li> <li>Create the prototype</li> <li>Review the prototype</li></ol> <div class="mw-heading mw-heading3"><h3 id="Operational_prototyping">Operational prototyping</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Software_prototyping&action=edit&section=15" title="Edit section: Operational prototyping"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Operational prototyping was proposed by Alan Davis as a way to integrate throwaway and evolutionary prototyping with conventional system development. "It offers the best of both the quick-and-dirty and conventional-development worlds in a sensible manner. Designers develop only well-understood features in building the evolutionary baseline, while using throwaway prototyping to experiment with the poorly understood features."<sup id="cite_ref-Davis1992p71_9-1" class="reference"><a href="#cite_note-Davis1992p71-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup> </p><p>Davis' belief is that to try to "retrofit quality onto a rapid prototype" is not the correct method when trying to combine the two approaches. His idea is to engage in an evolutionary prototyping methodology and rapidly prototype the features of the system after each evolution. </p><p>The specific methodology follows these steps:<sup id="cite_ref-Davis1992p71_9-2" class="reference"><a href="#cite_note-Davis1992p71-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup> </p> <ul><li>An evolutionary prototype is constructed and made into a baseline using conventional development strategies, specifying and implementing only the requirements that are well understood.</li> <li>Copies of the baseline are sent to multiple customer sites along with a trained prototyper.</li> <li>At each site, the prototyper watches the user at the system.</li> <li>Whenever the user encounters a problem or thinks of a new feature or requirement, the prototyper logs it. This frees the user from having to record the problem, and allows him to continue working.</li> <li>After the user session is over, the prototyper constructs a throwaway prototype on top of the baseline system.</li> <li>The user now uses the new system and evaluates. If the new changes aren't effective, the prototyper removes them.</li> <li>If the user likes the changes, the prototyper writes feature-enhancement requests and forwards them to the development team.</li> <li>The development team, with the change requests in hand from all the sites, then produce a new evolutionary prototype using conventional methods.</li></ul> <p>Obviously, a key to this method is to have well trained prototypers available to go to the user sites. The operational prototyping methodology has many benefits in systems that are complex and have few known requirements in advance. </p> <div class="mw-heading mw-heading3"><h3 id="Evolutionary_systems_development">Evolutionary systems development</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Software_prototyping&action=edit&section=16" title="Edit section: Evolutionary systems development"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p><a href="/wiki/Evolutionary_Systems" class="mw-redirect" title="Evolutionary Systems">Evolutionary Systems</a> Development is a class of methodologies that attempt to formally implement evolutionary prototyping. One particular type, called <a href="/w/index.php?title=Systemscraft&action=edit&redlink=1" class="new" title="Systemscraft (page does not exist)">Systemscraft</a> is described by John Crinnion in his book <i>Evolutionary Systems Development</i>. </p><p>Systemscraft was designed as a 'prototype' methodology that should be modified and adapted to fit the specific environment in which it was implemented. </p> <dl><dd>Systemscraft was not designed as a rigid 'cookbook' approach to the development process. It is now generally recognised[sic] that a good methodology should be flexible enough to be adjustable to suit all kinds of environment and situation...<sup id="cite_ref-Crinnion1991p18_7-5" class="reference"><a href="#cite_note-Crinnion1991p18-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup></dd></dl> <p>The basis of Systemscraft, not unlike evolutionary prototyping, is to create a working system from the initial requirements and build upon it in a series of revisions. Systemscraft places heavy emphasis on traditional analysis being used throughout the development of the system. </p> <div class="mw-heading mw-heading3"><h3 id="Evolutionary_rapid_development">Evolutionary rapid development</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Software_prototyping&action=edit&section=17" title="Edit section: Evolutionary rapid development"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p><a href="/wiki/Evolutionary_Rapid_Development" class="mw-redirect" title="Evolutionary Rapid Development">Evolutionary Rapid Development</a> (ERD)<sup id="cite_ref-16" class="reference"><a href="#cite_note-16"><span class="cite-bracket">[</span>16<span class="cite-bracket">]</span></a></sup> was developed by the Software Productivity Consortium, a technology development and integration agent for the Information Technology Office of the <a href="/wiki/Defense_Advanced_Research_Projects_Agency" class="mw-redirect" title="Defense Advanced Research Projects Agency">Defense Advanced Research Projects Agency</a> (DARPA). </p> <dl><dd>Fundamental to ERD is the concept of composing software systems based on the reuse of components, the use of software templates and on an architectural 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 timeboxes with frequent customer interaction.</dd></dl> <dl><dd>Key to the success of the ERD-based projects is parallel exploratory analysis and development of features, infrastructures, and components with and adoption of leading edge technologies enabling the quick reaction to changes in technologies, the marketplace, or customer requirements.<sup id="cite_ref-SoftwareProductivityConsortium1997p6_10-1" class="reference"><a href="#cite_note-SoftwareProductivityConsortium1997p6-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup></dd></dl> <p>To elicit customer/user input, frequent scheduled and ad hoc/impromptu meetings with the stakeholders are held. Demonstrations of system capabilities are held to solicit feedback before design/implementation decisions are solidified. Frequent releases (e.g., <a href="/wiki/Development_stage#Beta" class="mw-redirect" title="Development stage">betas</a>) are made available for use to provide insight into how the system could better support user and customer needs. This assures that the system evolves to satisfy existing user needs. </p><p>The design framework for the system is based on using existing published or de facto standards. The system is organized to allow for evolving a set of capabilities that includes considerations for performance, capacities, and functionality. The architecture is defined in terms of abstract interfaces that encapsulate the services and their implementation (e.g., COTS applications). The architecture serves as a template to be used for guiding development of more than a single instance of the system. It allows for multiple application components to be used to implement the services. A core set of functionality not likely to change is also identified and established. </p><p>The ERD process is structured to use demonstrated functionality rather than paper products as a way for <a href="/wiki/Project_stakeholder" title="Project stakeholder">stakeholders</a> to communicate their needs and expectations. Central to this goal of rapid delivery is the use of the "<a href="/wiki/Timeboxing" title="Timeboxing">timebox</a>" method. Timeboxes are fixed periods of time in which specific tasks (e.g., developing a set of functionality) must be performed. Rather than allowing time to expand to satisfy some vague set of goals, the time is fixed (both in terms of calendar weeks and person-hours) and a set of goals is defined that realistically can be achieved within these constraints. To keep development from degenerating into a "<a href="/wiki/Random_walk" title="Random walk">random walk</a>," long-range plans are defined to guide the iterations. These plans provide a vision for the overall system and set boundaries (e.g., constraints) for the project. Each iteration within the process is conducted in the context of these long-range plans. </p><p>Once an architecture is established, software is integrated and tested on a daily basis. This allows the team to assess progress objectively and identify potential problems quickly. Since small amounts of the system are integrated at one time, diagnosing and removing the defect is rapid. User demonstrations can be held at short notice since the system is generally ready to exercise at all times. </p> <div class="mw-heading mw-heading2"><h2 id="Tools">Tools</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Software_prototyping&action=edit&section=18" title="Edit section: Tools"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Efficiently using prototyping requires that an organization have the proper tools and a staff trained to use those tools. Tools used in prototyping can vary from individual tools, such as <a href="/wiki/4th_generation_language" class="mw-redirect" title="4th generation language">4th generation programming languages</a> used for rapid prototyping to complex integrated <a href="/wiki/Computer-aided_software_engineering" title="Computer-aided software engineering">CASE</a> tools. 4th generation <a href="/wiki/Visual_programming_languages" class="mw-redirect" title="Visual programming languages">visual programming languages</a> like <a href="/wiki/Visual_Basic" title="Visual Basic">Visual Basic</a> and <a href="/wiki/ColdFusion" class="mw-redirect" title="ColdFusion">ColdFusion</a> are frequently used since they are cheap, well known and relatively easy and fast to use. CASE tools, supporting requirements analysis, like the Requirements Engineering Environment (see below) are often developed or selected by the military or large organizations. Object oriented tools are also being developed like <a href="/w/index.php?title=LYMB&action=edit&redlink=1" class="new" title="LYMB (page does not exist)">LYMB</a> from the <a href="/wiki/General_Electric" title="General Electric">GE</a> Research and Development Center. Users may prototype elements of an application themselves in a <a href="/wiki/Spreadsheet" title="Spreadsheet">spreadsheet</a>. </p><p>As web-based applications continue to grow in popularity, so too, have the tools for prototyping such applications. Frameworks such as <a href="/wiki/Twitter_Bootstrap" class="mw-redirect" title="Twitter Bootstrap">Bootstrap</a>, <a href="/wiki/Foundation_(framework)" title="Foundation (framework)">Foundation</a>, and <a href="/wiki/AngularJS" title="AngularJS">AngularJS</a> provide the tools necessary to quickly structure a <a href="/wiki/Proof_of_concept#Software_development" title="Proof of concept">proof of concept</a>. These frameworks typically consist of a set of controls, interactions, and design guidelines that enable developers to quickly prototype web applications. </p> <div class="mw-heading mw-heading3"><h3 id="Screen_generators,_design_tools,_and_software_factories"><span id="Screen_generators.2C_design_tools.2C_and_software_factories"></span>Screen generators, design tools, and software factories</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Software_prototyping&action=edit&section=19" title="Edit section: Screen generators, design tools, and software factories"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Screen generating programs are also commonly used and they enable prototypers to show user's systems that do not function, but show what the screens may look like. Developing <a href="/wiki/Human%E2%80%93computer_interaction" title="Human–computer interaction">Human Computer Interfaces</a> can sometimes be the critical part of the development effort, since to the users the interface essentially is the system. </p><p><a href="/wiki/Software_factory" title="Software factory">Software factories</a> can generate code by combining ready-to-use modular components. This makes them ideal for prototyping applications, since this approach can quickly deliver programs with the desired behaviour, with a minimal amount of manual coding. </p> <div class="mw-heading mw-heading3"><h3 id="Application_definition_or_simulation_software">Application definition or simulation software</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Software_prototyping&action=edit&section=20" title="Edit section: Application definition or simulation software"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>A new class of software called <b>Application definition or simulation software</b> enables <a href="/wiki/User_(computing)" title="User (computing)">users</a> to rapidly build lightweight, <a href="/wiki/Animation" title="Animation">animated</a> <a href="/wiki/Simulation" title="Simulation">simulations</a> of another computer program, without writing <a href="/wiki/Source_code" title="Source code">code</a>. Application simulation software allows both technical and non-technical users to experience, test, collaborate and validate the simulated program, and provides reports such as <a href="/wiki/Annotation" title="Annotation">annotations</a>, <a href="/wiki/Screenshot" title="Screenshot">screenshot</a> and <a href="/wiki/Schematic" title="Schematic">schematics</a>. As a solution specification technique, Application Simulation falls between low-risk, but limited, text or drawing-based <a href="/wiki/Mock-up" class="mw-redirect" title="Mock-up">mock-ups</a> (or <a href="/wiki/Website_wireframe" title="Website wireframe">wireframes</a>) sometimes called <i>paper-based prototyping</i>, and time-consuming, high-risk code-based <a href="/wiki/Prototype" title="Prototype">prototypes</a>, allowing software professionals to validate requirements and design choices early on, before development begins. In doing so, the risks and costs associated with software implementations can be dramatically reduced.<sup id="cite_ref-17" class="reference"><a href="#cite_note-17"><span class="cite-bracket">[</span>17<span class="cite-bracket">]</span></a></sup> </p><p>To simulate applications one can also use software that simulates real-world software programs for <a href="/wiki/Computer-based_training" class="mw-redirect" title="Computer-based training">computer-based training</a>, demonstration, and customer support, such as <a href="/wiki/Screencasting_software" class="mw-redirect" title="Screencasting software">screencasting software</a> as those areas are closely related. </p> <div class="mw-heading mw-heading3"><h3 id="Requirements_Engineering_Environment">Requirements Engineering Environment</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Software_prototyping&action=edit&section=21" title="Edit section: Requirements Engineering Environment"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>"The Requirements Engineering Environment (REE), under development at <a href="/wiki/Rome_Laboratory" title="Rome Laboratory">Rome Laboratory</a> since 1985, provides an integrated toolset for rapidly representing, building, and executing models of critical aspects of complex systems."<sup id="cite_ref-AcostaBurnsRzepkaSidoran1994_18-0" class="reference"><a href="#cite_note-AcostaBurnsRzepkaSidoran1994-18"><span class="cite-bracket">[</span>18<span class="cite-bracket">]</span></a></sup> </p><p>Requirements Engineering Environment is currently used by the United States Air Force to develop systems. It is: </p> <dl><dd>an integrated set of tools that allows systems analysts to rapidly build functional, user interface, and performance prototype models of system components. These modeling activities are performed to gain a greater understanding of complex systems and lessen the impact that inaccurate requirement specifications have on cost and scheduling during the system development process. Models can be constructed easily, and at varying levels of abstraction or granularity, depending on the specific behavioral aspects of the model being exercised.<sup id="cite_ref-AcostaBurnsRzepkaSidoran1994_18-1" class="reference"><a href="#cite_note-AcostaBurnsRzepkaSidoran1994-18"><span class="cite-bracket">[</span>18<span class="cite-bracket">]</span></a></sup></dd></dl> <p>REE is composed of three parts. The first, called proto is a CASE tool specifically designed to support rapid prototyping. The second part is called the Rapid Interface Prototyping System or RIP, which is a collection of tools that facilitate the creation of user interfaces. The third part of REE is a user interface to RIP and proto that is graphical and intended to be easy to use. </p><p>Rome Laboratory, the developer of REE, intended that to support their internal requirements gathering methodology. Their method has three main parts: </p> <ul><li>Elicitation from various sources (users, interfaces to other systems), specification, and consistency checking</li> <li>Analysis that the needs of diverse users taken together do not conflict and are technically and economically feasible</li> <li>Validation that requirements so derived are an accurate reflection of user needs.<sup id="cite_ref-AcostaBurnsRzepkaSidoran1994_18-2" class="reference"><a href="#cite_note-AcostaBurnsRzepkaSidoran1994-18"><span class="cite-bracket">[</span>18<span class="cite-bracket">]</span></a></sup></li></ul> <p>In 1996, Rome Labs contracted Software Productivity Solutions (SPS) to further enhance REE to create "a commercial quality REE that supports requirements specification, simulation, user interface prototyping, mapping of requirements to hardware architectures, and code generation..."<sup id="cite_ref-19" class="reference"><a href="#cite_note-19"><span class="cite-bracket">[</span>19<span class="cite-bracket">]</span></a></sup> This system is named the Advanced Requirements Engineering Workstation or AREW. </p> <div class="mw-heading mw-heading3"><h3 id="Non-relational_environments">Non-relational environments</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Software_prototyping&action=edit&section=22" title="Edit section: Non-relational environments"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Non-relational definition of data (e.g. using <a href="/wiki/Cach%C3%A9_(software)" class="mw-redirect" title="Caché (software)">Caché</a> or associative models) can help make end-user prototyping more productive by delaying or avoiding the need to <a href="/wiki/Database_normalization" title="Database normalization">normalize</a> data at every iteration of a simulation. This may yield earlier/greater clarity of business requirements, though it does not specifically confirm that requirements are technically and economically feasible in the target production system. </p> <div class="mw-heading mw-heading3"><h3 id="PSDL">PSDL</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Software_prototyping&action=edit&section=23" title="Edit section: PSDL"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>PSDL is a prototype description language to describe real-time software.<sup id="cite_ref-20" class="reference"><a href="#cite_note-20"><span class="cite-bracket">[</span>20<span class="cite-bracket">]</span></a></sup> The associated tool set is CAPS (Computer Aided Prototyping System).<sup id="cite_ref-21" class="reference"><a href="#cite_note-21"><span class="cite-bracket">[</span>21<span class="cite-bracket">]</span></a></sup> Prototyping software systems with hard real-time requirements is challenging because timing constraints introduce implementation and hardware dependencies. PSDL addresses these issues by introducing control abstractions that include declarative timing constraints. CAPS uses this information to automatically generate code and associated real-time schedules, monitor timing constraints during prototype execution, and simulate execution in proportional real time relative to a set of parameterized hardware models. It also provides default assumptions that enable execution of incomplete prototype descriptions, integrates prototype construction with a software reuse repository for rapidly realizing efficient implementations, and provides support for rapid evolution of requirements and designs.<sup id="cite_ref-22" class="reference"><a href="#cite_note-22"><span class="cite-bracket">[</span>22<span class="cite-bracket">]</span></a></sup> </p> <div class="mw-heading mw-heading2"><h2 id="References">References</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Software_prototyping&action=edit&section=24" title="Edit section: References"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <style data-mw-deduplicate="TemplateStyles:r1239543626">.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}</style><div class="reflist"> <div class="mw-references-wrap mw-references-columns"><ol class="references"> <li id="cite_note-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-1">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("//upload.wikimedia.org/wikipedia/commons/6/65/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("//upload.wikimedia.org/wikipedia/commons/d/d6/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("//upload.wikimedia.org/wikipedia/commons/a/aa/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("//upload.wikimedia.org/wikipedia/commons/4/4c/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}</style><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.bespokesoftwaredevelopment.com/software-prototyping">"Software Prototyping UK | Prototype Software Development"</a>. <i>www.bespokesoftwaredevelopment.com</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2024-01-28</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=www.bespokesoftwaredevelopment.com&rft.atitle=Software+Prototyping+UK+%7C+Prototype+Software+Development&rft_id=https%3A%2F%2Fwww.bespokesoftwaredevelopment.com%2Fsoftware-prototyping&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASoftware+prototyping" class="Z3988"></span></span> </li> <li id="cite_note-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-2">^</a></b></span> <span class="reference-text">Todd Grimm: The Human Condition: A Justification for Rapid Prototyping. Time Compression Technologies, vol. 3 no. 3. Accelerated Technologies, Inc. May 1998 . Page 1. <a rel="nofollow" class="external autonumber" href="http://www.tagrimm.com/publications/art-human-1998.html">[1]</a></span> </li> <li id="cite_note-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-3">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.ingsoftware.com/software-prototyping">"Software Prototyping - INGSOFTWARE"</a>. <i>ingsoftware.com</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2018-06-27</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=ingsoftware.com&rft.atitle=Software+Prototyping+-+INGSOFTWARE&rft_id=https%3A%2F%2Fwww.ingsoftware.com%2Fsoftware-prototyping&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASoftware+prototyping" class="Z3988"></span></span> </li> <li id="cite_note-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-4">^</a></b></span> <span class="reference-text">Smith MF <i>Software Prototyping: Adoption, Practice and Management</i>. McGraw-Hill, London (1991).</span> </li> <li id="cite_note-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-5">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFDewarFisher_Jr.SchonbergFroelich1980" class="citation book cs1">Dewar, Robert B. K.; Fisher Jr., Gerald A.; Schonberg, Edmond; Froelich, Robert; Bryant, Stephen; Goss, Clinton F.; Burke, Michael (November 1980). "The NYU Ada translator and interpreter". <i>Proceeding of the ACM-SIGPLAN symposium on Ada programming language - SIGPLAN '80</i>. Vol. 15. pp. 194–201. <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F948632.948659">10.1145/948632.948659</a>. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/0-89791-030-3" title="Special:BookSources/0-89791-030-3"><bdi>0-89791-030-3</bdi></a>. <a href="/wiki/S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a> <a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:10586359">10586359</a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=bookitem&rft.atitle=The+NYU+Ada+translator+and+interpreter&rft.btitle=Proceeding+of+the+ACM-SIGPLAN+symposium+on+Ada+programming+language+-+SIGPLAN+%2780&rft.pages=194-201&rft.date=1980-11&rft_id=https%3A%2F%2Fapi.semanticscholar.org%2FCorpusID%3A10586359%23id-name%3DS2CID&rft_id=info%3Adoi%2F10.1145%2F948632.948659&rft.isbn=0-89791-030-3&rft.aulast=Dewar&rft.aufirst=Robert+B.+K.&rft.au=Fisher+Jr.%2C+Gerald+A.&rft.au=Schonberg%2C+Edmond&rft.au=Froelich%2C+Robert&rft.au=Bryant%2C+Stephen&rft.au=Goss%2C+Clinton+F.&rft.au=Burke%2C+Michael&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASoftware+prototyping" class="Z3988"></span></span> </li> <li id="cite_note-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-6">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFSofTech_Inc.1983" class="citation web cs1">SofTech Inc. (1983-04-11). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20120312080046/http://oai.dtic.mil/oai/oai?verb=getRecord&metadataPrefix=html&identifier=ADA136759">"Ada Compiler Validation Summary Report: NYU Ada/ED, Version 19.7 V-001"</a>. Archived from <a rel="nofollow" class="external text" href="http://oai.dtic.mil/oai/oai?verb=getRecord&metadataPrefix=html&identifier=ADA136759">the original</a> on 2012-03-12<span class="reference-accessdate">. Retrieved <span class="nowrap">2010-12-16</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Ada+Compiler+Validation+Summary+Report%3A+NYU+Ada%2FED%2C+Version+19.7+V-001&rft.date=1983-04-11&rft.au=SofTech+Inc.&rft_id=http%3A%2F%2Foai.dtic.mil%2Foai%2Foai%3Fverb%3DgetRecord%26metadataPrefix%3Dhtml%26identifier%3DADA136759&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASoftware+prototyping" class="Z3988"></span></span> </li> <li id="cite_note-Crinnion1991p18-7"><span class="mw-cite-backlink">^ <a href="#cite_ref-Crinnion1991p18_7-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-Crinnion1991p18_7-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-Crinnion1991p18_7-2"><sup><i><b>c</b></i></sup></a> <a href="#cite_ref-Crinnion1991p18_7-3"><sup><i><b>d</b></i></sup></a> <a href="#cite_ref-Crinnion1991p18_7-4"><sup><i><b>e</b></i></sup></a> <a href="#cite_ref-Crinnion1991p18_7-5"><sup><i><b>f</b></i></sup></a></span> <span class="reference-text">John Crinnion: Evolutionary Systems Development, a practical guide to the use of prototyping within a structured systems methodology. Plenum Press, New York, 1991. Page 18.</span> </li> <li id="cite_note-Overmyer-8"><span class="mw-cite-backlink">^ <a href="#cite_ref-Overmyer_8-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-Overmyer_8-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-Overmyer_8-2"><sup><i><b>c</b></i></sup></a></span> <span class="reference-text">S. P. Overmyer: Revolutionary vs. Evolutionary Rapid Prototyping: Balancing Software Productivity and HCI Design Concerns. Center of Excellence in Command, Control, Communications and Intelligence (C3I), George Mason University, 4400 University Drive, Fairfax, Virginia.</span> </li> <li id="cite_note-Davis1992p71-9"><span class="mw-cite-backlink">^ <a href="#cite_ref-Davis1992p71_9-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-Davis1992p71_9-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-Davis1992p71_9-2"><sup><i><b>c</b></i></sup></a></span> <span class="reference-text">Alan M. Davis: Operational Prototyping: A new Development Approach. IEEE Software, September 1992. Page 71.</span> </li> <li id="cite_note-SoftwareProductivityConsortium1997p6-10"><span class="mw-cite-backlink">^ <a href="#cite_ref-SoftwareProductivityConsortium1997p6_10-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-SoftwareProductivityConsortium1997p6_10-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text">Software Productivity Consortium: Evolutionary Rapid Development. SPC document SPC-97057-CMC, version 01.00.04, June 1997. Herndon, Va. Page 6.</span> </li> <li id="cite_note-11"><span class="mw-cite-backlink"><b><a href="#cite_ref-11">^</a></b></span> <span class="reference-text">Davis. Page 72-73. Citing: E. Bersoff and A. Davis, Impacts of Life Cycle Models of Software Configuration Management. Comm. ACM, Aug. 1991, pp. 104–118</span> </li> <li id="cite_note-12"><span class="mw-cite-backlink"><b><a href="#cite_ref-12">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFKomatineni" class="citation web cs1">Komatineni, Satya. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20161206150207/http://www.onjava.com/pub/a/onjava/2006/11/15/reshaping-it-project-delivery-through-extreme-prototyping.html?page=1">"Reshaping IT Project Delivery Through Extreme Prototyping"</a>. Archived from <a rel="nofollow" class="external text" href="http://www.onjava.com/pub/a/onjava/2006/11/15/reshaping-it-project-delivery-through-extreme-prototyping.html?page=1">the original</a> on 2016-12-06.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Reshaping+IT+Project+Delivery+Through+Extreme+Prototyping&rft.aulast=Komatineni&rft.aufirst=Satya&rft_id=http%3A%2F%2Fwww.onjava.com%2Fpub%2Fa%2Fonjava%2F2006%2F11%2F15%2Freshaping-it-project-delivery-through-extreme-prototyping.html%3Fpage%3D1&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASoftware+prototyping" class="Z3988"></span></span> </li> <li id="cite_note-13"><span class="mw-cite-backlink"><b><a href="#cite_ref-13">^</a></b></span> <span class="reference-text">Adapted from C. Melissa Mcclendon, Larry Regot, Gerri Akers.</span> </li> <li id="cite_note-14"><span class="mw-cite-backlink"><b><a href="#cite_ref-14">^</a></b></span> <span class="reference-text">Joseph E. Urban: Software Prototyping and Requirements Engineering. Rome Laboratory, Rome, NY.</span> </li> <li id="cite_note-15"><span class="mw-cite-backlink"><b><a href="#cite_ref-15">^</a></b></span> <span class="reference-text">Dynamic Systems Development Method Consortium. <a rel="nofollow" class="external free" href="https://web.archive.org/web/20060209072841/http://na.dsdm.org/">https://web.archive.org/web/20060209072841/http://na.dsdm.org/</a></span> </li> <li id="cite_note-16"><span class="mw-cite-backlink"><b><a href="#cite_ref-16">^</a></b></span> <span class="reference-text">Adapted from Software Productivity Consortium. PPS 10–13.</span> </li> <li id="cite_note-17"><span class="mw-cite-backlink"><b><a href="#cite_ref-17">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://www.cio.com/article/print/28501">How Simulation Software Can Streamline Application Development</a> <a rel="nofollow" class="external text" href="https://archive.today/20120722204743/http://www.cio.com/article/print/28501">Archived</a> 2012-07-22 at <a href="/wiki/Archive.today" title="Archive.today">archive.today</a></span> </li> <li id="cite_note-AcostaBurnsRzepkaSidoran1994-18"><span class="mw-cite-backlink">^ <a href="#cite_ref-AcostaBurnsRzepkaSidoran1994_18-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-AcostaBurnsRzepkaSidoran1994_18-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-AcostaBurnsRzepkaSidoran1994_18-2"><sup><i><b>c</b></i></sup></a></span> <span class="reference-text">Dr. Ramon Acosta, Carla Burns, William Rzepka, and James Sidoran. Applying Rapid Prototyping Techniques in the Requirements Engineering Environment. IEEE, 1994. <a rel="nofollow" class="external autonumber" href="https://web.archive.org/web/19990421115836/http://www.stsc.hill.af.mil/CrossTalk/1994/oct/xt94d10g.html">[2]</a></span> </li> <li id="cite_note-19"><span class="mw-cite-backlink"><b><a href="#cite_ref-19">^</a></b></span> <span class="reference-text">Software Productivity Solutions, Incorporated. Advanced Requirements Engineering Workstation (AREW). 1996. <a rel="nofollow" class="external autonumber" href="https://web.archive.org/web/20070927141008/http://www.sps.com/company/techfocus/modeling/arew.html">[3]</a></span> </li> <li id="cite_note-20"><span class="mw-cite-backlink"><b><a href="#cite_ref-20">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFLuqiBerzins,_Yeh1988" class="citation journal cs1">Luqi; Berzins, Yeh (October 1988). <a rel="nofollow" class="external text" href="https://calhoun.nps.edu/bitstream/10945/39162/1/inc_Luqi_a_prototyping_1988.pdf">"A Prototyping Language for Real-Time Software"</a> <span class="cs1-format">(PDF)</span>. <i>IEEE Transactions on Software Engineering</i>. <b>14</b> (10): 1409–1423. <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1109%2F32.6186">10.1109/32.6186</a>. <a href="/wiki/Hdl_(identifier)" class="mw-redirect" title="Hdl (identifier)">hdl</a>:<a rel="nofollow" class="external text" href="https://hdl.handle.net/10945%2F39162">10945/39162</a>. <a href="/wiki/S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a> <a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:35348234">35348234</a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.jtitle=IEEE+Transactions+on+Software+Engineering&rft.atitle=A+Prototyping+Language+for+Real-Time+Software&rft.volume=14&rft.issue=10&rft.pages=1409-1423&rft.date=1988-10&rft_id=info%3Ahdl%2F10945%2F39162&rft_id=https%3A%2F%2Fapi.semanticscholar.org%2FCorpusID%3A35348234%23id-name%3DS2CID&rft_id=info%3Adoi%2F10.1109%2F32.6186&rft.au=Luqi&rft.au=Berzins%2C+Yeh&rft_id=https%3A%2F%2Fcalhoun.nps.edu%2Fbitstream%2F10945%2F39162%2F1%2Finc_Luqi_a_prototyping_1988.pdf&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASoftware+prototyping" class="Z3988"></span></span> </li> <li id="cite_note-21"><span class="mw-cite-backlink"><b><a href="#cite_ref-21">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFLuqiKetabchi1988" class="citation journal cs1">Luqi; Ketabchi (March 1988). "A Computer-Aided Prototyping System". <i>IEEE Software</i>. <b>5</b> (2): 66–72. <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1109%2F52.2013">10.1109/52.2013</a>. <a href="/wiki/Hdl_(identifier)" class="mw-redirect" title="Hdl (identifier)">hdl</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://hdl.handle.net/10945%2F43616">10945/43616</a></span>. <a href="/wiki/S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a> <a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:15541544">15541544</a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.jtitle=IEEE+Software&rft.atitle=A+Computer-Aided+Prototyping+System&rft.volume=5&rft.issue=2&rft.pages=66-72&rft.date=1988-03&rft_id=info%3Ahdl%2F10945%2F43616&rft_id=https%3A%2F%2Fapi.semanticscholar.org%2FCorpusID%3A15541544%23id-name%3DS2CID&rft_id=info%3Adoi%2F10.1109%2F52.2013&rft.au=Luqi&rft.au=Ketabchi&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASoftware+prototyping" class="Z3988"></span></span> </li> <li id="cite_note-22"><span class="mw-cite-backlink"><b><a href="#cite_ref-22">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFLuqi1989" class="citation journal cs1">Luqi (May 1989). <a rel="nofollow" class="external text" href="https://zenodo.org/record/1232144">"Software Evolution through Rapid Prototyping"</a>. <i>IEEE Computer</i>. <b>22</b> (5): 13–25. <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1109%2F2.27953">10.1109/2.27953</a>. <a href="/wiki/Hdl_(identifier)" class="mw-redirect" title="Hdl (identifier)">hdl</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://hdl.handle.net/10945%2F43610">10945/43610</a></span>. <a href="/wiki/S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a> <a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:1809234">1809234</a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.jtitle=IEEE+Computer&rft.atitle=Software+Evolution+through+Rapid+Prototyping&rft.volume=22&rft.issue=5&rft.pages=13-25&rft.date=1989-05&rft_id=info%3Ahdl%2F10945%2F43610&rft_id=https%3A%2F%2Fapi.semanticscholar.org%2FCorpusID%3A1809234%23id-name%3DS2CID&rft_id=info%3Adoi%2F10.1109%2F2.27953&rft.au=Luqi&rft_id=https%3A%2F%2Fzenodo.org%2Frecord%2F1232144&rfr_id=info%3Asid%2Fen.wikipedia.org%3ASoftware+prototyping" class="Z3988"></span></span> </li> </ol></div></div> <div class="navbox-styles"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374"><style data-mw-deduplicate="TemplateStyles:r1236075235">.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{line-height:1.5em;border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}body.skin--responsive .mw-parser-output .navbox-image img{max-width:none!important}@media print{body.ns-0 .mw-parser-output .navbox{display:none!important}}</style></div><div role="navigation" class="navbox" aria-labelledby="Software_engineering" style="padding:3px"><table class="nowraplinks hlist mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1239400231"><div class="navbar plainlinks hlist navbar-mini"><ul><li class="nv-view"><a href="/wiki/Template:Software_engineering" title="Template:Software engineering"><abbr title="View this template">v</abbr></a></li><li class="nv-talk"><a href="/wiki/Template_talk:Software_engineering" title="Template talk:Software engineering"><abbr title="Discuss this template">t</abbr></a></li><li class="nv-edit"><a href="/wiki/Special:EditPage/Template:Software_engineering" title="Special:EditPage/Template:Software engineering"><abbr title="Edit this template">e</abbr></a></li></ul></div><div id="Software_engineering" style="font-size:114%;margin:0 4em"><a href="/wiki/Software_engineering" title="Software engineering">Software engineering</a></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">Fields</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Computer_programming" title="Computer programming">Computer programming</a></li> <li><a href="/wiki/DevOps" title="DevOps">DevOps</a></li> <li><a href="/wiki/Empirical_software_engineering" title="Empirical software engineering">Empirical software engineering</a></li> <li><a href="/wiki/Experimental_software_engineering" title="Experimental software engineering">Experimental software engineering</a></li> <li><a href="/wiki/Formal_methods" title="Formal methods">Formal methods</a></li> <li><a href="/wiki/Requirements_engineering" title="Requirements engineering">Requirements engineering</a></li> <li><a href="/wiki/Search-based_software_engineering" title="Search-based software engineering">Search-based software engineering</a></li> <li><a href="/wiki/Site_reliability_engineering" title="Site reliability engineering">Site reliability engineering</a></li> <li><a href="/wiki/Social_software_engineering" title="Social software engineering">Social software engineering</a></li> <li><a href="/wiki/Software_deployment" title="Software deployment">Software deployment</a></li> <li><a href="/wiki/Software_design" title="Software design">Software design</a></li> <li><a href="/wiki/Software_maintenance" title="Software maintenance">Software maintenance</a></li> <li><a href="/wiki/Software_testing" title="Software testing">Software testing</a></li> <li><a href="/wiki/Systems_analysis" title="Systems analysis">Systems analysis</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Concepts</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Abstraction_(computer_science)" title="Abstraction (computer science)">Abstraction</a></li> <li><a href="/wiki/Component-based_software_engineering" title="Component-based software engineering">Component-based software engineering</a></li> <li><a href="/wiki/Computer_compatibility" title="Computer compatibility">Software compatibility</a> <ul><li><a href="/wiki/Backward_compatibility" title="Backward compatibility">Backward compatibility</a></li> <li><a href="/wiki/Compatibility_layer" title="Compatibility layer">Compatibility layer</a></li> <li><a href="/wiki/Compatibility_mode" title="Compatibility mode">Compatibility mode</a></li> <li><a href="/wiki/Forward_compatibility" title="Forward compatibility">Forward compatibility</a></li> <li><a href="/wiki/Software_incompatibility" title="Software incompatibility">Software incompatibility</a></li></ul></li> <li><a href="/wiki/Data_modeling" title="Data modeling">Data modeling</a></li> <li><a href="/wiki/Enterprise_architecture" title="Enterprise architecture">Enterprise architecture</a></li> <li><a href="/wiki/Functional_specification" title="Functional specification">Functional specification</a></li> <li><a href="/wiki/Modeling_language" title="Modeling language">Modeling language</a></li> <li><a href="/wiki/Programming_paradigm" title="Programming paradigm">Programming paradigm</a></li> <li><a href="/wiki/Software" title="Software">Software</a></li> <li><a href="/wiki/Software_archaeology" title="Software archaeology">Software archaeology</a></li> <li><a href="/wiki/Software_architecture" title="Software architecture">Software architecture</a></li> <li><a href="/wiki/Software_configuration_management" title="Software configuration management">Software configuration management</a></li> <li><a href="/wiki/Software_development_process" title="Software development process">Software development process/methodology</a></li> <li><a href="/wiki/Software_quality" title="Software quality">Software quality</a></li> <li><a href="/wiki/Software_quality_assurance" title="Software quality assurance">Software quality assurance</a></li> <li><a href="/wiki/Software_verification_and_validation" title="Software verification and validation">Software verification and validation</a></li> <li><a href="/wiki/Software_system" title="Software system">Software system</a></li> <li><a href="/wiki/Structured_analysis" title="Structured analysis">Structured analysis</a> <ul><li><a href="/wiki/Essential_systems_analysis" title="Essential systems analysis">Essential analysis</a></li></ul></li> <li><a href="/wiki/CI/CD" title="CI/CD">CI/CD</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Orientations</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Agile_software_development" title="Agile software development">Agile</a></li> <li><a href="/wiki/Aspect-oriented_programming" title="Aspect-oriented programming">Aspect-oriented</a></li> <li><a href="/wiki/Object-oriented_programming" title="Object-oriented programming">Object orientation</a></li> <li><a href="/wiki/Ontology_(information_science)" title="Ontology (information science)">Ontology</a></li> <li><a href="/wiki/Service-oriented_architecture" title="Service-oriented architecture">Service orientation</a></li> <li><a href="/wiki/Systems_development_life_cycle" title="Systems development life cycle">SDLC</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Models</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%;font-weight:normal;">Developmental</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Agile_software_development" title="Agile software development">Agile</a></li> <li><a href="/wiki/Enterprise_unified_process" title="Enterprise unified process">EUP</a></li> <li><a href="/wiki/Executable_UML" title="Executable UML">Executable UML</a></li> <li><a href="/wiki/Incremental_build_model" title="Incremental build model">Incremental model</a></li> <li><a href="/wiki/Iterative_and_incremental_development" title="Iterative and incremental development">Iterative model</a></li> <li><a class="mw-selflink selflink">Prototype model</a></li> <li><a href="/wiki/Rapid_application_development" title="Rapid application development">RAD</a></li> <li><a href="/wiki/Unified_Process" class="mw-redirect" title="Unified Process">UP</a></li> <li><a href="/wiki/Scrum_(software_development)" title="Scrum (software development)">Scrum</a></li> <li><a href="/wiki/Spiral_model" title="Spiral model">Spiral model</a></li> <li><a href="/wiki/V-model_(software_development)" title="V-model (software development)">V-model</a></li> <li><a href="/wiki/Waterfall_model" title="Waterfall model">Waterfall model</a></li> <li><a href="/wiki/Extreme_programming" title="Extreme programming">XP</a></li> <li><a href="/wiki/Model-driven_engineering" title="Model-driven engineering">Model-driven engineering</a></li> <li><a href="/wiki/Round-trip_engineering" title="Round-trip engineering">Round-trip engineering</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;font-weight:normal;">Other</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/ISO/IEC_15504" title="ISO/IEC 15504">SPICE</a></li> <li><a href="/wiki/Capability_Maturity_Model_Integration" title="Capability Maturity Model Integration">CMMI</a></li> <li><a href="/wiki/Data_model" title="Data model">Data model</a></li> <li><a href="/wiki/Entity%E2%80%93relationship_model" title="Entity–relationship model">ER model</a></li> <li><a href="/wiki/Function_model" title="Function model">Function model</a></li> <li><a href="/wiki/Information_model" title="Information model">Information model</a></li> <li><a href="/wiki/Metamodeling" title="Metamodeling">Metamodeling</a></li> <li><a href="/wiki/Object_model" title="Object model">Object model</a></li> <li><a href="/wiki/Systems_modeling" title="Systems modeling">Systems model</a></li> <li><a href="/wiki/View_model" title="View model">View model</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;font-weight:normal;">Languages</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/IDEF" title="IDEF">IDEF</a></li> <li><a href="/wiki/Unified_Modeling_Language" title="Unified Modeling Language">UML</a></li> <li><a href="/wiki/Universal_Systems_Language" title="Universal Systems Language">USL</a></li> <li><a href="/wiki/Systems_modeling_language" title="Systems modeling language">SysML</a></li></ul> </div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Related fields</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Computer_science" title="Computer science">Computer science</a></li> <li><a href="/wiki/Computer_engineering" title="Computer engineering">Computer engineering</a></li> <li><a href="/wiki/Information_science" title="Information science">Information science</a></li> <li><a href="/wiki/Project_management" title="Project management">Project management</a></li> <li><a href="/wiki/Risk_management" title="Risk management">Risk management</a></li> <li><a href="/wiki/Systems_engineering" title="Systems engineering">Systems engineering</a></li></ul> </div></td></tr><tr><td class="navbox-abovebelow" colspan="2" style="font-weight:bold;"><div> <ul><li><span class="noviewer" typeof="mw:File"><span title="Commons page"><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/4/4a/Commons-logo.svg/12px-Commons-logo.svg.png" decoding="async" width="12" height="16" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/4/4a/Commons-logo.svg/18px-Commons-logo.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/4/4a/Commons-logo.svg/24px-Commons-logo.svg.png 2x" data-file-width="1024" data-file-height="1376" /></span></span> <a href="https://commons.wikimedia.org/wiki/Category:Software_engineering" class="extiw" title="commons:Category:Software engineering">Commons</a></li> <li><span class="noviewer" typeof="mw:File"><span title="Category"><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/16px-Symbol_category_class.svg.png" decoding="async" width="16" height="16" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/23px-Symbol_category_class.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/31px-Symbol_category_class.svg.png 2x" data-file-width="180" data-file-height="185" /></span></span> <a href="/wiki/Category:Software_engineering" title="Category:Software engineering">Category</a></li></ul> </div></td></tr></tbody></table></div> <!-- NewPP limit report Parsed by mw‐web.codfw.main‐f69cdc8f6‐4zjqf Cached time: 20241122143433 Cache expiry: 2592000 Reduced expiry: false Complications: [vary‐revision‐sha1, show‐toc] CPU time usage: 0.460 seconds Real time usage: 0.577 seconds Preprocessor visited node count: 1634/1000000 Post‐expand include size: 61712/2097152 bytes Template argument size: 1850/2097152 bytes Highest expansion depth: 12/100 Expensive parser function count: 4/500 Unstrip recursion depth: 1/20 Unstrip post‐expand size: 58753/5000000 bytes Lua time usage: 0.288/10.000 seconds Lua memory usage: 5832071/52428800 bytes Number of Wikibase entities loaded: 0/400 --> <!-- Transclusion expansion time report (%,ms,calls,template) 100.00% 494.329 1 -total 35.73% 176.636 1 Template:Reflist 24.35% 120.362 4 Template:Cite_web 19.43% 96.046 1 Template:Software_development_process 18.99% 93.851 1 Template:Sidebar_with_collapsible_lists 16.56% 81.849 1 Template:Short_description 11.05% 54.639 1 Template:Software_engineering 10.95% 54.119 2 Template:Navbox 8.91% 44.064 2 Template:Citation_needed 7.92% 39.136 2 Template:Pagetype --> <!-- Saved in parser cache with key enwiki:pcache:idhash:1090852-0!canonical and timestamp 20241122143433 and revision id 1241070369. Rendering was triggered because: page-view --> </div><!--esi <esi:include src="/esitest-fa8a495983347898/content" /> --><noscript><img src="https://login.wikimedia.org/wiki/Special:CentralAutoLogin/start?type=1x1" alt="" width="1" height="1" style="border: none; position: absolute;"></noscript> <div class="printfooter" data-nosnippet="">Retrieved from "<a dir="ltr" href="https://en.wikipedia.org/w/index.php?title=Software_prototyping&oldid=1241070369">https://en.wikipedia.org/w/index.php?title=Software_prototyping&oldid=1241070369</a>"</div></div> <div id="catlinks" class="catlinks" data-mw="interface"><div id="mw-normal-catlinks" class="mw-normal-catlinks"><a href="/wiki/Help:Category" title="Help:Category">Category</a>: <ul><li><a href="/wiki/Category:Software_development" title="Category:Software development">Software development</a></li></ul></div><div id="mw-hidden-catlinks" class="mw-hidden-catlinks mw-hidden-cats-hidden">Hidden categories: <ul><li><a href="/wiki/Category:Webarchive_template_archiveis_links" title="Category:Webarchive template archiveis links">Webarchive template archiveis links</a></li><li><a href="/wiki/Category:Articles_with_short_description" title="Category:Articles with short description">Articles with short description</a></li><li><a href="/wiki/Category:Short_description_matches_Wikidata" title="Category:Short description matches Wikidata">Short description matches Wikidata</a></li><li><a href="/wiki/Category:All_articles_with_unsourced_statements" title="Category:All articles with unsourced statements">All articles with unsourced statements</a></li><li><a href="/wiki/Category:Articles_with_unsourced_statements_from_March_2010" title="Category:Articles with unsourced statements from March 2010">Articles with unsourced statements from March 2010</a></li><li><a href="/wiki/Category:Articles_with_unsourced_statements_from_January_2015" title="Category:Articles with unsourced statements from January 2015">Articles with unsourced statements from January 2015</a></li></ul></div></div> </div> </main> </div> <div class="mw-footer-container"> <footer id="footer" class="mw-footer" > <ul id="footer-info"> <li id="footer-info-lastmod"> This page was last edited on 19 August 2024, at 04:31<span class="anonymous-show"> (UTC)</span>.</li> <li id="footer-info-copyright">Text is available under the <a href="/wiki/Wikipedia:Text_of_the_Creative_Commons_Attribution-ShareAlike_4.0_International_License" title="Wikipedia:Text of the Creative Commons Attribution-ShareAlike 4.0 International License">Creative Commons Attribution-ShareAlike 4.0 License</a>; additional terms may apply. By using this site, you agree to the <a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Terms_of_Use" class="extiw" title="foundation:Special:MyLanguage/Policy:Terms of Use">Terms of Use</a> and <a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy" class="extiw" title="foundation:Special:MyLanguage/Policy:Privacy policy">Privacy Policy</a>. Wikipedia® is a registered trademark of the <a rel="nofollow" class="external text" href="https://wikimediafoundation.org/">Wikimedia Foundation, Inc.</a>, a non-profit organization.</li> </ul> <ul id="footer-places"> <li id="footer-places-privacy"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy">Privacy policy</a></li> <li id="footer-places-about"><a href="/wiki/Wikipedia:About">About Wikipedia</a></li> <li id="footer-places-disclaimers"><a href="/wiki/Wikipedia:General_disclaimer">Disclaimers</a></li> <li id="footer-places-contact"><a href="//en.wikipedia.org/wiki/Wikipedia:Contact_us">Contact Wikipedia</a></li> <li id="footer-places-wm-codeofconduct"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Universal_Code_of_Conduct">Code of Conduct</a></li> <li id="footer-places-developers"><a href="https://developer.wikimedia.org">Developers</a></li> <li id="footer-places-statslink"><a href="https://stats.wikimedia.org/#/en.wikipedia.org">Statistics</a></li> <li id="footer-places-cookiestatement"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Cookie_statement">Cookie statement</a></li> <li id="footer-places-mobileview"><a href="//en.m.wikipedia.org/w/index.php?title=Software_prototyping&mobileaction=toggle_view_mobile" class="noprint stopMobileRedirectToggle">Mobile view</a></li> </ul> <ul id="footer-icons" class="noprint"> <li id="footer-copyrightico"><a href="https://wikimediafoundation.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/static/images/footer/wikimedia-button.svg" width="84" height="29" alt="Wikimedia Foundation" loading="lazy"></a></li> <li id="footer-poweredbyico"><a href="https://www.mediawiki.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/w/resources/assets/poweredby_mediawiki.svg" alt="Powered by MediaWiki" width="88" height="31" loading="lazy"></a></li> </ul> </footer> </div> </div> </div> <div class="vector-settings" id="p-dock-bottom"> <ul></ul> </div><script>(RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgHostname":"mw-web.codfw.main-f69cdc8f6-zvhrd","wgBackendResponseTime":131,"wgPageParseReport":{"limitreport":{"cputime":"0.460","walltime":"0.577","ppvisitednodes":{"value":1634,"limit":1000000},"postexpandincludesize":{"value":61712,"limit":2097152},"templateargumentsize":{"value":1850,"limit":2097152},"expansiondepth":{"value":12,"limit":100},"expensivefunctioncount":{"value":4,"limit":500},"unstrip-depth":{"value":1,"limit":20},"unstrip-size":{"value":58753,"limit":5000000},"entityaccesscount":{"value":0,"limit":400},"timingprofile":["100.00% 494.329 1 -total"," 35.73% 176.636 1 Template:Reflist"," 24.35% 120.362 4 Template:Cite_web"," 19.43% 96.046 1 Template:Software_development_process"," 18.99% 93.851 1 Template:Sidebar_with_collapsible_lists"," 16.56% 81.849 1 Template:Short_description"," 11.05% 54.639 1 Template:Software_engineering"," 10.95% 54.119 2 Template:Navbox"," 8.91% 44.064 2 Template:Citation_needed"," 7.92% 39.136 2 Template:Pagetype"]},"scribunto":{"limitreport-timeusage":{"value":"0.288","limit":"10.000"},"limitreport-memusage":{"value":5832071,"limit":52428800}},"cachereport":{"origin":"mw-web.codfw.main-f69cdc8f6-4zjqf","timestamp":"20241122143433","ttl":2592000,"transientcontent":false}}});});</script> <script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"Article","name":"Software prototyping","url":"https:\/\/en.wikipedia.org\/wiki\/Software_prototyping","sameAs":"http:\/\/www.wikidata.org\/entity\/Q576460","mainEntity":"http:\/\/www.wikidata.org\/entity\/Q576460","author":{"@type":"Organization","name":"Contributors to Wikimedia projects"},"publisher":{"@type":"Organization","name":"Wikimedia Foundation, Inc.","logo":{"@type":"ImageObject","url":"https:\/\/www.wikimedia.org\/static\/images\/wmf-hor-googpub.png"}},"datePublished":"2004-10-22T00:35:07Z","dateModified":"2024-08-19T04:31:43Z","headline":"activity of creating prototypes of software applications"}</script> </body> </html>