Software Engineering for Scientific Computing
Applications from the so-called 'Computational Domains' are becoming more and more complex, and thus have opened the door to many new possibilities but also to new challenges concerning software development. These applications are developed for simulation of scientific phenomena, engineering designs, scientific visualization and many other important problems that usually invovle enormous data set, complex modelling and calculations. High Performance Computing (HPC) is often associated with such applications to solve advanced computation problems.
Design, implementation, development, and maintenance of scientific software differ in several ways from traditional software engineering, as the major focus is on performance over the complexity management of software applications. The main goals of scientific software are to evaluate the scientific computing approaches and generating the computation results. Therefore, most of the time and efforts are applied on how to achieve accurate and stable results while efficiently utilizing the computational power. On the other hand, the comprehensibility, maintainability, reusability and extensibility of the software remains a minor issue of concern.
We research how software engineering methods and tools can be applied and adapted to assist scientific computing. We are mainly focusing on the following areas: