  Research software refers to software development tools that accelerate
discovery and simplifies access to digital infrastructures. However, although
research software platforms can be built increasingly more innovative and
powerful than ever before, with increasing complexity there is a greater risk
of failure if unplanned for and untested program scenarios arise. As systems
age and are changed by different programmers the risk of a change impacting the
overall system increases. In contrast, systems that are built with less
emphasis on program code and more emphasis on data that describes the
application can be more readily changed and maintained by individuals who are
less technically skilled but are often more familiar with the application
domain. Such systems can also be tested using automatically generated advanced
testing regimes.

Software Engineering