  In computational science and in computer science, research software is a
central asset for research. Computational science is the application of
computer science and software engineering principles to solving scientific
problems, whereas computer science is the study of computer hardware and
software design.
  The Open Science agenda holds that science advances faster when we can build
on existing results. Therefore, research software has to be reusable for
advancing science. Thus, we need proper research software engineering for
obtaining reusable and sustainable research software. This way, software
engineering methods may improve research in other disciplines. However,
research in software engineering and computer science itself will also benefit
from reuse when research software is involved.
  For good scientific practice, the resulting research software should be open
and adhere to the FAIR principles (findable, accessible, interoperable and
repeatable) to allow repeatability, reproducibility, and reuse. Compared to
research data, research software should be both archived for reproducibility
and actively maintained for reusability. The FAIR data principles do not
require openness, but research software should be open source software.
Established open source software licenses provide sufficient licensing options,
such that it should be the rare exception to keep research software closed.
  We review and analyze the current state in this area in order to give
recommendations for making computer science research software FAIR and open. We
observe that research software publishing practices in computer science and in
computational science show significant differences.

Software Engineering