Reengineering a scientific software and lessons learned

  • Authors:
  • Yang Li

  • Affiliations:
  • Technische Universität München, Garching, Germany

  • Venue:
  • Proceedings of the 4th International Workshop on Software Engineering for Computational Science and Engineering
  • Year:
  • 2011

Quantified Score

Hi-index 0.00

Visualization

Abstract

SeisSol is a scientific software for the numerical simulation of seismic wave phenomena. However, there are three main problems in the SeisSol project. First, the project documentation is incomplete. Second, the source code comprehensibility is low. Third, the dependencies between the modules in the system are complicated. To solve the problems and to enhance the software quality, we perform a reengineering process on SeisSol. The process contains four steps, reverse engineering, requirements reengineering, redesign and source code refactoring. In the requirements reengineering step, we employ a novel approach to elicit requirements efficiently for such a scientific computing project. Through the reengineering process, the documentation of source code, requirements and the improved design is generated, the system is more modularized and easier to be extended, as well as the source code are more comprehensible. e also discuss the lessons learned during the reengineering process.