White Paper for Standards of Modelling Software Development
Total Page:16
File Type:pdf, Size:1020Kb
EMMC-CSA European Materials Modelling Council White paper for standards of modelling software development TABLE OF CONTENT 1. EXECUTIVE SUMMARY ....................................................................................................... 2 1.1 Description of the deliverable content and objectives ...................................................................... 2 1.2 Major outcome ............................................................................................................................ 2 2. PROGRESS REPORT (MAIN ACTIVITIES) .................................................................................. 2 2.1 Introduction ................................................................................................................................. 2 2.2 Scope......................................................................................................................................... 3 2.3 Model description and software architecture .................................................................................. 5 2.4 Programming language and deployment ....................................................................................... 6 2.5 Intellectual Property and License Considerations ........................................................................... 7 2.6 Verification, testing, validation and robustness ............................................................................. 10 2.7 Organization of the software development ................................................................................... 11 2.8 Version Control ......................................................................................................................... 11 2.9 Metadata .................................................................................................................................. 12 2.10 Documentation .......................................................................................................................... 13 2.11 Support .................................................................................................................................... 15 3. CONCLUSIONS .............................................................................................................. 15 4. REFERENCES ................................................................................................................ 15 5. LINKS ......................................................................................................................... 16 The EMMC-CSA project has received funding from the European Union‘s Horizon 2020 research and innovation programme under Grant Agreement No 723867 EMMC-CSA – GA N°723867 White paper for standards of modelling software development 1. Executive summary 1.1 Description of the deliverable content and objectives This white paper provides a basis for the standards of modelling software development and addresses areas such as method description, assumptions, accuracy and limitations; testing requirements; issue resolution; version control; user documentation and continuous support and resolution of issues. The document is based on the work already carried out in the context of the EMMC to drive the adoption of software quality measures, and to ensure sustainable implementation of this EMMC initiative. Given the high level of sophistication of each of the developments which solve particular aspects of the multi-physics/chemistry spectrum of materials modelling, the industrial usefulness of individual achievements requires integration into larger software systems. Thus, guidelines and standards are needed, which will enable the exploitation of these codes. 1.2 Major outcome This white paper provides guidelines for academic software developers creating materials modelling codes. In many cases, design decisions taken at an early stage have unforeseeable consequences for many years ahead. In this context, the white paper gives academic researchers a framework, which paves the way for successful integration and industrial deployment of materials modelling. This goal is achieved by addressing a range of topics including model descriptions and software architectures, implementation, programming languages and deployment, intellectual property and license considerations, verification, testing, validation, and robustness, organization of software development, metadata, user documentation, and support. 2. Progress report (main activities) 2.1 Introduction The European Materials Modelling Council – Coordination and Support Action (EMMC-CSA) was installed in 2016 by the European Commission as a joint effort to foster materials research in the European industry. The goal of this CSA is to stimulate and enhance the use of materials modelling as an integral part of industrial research and development. These efforts intend to further increase the strength and competitiveness of the European manufacturing industry in a global market. The EMMC-CSA combines the expertise and knowledge of partners from academia and industry to establish and strengthen the links between software developers (mainly research groups at universities), software distributors, and software users (mainly industrial R&D departments). To make closer connection between these groups, bridge the gap between the different paradigms underlying their operation methods, and establish a common language, it is suggested to create a platform for exchange. The present white paper is meant to serve this purpose with respect to software development and deployment. All steps of the life cycle ranging from the first ideas to support and documentation are addressed and put on a firm basis, which will serve as a framework for all parties involved in the process. This white paper is put forward by EMMC members from Materials Design SARL (MDS) and QuantumWise A/S (QW) and is provided as a basis for the standards of modelling software development. The objective is to share some of the best practises in commercial software development to enhance the quality of academic software. Furthermore, one of the most important aspects of academic software projects is the training of students, and using a more advanced approach to software development will better position them for a job outside academia. Specifically, the white paper addresses areas including method description, software architecture, programming Page 2 of 17 EMMC-CSA – GA N°723867 White paper for standards of modelling software development languages, accuracy and limitations; testing requirements; issue resolution; version control; user documentation and continuous support and resolution of issues. Of course, this white paper can only briefly touch several issues arising in the context of scientific software development. Readers interested in detail are referred to external sources of information including the references and links given at the end of this white paper. 2.2 Scope Scientific computing traces back to the mid of the 20th century, when the ground-breaking technological discoveries as, e.g., the development of the transistor, were made and soon thereafter implemented in electronic devices with ever increasing integration and computational speed, which is best described by Moore’s law. Major software developments aimed at making this computer power accessible via high-level programming languages, which were soon adopted by scientists to code their formulas and to get their problems solved; Fortran (“formula translation”) was one of these early languages (and still has its share in scientific computing). Since these early days, an incredible amount of scientific software in applied mathematics, engineering, physics, chemistry, biology, geography, astronomy, and other disciplines has been developed. Most of this work was performed at universities and public and/or governmental laboratories, mainly by students and postdocs as part of their research. This had a strong impact on the way this software was designed, written, documented, and maintained. Since continuity quite often was hampered by the students and postdocs leaving from academic groups, writing of such code was often done with a rather short time horizon in mind, which resulted in “quick and dirty” coding. In addition, design, documentation, and maintenance in many cases were completely ignored. For similar reasons, distribution and licensing considerations in general also played no role at all. Therefore, many scientific codes were in a rather bad shape (or did not at all survive the time of a thesis or research paper) and still are, since many codes were passed down from one student generation to the next, which experienced similar research conditions as the generation before. This describes the status of most scientific software rather well with materials modelling software in general being no exception. Expecting a fundamental paradigmatic shift of this general situation probably is far too optimistic. Yet, it is fair to say that there is some variation in the maturity in materials modelling codes and some codes have made it already into commercial software products. The past two or three decades have thus seen some development, which started with the commercialization of quantum chemistry codes for use by the chemical and pharmaceutical industry and soon after extended to codes for materials modelling. It should be noted here that the use of atomistic simulations in the chemical and pharmaceutical industry has already a long history