Scientific Software Engineering
Our software engineers have the special knowledge and skills needed for the development of computationally demanding software:
- Thorough knowledge of mathematics and algorithms
Clever mathematical approaches are needed to limit computing time and control accuracy. Therefore, our software developers have to master a wide variety in mathematical techniques and be in touch with the latest developments in this field. In addition, they have to be aware of the specific problems that can arise in this kind of software, like rounding errors getting out of control.
- Performance-aware programming
Even a small carelessness in developing computational software can make computing time and memory use many times higher than necessary. And that is an issue as computing time and memory use are always critical for this kind of applications. Our developers quickly learn to avoid such carelessness. Their professional honor tells them to program in such a way that computing time and memory use are minimal without sacrificing the maintainability of the code.
- A clear structure and good internal documentation are essential
Computational software usually features extremely complex algorithms and data structures. To keep the code maintainable, it is essential to:
- keep the structure of the code clear and to work from a well-defined and well-conceived architecture,
- to use self-explanatory names for variables and functions,
- to effectively add comments that help the reader of the software to understand how algorithms are implemented. This will allow future developers to modify the code without damaging it.
- A special way of testing
Testing computational software is different from testing administrative software: the outcomes may vary a little which makes it impossible to do exact comparisons of results. Also, the results are often huge sets of numbers which makes it difficult to find the source of a difference. Over the years, VORtech has developed special techniques that help us to determine whether the software does what it is supposed to do and to find the cause of deviations quickly.
- Understanding the applications
Even though our software developers cannot be an expert in every field in which their software is applied, they are capable to quickly learn the basics. Whether the application is from meteorology, geoscience, noise protection or water flow, our developers will quickly become a valid sparring partner for the real expert.
If you think that our developers can be of assistance for you, feel free to contact us. We'll be happy to come and meet you to see what we can offer.