Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Software prototyping
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==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 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. <!-- See the previous revision if you believe the original meaning was distorted --> ===Application definition or simulation software=== A new class of software called '''Application definition or simulation software''' enables [[user (computing)|users]] to rapidly build lightweight, [[animation|animated]] [[simulation]]s of another computer program, without writing [[source code|code]]. Application simulation software allows both technical and non-technical users to experience, test, collaborate and validate the simulated program, and provides reports such as [[annotation]]s, [[screenshot]] and [[schematic]]s. As a solution specification technique, Application Simulation falls between low-risk, but limited, text or drawing-based [[mock-up]]s (or [[Website wireframe|wireframe]]s) sometimes called ''paper-based prototyping'', and time-consuming, high-risk code-based [[prototype]]s, 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.<ref>[http://www.cio.com/article/print/28501 How Simulation Software Can Streamline Application Development] {{webarchive|url=https://archive.today/20120722204743/http://www.cio.com/article/print/28501 |date=2012-07-22 }}</ref> To simulate applications one can also use software that simulates real-world software programs for [[computer-based training]], demonstration, and customer support, such as [[screencasting software]] as those areas are closely related. ===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: :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.<ref name=AcostaBurnsRzepkaSidoran1994/> 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. Rome Laboratory, the developer of REE, intended that to support their internal requirements gathering methodology. Their method has three main parts: * Elicitation from various sources (users, interfaces to other systems), specification, and consistency checking * Analysis that the needs of diverse users taken together do not conflict and are technically and economically feasible * Validation that requirements so derived are an accurate reflection of user needs.<ref name=AcostaBurnsRzepkaSidoran1994/> 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..."<ref>Software Productivity Solutions, Incorporated. Advanced Requirements Engineering Workstation (AREW). 1996. [https://web.archive.org/web/20070927141008/http://www.sps.com/company/techfocus/modeling/arew.html]</ref> This system is named the Advanced Requirements Engineering Workstation or AREW. ===Non-relational environments=== Non-relational definition of data (e.g. using [[Caché (software)|Caché]] or associative models) can help make end-user prototyping more productive by delaying or avoiding the need to [[Database normalization|normalize]] 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. ===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>
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)