Application Development

Why are software projects always late and over budget?

Mathematica can help you deliver on time and within budget.

Rapid Prototyping

more than a buzzword...

interactive, exploratory programming

working prototype helps with specification

design mistakes are easy to correct (nothing is yet cast in stone)

application development before data sources and GUIs are ready

make the customer ask for more...

Software Engineering

interface layers exist already in prototype, simply replace implementation for productive stage

Maintain two version of a package, with the same interface, but different implementations

DBAccessProto.m DBAccess.m
BeginPackage["DBAccess"]
GetData::usage="..."
Begin["`Private`"]

GetData[source_String]:=
  {fakedata,...}

End[]
EndPackage[]
BeginPackage["DBAccess"]
GetData::usage="..."
Begin["`Private`"]
Needs["Database`Database`"]
GetData[source_String]:=
  SQLSelect[...]

End[]
EndPackage[]

In your application, first do this

[Graphics:../Images/london99_gr_2.gif]

later, replace by

[Graphics:../Images/london99_gr_3.gif]

excellent testbed for all parts of the application

documentation integrated with code (usage messages)

What about OO programming?

Proof of concept: QR Streams: custom-built OO framework inside Mathematica, offers all features of OO that make OO programming so successful (http://www.mathdirect.com/products/qrn/).

For prototypes: Classes.m, a freely available OO extension,  see The Mathematica Programmer II.


Converted by Mathematica      November 1, 1999