The PREP-SPOP package
The PREP-SPOP package is a Fortran 77 code developed in 1985 by Andrea
Saltelli (JRC) and Tomishitsu Homma (JAERI). The software was designed
to assist users in the implementation of Monte Carlo based uncertainty
and sensitivity analysis.
One of the major drawbacks of the PREP-SPOP package was Fortran itself, which is poorly portable between different compilers. In addition, major features, such as memory allocation and reasonably open support for graphics, are missing with Fortran. Dating back to 1985, one may still be stucked with a software running only on his development machine.
The authors were joking that when Toshi used to came from JAERI to JRC each time he had to change and port software from one Fortran flavour (i.e his institute siemens mainframe in Japan) to another Fortran flavour (i.e JRC siemens mainframe, slightly different siemens mainframe but with a different compiler), and when he went back home he had to port it again to make it running. This may sound curious to a modern java or C# developer but this is the way Fortran is.
In the prep-spop package it was possible to code Sensitivity Analysis together with other Fortran code. Fortran coding was reasonable up to a certain extent (i.e. 1995), but afterwards it would have become obsolete.
One of the major drawbacks of the PREP-SPOP package was Fortran itself, which is poorly portable between different compilers. In addition, major features, such as memory allocation and reasonably open support for graphics, are missing with Fortran. Dating back to 1985, one may still be stucked with a software running only on his development machine.
The authors were joking that when Toshi used to came from JAERI to JRC each time he had to change and port software from one Fortran flavour (i.e his institute siemens mainframe in Japan) to another Fortran flavour (i.e JRC siemens mainframe, slightly different siemens mainframe but with a different compiler), and when he went back home he had to port it again to make it running. This may sound curious to a modern java or C# developer but this is the way Fortran is.
In the prep-spop package it was possible to code Sensitivity Analysis together with other Fortran code. Fortran coding was reasonable up to a certain extent (i.e. 1995), but afterwards it would have become obsolete.
SimLab from 1999 to 2004
A user interface was a key feature for a software in 1999 especially in
order to provide a nice impact on first time users. The first idea goes
to Windows (3.1, 9x and especially NT) which had quite a good diffusion
in administration and universities and the second idea to a desktop
application. In total no major design effort was made, the only
significant choice was about the ILOG libraries for Rendering (graphs)
and Graphical ToolKit (i.e. Buttons and Panes).
A desktop application reproducing the current working procedure was developed, this is what has been called SimLab up to version 2.2. The application has been reasonably successful, in particular for didactic purposes. A consistent set of demos and a set of new features has been added in the years between 1999 (Version 1.0) up to 2003 (Version 2.2).
Unfortunately support for development got lost in favour of a software that was more user friendly, had a set of demos and was reasonably targeted to didactic purposes. Due to this situation, extensive usage of SimLab for Scientific and Professional users was partially inhibited.
The interface evolved in a quite complex set of screens supporting a diverse set of functionalities. The choice for ILOG heavily affected the mantainance history of SimLab and caused a large mantainance effort.
The main target, to have a user interface specific for didactic purposes, was achieved without any doubt.
A desktop application reproducing the current working procedure was developed, this is what has been called SimLab up to version 2.2. The application has been reasonably successful, in particular for didactic purposes. A consistent set of demos and a set of new features has been added in the years between 1999 (Version 1.0) up to 2003 (Version 2.2).
Unfortunately support for development got lost in favour of a software that was more user friendly, had a set of demos and was reasonably targeted to didactic purposes. Due to this situation, extensive usage of SimLab for Scientific and Professional users was partially inhibited.
The interface evolved in a quite complex set of screens supporting a diverse set of functionalities. The choice for ILOG heavily affected the mantainance history of SimLab and caused a large mantainance effort.
The main target, to have a user interface specific for didactic purposes, was achieved without any doubt.
SimLab 3.0 - 2004/2005
A first reassessment of SimLab has been made in 2003 in order to
decouple Math functionalities from the user interface. This was done
because too much work effort was going into the mantainance of the ILOG
user interface and too few work was dedicated to the real core features
of SimLab i.e. Uncertainty and Sensitivity Analysis.
In order to distribute the software to users it was necessary to achieve a set of standardization goals:
In order to distribute the software to users it was necessary to achieve a set of standardization goals:
- A precise Application Concept and scope was needed
- A huge APIs enlargement
- A set of Demos
- A standardized Testcases and Testing framework
- A standardized Documentation Facility
- A standardized Matlab Integration
- A larger set of Sensitivity Analysis Techniques
- A standardized Setup
- Multiple Platform Support
- A standardized Requirement, Development, Release process
- A standardized Quality Assurance plan
To reach these goals, a large effort has been dedicated in 2004 and
2005 to code refactoring and to enhancing the overall quality of the
software.
The future SimLab 3.x
As SimLab is now a development framework, the future of Simlab is in
the direction of supporting:
- More techniques for Uncertainty and Sensitivity Analysis
- More platforms and compilers
- More languages (e.g. R, java, octave, simulink etc.)
- More demos and testcases
- More features for developers such as:
- A rich user interface for developers
- A command line interpreter
- A set of development tools