TECHNOLOGIES & PROCESSES
The development of scientific software presents inherent difficulties and peculiarities which has driven ESSS's team to implement its own methodology, thereby incorporating the best methodologies traditionally used in the market.
This process is one of the key success factors of ESSS and can be summarized in the following steps: requirement detailing, architectural planning, implementation, tests, adjustments and implantation. Throughout this process, a continuous review of the requirements is performed in order to adjust the project objectives and deliverables to the customer's needs.
Multi-approach
ESSS follows an approach named multi-approach which recognizes that there is no single tool, methodology or philosophy for software development available in the market which features the ideal characteristics for the creation of all modules to develop an application. The multi-approach concept consists in using different tools and methodologies for various modules of an application (numerical kernel, 3D visualization, graphical interface, data integration), allowing the best of each one of these component to be utilized to its fullest extent in the applications developed.Multi-plataform
Our expertise in the creation of multi-platform applications allow the customer to choose among several operational systems (Windows/Unix - Linux, SUN, SGI, HP) to execute their applications. It also provides an excellent use of available computational resources, even on a heterogeneous state of operational systems.Multi-paradigm
The adoption of object-oriented design at high levels of the application architecture allows the representation of real world concepts in the computational world, making the outline easy and clear to understand. At the lower levels of the application, an approach based on generic programming is necessary to guarantee the numerical performance demanded by the applications, while also maintaining the necessary flexibility for its future expansion.Multi-language
By using the most modern models for software hybrid development, by combining the C++ and Python languages, it is possible to join the high performance necessary for numerical and visualization modules of C++, with the flexibility and fast development of Python, when implementing graphical user interfaces and management controls.
REFERENCES
You can find below some references which compose the basis of ESSS's methodology. This compilation may guide the engineer/programmer through the daily work of scientific software development in C++.
