Journal article Open Access

Software engineering practices for scientific software development: A systematic mapping study

Elvira-Maria Arvanitou; Apostolos Ampatzoglou; Alexander Chatzigeorgiou; Jeffrey C. Carver


MARC21 XML Export

<?xml version='1.0' encoding='UTF-8'?>
<record xmlns="http://www.loc.gov/MARC21/slim">
  <leader>00000nam##2200000uu#4500</leader>
  <datafield tag="540" ind1=" " ind2=" ">
    <subfield code="u">https://creativecommons.org/licenses/by/4.0/legalcode</subfield>
    <subfield code="a">Creative Commons Attribution 4.0 International</subfield>
  </datafield>
  <datafield tag="260" ind1=" " ind2=" ">
    <subfield code="c">2020-10-23</subfield>
  </datafield>
  <controlfield tag="005">20210402122717.0</controlfield>
  <controlfield tag="001">4659591</controlfield>
  <datafield tag="909" ind1="C" ind2="O">
    <subfield code="p">openaire</subfield>
    <subfield code="o">oai:zenodo.org:4659591</subfield>
  </datafield>
  <datafield tag="520" ind1=" " ind2=" ">
    <subfield code="a">&lt;p&gt;Background:&lt;/p&gt;

&lt;p&gt;The development of scientific software applications is far from trivial, due to the constant increase in the necessary complexity of these applications, their increasing size, and their need for intensive maintenance and reuse.&lt;/p&gt;

&lt;p&gt;Aim:&lt;/p&gt;

&lt;p&gt;To this end, developers of scientific software (who usually lack a formal computer science background) need to use appropriate software engineering (SE) practices. This paper describes the results of a systematic mapping study on the use of SE for scientific application development and their impact on software quality.&lt;/p&gt;

&lt;p&gt;Method:&lt;/p&gt;

&lt;p&gt;To achieve this goal we have performed a systematic mapping study on 359 papers. We first describe a catalog of SE practices used in scientific software development. Then, we discuss the quality attributes of interest that drive the application of these practices, as well as tentative side-effects of applying the practices on qualities.&lt;/p&gt;

&lt;p&gt;Results:&lt;/p&gt;

&lt;p&gt;The main findings indicate that scientific software developers are focusing on practices that improve implementation productivity, such as code reuse, use of third-party libraries, and the application of &amp;ldquo;&lt;em&gt;good&lt;/em&gt;&amp;rdquo; programming techniques. In addition, apart from the finding that performance is a key-driver for many of these applications, scientific software developers also find maintainability and productivity to be important.&lt;/p&gt;

&lt;p&gt;Conclusions:&lt;/p&gt;

&lt;p&gt;The results of the study are compared to existing literature, are interpreted under a software engineering prism, and various implications for researchers and practitioners are provided. One of the key findings of the study, which is considered as important for driving future research endeavors is the lack of evidence on the trade-offs that need to be made when applying a software practice, i.e., negative (indirect) effects on other quality attributes.&lt;/p&gt;</subfield>
  </datafield>
  <datafield tag="700" ind1=" " ind2=" ">
    <subfield code="u">Department of Applied Informatics, University of Macedonia, Thessaloniki, Greece</subfield>
    <subfield code="a">Apostolos Ampatzoglou</subfield>
  </datafield>
  <datafield tag="700" ind1=" " ind2=" ">
    <subfield code="u">Department of Applied Informatics, University of Macedonia, Thessaloniki, Greece</subfield>
    <subfield code="a">Alexander Chatzigeorgiou</subfield>
  </datafield>
  <datafield tag="700" ind1=" " ind2=" ">
    <subfield code="u">Department of Computer Science, University of Alabama, United States of America</subfield>
    <subfield code="a">Jeffrey C. Carver</subfield>
  </datafield>
  <datafield tag="856" ind1="4" ind2=" ">
    <subfield code="s">3670761</subfield>
    <subfield code="z">md5:5b26155f810637a1de48e67a526788ef</subfield>
    <subfield code="u">https://zenodo.org/record/4659591/files/10.1016@j.jss.2020.110848.pdf</subfield>
  </datafield>
  <datafield tag="542" ind1=" " ind2=" ">
    <subfield code="l">open</subfield>
  </datafield>
  <datafield tag="980" ind1=" " ind2=" ">
    <subfield code="a">publication</subfield>
    <subfield code="b">article</subfield>
  </datafield>
  <datafield tag="100" ind1=" " ind2=" ">
    <subfield code="u">Department of Applied Informatics, University of Macedonia, Thessaloniki, Greece</subfield>
    <subfield code="a">Elvira-Maria Arvanitou</subfield>
  </datafield>
  <datafield tag="024" ind1=" " ind2=" ">
    <subfield code="a">10.1016/j.jss.2020.110848</subfield>
    <subfield code="2">doi</subfield>
  </datafield>
  <datafield tag="245" ind1=" " ind2=" ">
    <subfield code="a">Software engineering practices for scientific software development: A systematic mapping study</subfield>
  </datafield>
  <datafield tag="536" ind1=" " ind2=" ">
    <subfield code="c">801015</subfield>
    <subfield code="a">Enhancing Programmability and boosting Performance Portability for Exascale Computing Systems</subfield>
  </datafield>
  <datafield tag="650" ind1="1" ind2="7">
    <subfield code="a">cc-by</subfield>
    <subfield code="2">opendefinition.org</subfield>
  </datafield>
</record>
95
49
views
downloads
Views 95
Downloads 49
Data volume 179.9 MB
Unique views 89
Unique downloads 48

Share

Cite as