Software prototyping: Difference between revisions

Content deleted Content added
Tag: Reverted
m Reverted 1 edit by 2400:9800:6E1:CD7C:1:0:2C41:A7F8 (talk) to last revision by KH-1
 
(8 intermediate revisions by 7 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 191:
 
==Tools==
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 [https://www.addevice.io/blog/top-10-tools-for-creating-a-simple-mobile-app-prototype individual tools], such as [[4th generation language|4th generation programming languages]] used for rapid prototyping to complex integrated [[Computer-aided software engineering|CASE]] tools. 4th generation [[visual programming languages]] like [[Visual Basic]] and [[ColdFusion]] 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 [[LYMB]] from the [[General Electric|GE]] Research and Development Center. Users may prototype elements of an application themselves in a [[spreadsheet]].
 
As web-based applications continue to grow in popularity, so too, have the tools for prototyping such applications. Frameworks such as [[Twitter Bootstrap|Bootstrap]], [[Foundation (framework)|Foundation]], and [[AngularJS]] provide the tools necessary to quickly structure a [[Proof of concept#Software development|proof of concept]]. These frameworks typically consist of a set of controls, interactions, and design guidelines that enable developers to quickly prototype web applications.
 
===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>
 
==References==