Software prototyping: Difference between revisions

Content deleted Content added
Advantages: Added an additional advantage.
Tags: Reverted Visual edit
m Reverted 1 edit by 2400:9800:6E1:CD7C:1:0:2C41:A7F8 (talk) to last revision by KH-1
 
(12 intermediate revisions by 11 users not shown)
Line 15:
The practice of prototyping is one of the points [[Frederick P. Brooks]] makes in his 1975 book ''[[The Mythical Man-Month]]'' and his 10-year anniversary article "[[No Silver Bullet]]".
 
An early example of large-scale software prototyping was the implementation of NYU's Ada/ED translator for the [[Ada (programming language)|Ada programming language]].<ref>{{cite journal |title=The NYU Ada Translator and Interpreterbook |first1=Robert B. K. |last1=Dewar |first2=Gerald A. |last2=Fisher Jr. |first3=Edmond |last3=Schonberg |first4=Robert |last4=Froelich |first5=Stephen |last5=Bryant |first6=Clinton F. |last6=Goss |first7=Michael |last7=Burke |journaltitle=ACMProceeding of the ACM-SIGPLAN Noticessymposium on ProceedingsAda ofprogramming thelanguage ACM- SIGPLAN Symposium'80 on|chapter=The theNYU Ada Programmingtranslator and Languageinterpreter |volume=15 |issue=11 |pages=194–201 |date=November 1980 |isbn=0-89791-030-3 |doi=10.1145/948632.948659|s2cid=10586359 }}</ref> It was implemented in [[SETL]] 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.<ref>{{cite web |url=http://oai.dtic.mil/oai/oai?verb=getRecord&metadataPrefix=html&identifier=ADA136759 |title=Ada Compiler Validation Summary Report: NYU Ada/ED, Version 19.7 V-001 |author=SofTech Inc. |date=1983-04-11 |access-date=2010-12-16 |archive-date=2012-03-12 |archive-url=https://web.archive.org/web/20120312080046/http://oai.dtic.mil/oai/oai?verb=getRecord&metadataPrefix=html&identifier=ADA136759 |url-status=dead }}</ref>
 
==Outline==
Line 103:
 
'''Improved and increased user involvement''': 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.<ref name=Crinnion1991p18/> 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 [[___domain (software engineering)|problem ___domain]] 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.
 
'''Achieve buy-in from investors and executives:''' Software prototyping demonstrates to investors and other stakeholders that the app is viable, and often precipitates funding. Software prototypes turn vague concepts that are difficult to describe into something stakeholders can interact with, which makes them more likely to approve and invest in the software.<ref>{{Cite web|date=2018-11-27|title=7 Benefits of Prototyping Mobile Apps to Save Time and Money {{!}} Discover the Importance of Prototyping Apps - Big Fish|url=https://discoverbigfish.com/blog/mobile-app-prototypes-save-time-money.html|access-date=2022-02-09|website=Custom Software Development & App Design Agency - Big Fish|language=en-US}}</ref>
 
==Disadvantages==
Line 198 ⟶ 196:
 
===Screen generators, design tools, and software factories===
[[Screen generator|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 [[Human–computer interaction|Human Computer Interfaces]] can sometimes be the critical part of the development effort, since to the users the interface essentially is the system.
 
[[Software factory|Software factories]] 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.
Line 210 ⟶ 208:
 
===Requirements Engineering Environment===
"The Requirements Engineering Environment (REE), under development at [[Rome Laboratory]] since 1985, provides an integrated toolset for rapidly representing, building, and executing models of critical aspects of complex systems."<ref name="AcostaBurnsRzepkaSidoran1994">Dr. Ramon Acosta, Carla Burns, William Rzepka, and James Sidoran. Applying Rapid Prototyping Techniques in the Requirements Engineering Environment. IEEE, 1994. [https://web.archive.org/web/19990421115836/http://www.stsc.hill.af.mil/CrossTalk/1994/oct/xt94d10g.html]</ref>
 
Requirements Engineering Environment is currently used by the United States Air Force to develop systems. It is:
Line 229 ⟶ 227:
 
===PSDL===
PSDL is a prototype description language to describe real-time software.<ref>{{cite journal|last=Luqi|author2=Berzins, Yeh |title=A Prototyping Language for Real-Time Software|journal=IEEE Transactions on Software Engineering|date=October 1988|volume=14|issue=10|pages=1409–1423|doi=10.1109/32.6186|hdl=10945/39162 |s2cid=35348234 |url=https://calhoun.nps.edu/bitstream/10945/39162/1/inc_Luqi_a_prototyping_1988.pdf}}</ref>
The associated tool set is CAPS (Computer Aided Prototyping System).<ref>{{cite journal|last=Luqi|author2=Ketabchi |title=A Computer-Aided Prototyping System|journal=IEEE Software|date=March 1988|volume=5|issue=2|pages=66–72|doi=10.1109/52.2013|hdl=10945/43616 |s2cid=15541544 |hdl-access=free}}</ref>
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.<ref>{{cite journal|last=Luqi|title=Software Evolution through Rapid Prototyping|journal=IEEE Computer|date=May 1989|volume=22|issue=5|pages=13–25|doi=10.1109/2.27953|hdl=10945/43610|s2cid=1809234|url=https://zenodo.org/record/1232144|hdl-access=free}}</ref>
 
==References==