Software prototyping: Difference between revisions

Content deleted Content added
OAbot (talk | contribs)
m Open access bot: hdl updated in citation with #oabot.
m Reverted 1 edit by 2400:9800:6E1:CD7C:1:0:2C41:A7F8 (talk) to last revision by KH-1
 
(6 intermediate revisions by 6 users not shown)
Line 2:
{{Other uses|Prototype-based programming}}
{{Software development process}}
'''Software prototyping''' is the activity of creating [[prototype]]s of software applications, i.e., incomplete versions of the [[Software|software program]] being developed. It is an activity that can occur in [[Software development process|software development]] and is comparable to [[prototyping]] as known from other fields, such as [[mechanical engineering]] or [[manufacturing]].<ref>{{Cite web |title=Software Prototyping UK {{!}} Prototype Software Development |url=https://www.bespokesoftwaredevelopment.com/software-prototyping |access-date=2024-01-28 |website=www.bespokesoftwaredevelopment.com}}</ref>
 
A prototype typically simulates only a few aspects of, and may be completely different from, the final product.
Line 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 228:
===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>