Why are software projects always late and over budget?
Mathematica can help you deliver on time and within budget.
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...
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]](../Images/london99_gr_2.gif)
later, replace by
![[Graphics:../Images/london99_gr_3.gif]](../Images/london99_gr_3.gif)
excellent testbed for all parts of the application
documentation integrated with code (usage messages)
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.