106 CHAPTER ◆ 1 0 Prototype in Modeling Software
experiment to a final, consolidated version of the trading/investment system. Whatever
the case, prototypes allow product teams to:
● Clarify calculations and expose inconsistencies in specifications.
● Rapidly evaluate alternative methods.
● Deliver intermediate, working versions to end users and other interest parties for feedback.
Furthermore, prototyping leads to:
● Improved morale because progress is visible.
● Early feedback on whether the final trading system will be acceptable.
● Decreased overall code length due to better designs.
● Lower defect rates because of better requirements definition.
● Smoother effort curves, reducing the deadline effect.
10.1. Rapid Development
The term “ rapid development language ” (RDL) refers to any programming language that offers
speedier implementation than do traditional third-generation languages such as C. RDLs
produce their savings by reducing the amount of construction needed to build a product. Shorter
cycles make incremental development methods, such as evolutionary prototyping, practical.
Studies have shown that early introduction of software products is the dominant factor in long-term prof-
itability for many, though not all, products. This holds true for trading/investment systems as well. Early
and often delivery of potentially tradable prototypes is imperative.
Software developed in RDLs is generally better suited to the development of in-house
software, with more limited distribution than systems software. Widely used RDLs in
finance, however, such as Excel, Resolver, and MATLAB, require many fewer lines per
function point relative to other languages. Function points, a language-independent mea sure
of program size based on a weighted sum of the number of inputs, outputs, inquiries, and
files, allow developers to think about program size in a language-independent way, easing
comparison between languages. A low-level language, like Assembler, requires many more
lines of code to implement a function point than does a higher-level language such as C.
A language ’ s level is the number of Assembler statements needed to replace one statement
in the higher-level language. Here are the levels of some different languages:
TABLE 10-1
Language Level Statements per function point
Assembler 1 320
C 2.5 125
C 6.5 50
Excel c. 50 6
C# 12 27
SAS, SPSS 10 30
Java 6.5 50