학술논문
Nmag Micromagnetic Simulation Tool — Software Engineering Lessons Learned
Document Type
Conference
Source
2016 IEEE/ACM International Workshop on Software Engineering for Science (SE4Science) SE4SCIENCE Software Engineering for Science (SE4Science), IEEE/ACM International Workshop on. :1-7 May, 2016
Subject
Language
Abstract
We review design and development decisions and their impact for the open source code Nmag from a software engineering in computational science point of view. We summarise lessons learned and recommendations for future computational science projects. Key lessons include that encapsulating the simulation functionality in a library of a general purpose language, here Python, provides great flexibility in using the software. The choice of Python for the top-level user interface was very well received by users from the science and engineering community. The from-source installation in which required external libraries and dependencies are compiled from a tarball was remarkably robust. In places, the code is a lot more ambitious than necessary, which introduces unnecessary complexity and reduces main- tainability. Tests distributed with the package are useful, although more unit tests and continuous integration would have been desirable. The detailed documentation, together with a tutorial for the usage of the system, was perceived as one of its main strengths by the community.