Experience in engineering of scientific software: The case of an optimization software for oil pipelines

Development of scientific and engineering software is usually different and could be more challenging than the development of conventional enterprise software. The authors were involved in a technology-transfer project between academia and industry which focused on engineering, development and testing of a software for optimization of pumping energy costs for oil pipelines. Experts with different skillsets (mechanical, power and software engineers) were involved. Given the complex nature of the software (a sophisticated underlying optimization model) and having experts from different fields, there were challenges in various software engineering aspects of the software system (e.g., requirements and testing). We report our observations and experience in addressing those challenges during our technology-transfer project, and aim to add to the existing body of experience and evidence in engineering of scientific and engineering software. We believe that our observations, experience and lessons learnt could be useful for other researchers and practitioners in engineering of other scientific and engineering software systems.

[1]  Vahid Garousi,et al.  Multi-objective Optimization of both Pumping Energy and Maintenance Costs in Oil Pipeline Networks using Genetic Algorithms , 2010, IJCCI.

[2]  Sergio Segura,et al.  Metamorphic Testing: Testing the Untestable , 2020, IEEE Software.

[3]  Vahid Garousi,et al.  Industry–academia collaborations in software testing: experience and success stories from Canada and Turkey , 2016, Software Quality Journal.

[4]  Janice Singer,et al.  How do scientists develop and use scientific software? , 2009, 2009 ICSE Workshop on Software Engineering for Computational Science and Engineering.

[5]  Vahid Garousi Experience in Developing a Robot Control Software , 2011, Comput. Inf. Sci..

[6]  Tore Dybå,et al.  Evidence-Based Software Engineering for Practitioners , 2005, IEEE Softw..

[7]  Vahid Garousi,et al.  Successful Engagement of Practitioners and Software Engineering Researchers: Evidence From 26 International Industry–Academia Collaborative Projects , 2020, IEEE Software.

[8]  C. CarverJeffrey,et al.  What We Have Learned About Using Software Engineering Practices in Scientific Software , 2017 .

[9]  Linden J. Ball,et al.  Satisficing in engineering design: causes, consequences and implications for design support , 1998 .

[10]  Vahid Garousi,et al.  Software test-code engineering: A systematic mapping , 2015, Inf. Softw. Technol..

[11]  Daniela Cruzes,et al.  What works for whom, where, when, and why? On the role of context in empirical software engineering , 2012, Proceedings of the 2012 ACM-IEEE International Symposium on Empirical Software Engineering and Measurement.

[12]  Janice Singer,et al.  Guest Editors' Introduction: Cooperative and Human Aspects of Software Engineering , 2009, IEEE Softw..

[13]  Nicholas Vincent Iannotti Improving Reuse in Software Development for the Life Sciences. , 2013 .

[14]  R. Emerson,et al.  Participant Observation and Fieldnotes , 2001 .

[15]  Vahid Garousi,et al.  Choosing the Right Test Automation Tool: a Grey Literature Review of Practitioner Sources , 2017, EASE.

[16]  Carina Haupt,et al.  The Software Engineering Initiative of DLR: Overcome the Obstacles and Develop Sustainable Software , 2018, 2018 IEEE/ACM 13th International Workshop on Software Engineering for Science (SE4Science).

[17]  Vahid Garousi,et al.  A survey on software testability , 2018, Inf. Softw. Technol..

[18]  Donald E. Knuth,et al.  The errors of tex , 1989, Softw. Pract. Exp..

[19]  Steve M. Easterbrook,et al.  Engineering the Software for Understanding Climate Change , 2009, Computing in Science & Engineering.

[20]  Vahid Garousi,et al.  Development of Scientific Software: a Systematic Mapping, a bibliometrics Study, and a Paper Repository , 2013, Int. J. Softw. Eng. Knowl. Eng..

[21]  James M. Bieman,et al.  Testing scientific software: A systematic literature review , 2014, Inf. Softw. Technol..

[22]  Steve Scrimshaw,et al.  Going underground , 2007, Nature.

[23]  Dietmar Pfahl,et al.  A literature review of agile practices and their effects in scientific software development , 2011, SECSE '11.

[24]  Tore Dybå,et al.  The Future of Empirical Methods in Software Engineering Research , 2007, Future of Software Engineering (FOSE '07).

[25]  David W. Kane,et al.  Agile methods in biomedical software development: a multi-site experience report , 2006, BMC Bioinformatics.

[26]  Adedeji Oyekanmi Fabiyi A methodology for developing scientific software applications in science gateways: towards the easy accessibility and availability of scientific applications , 2017 .

[27]  David Kane,et al.  Introducing agile development into bioinformatics: an experience report , 2003, Proceedings of the Agile Development Conference, 2003. ADC 2003.

[28]  L. Christman Theory in Practice: Increasing Professional Effectiveness , 1977 .

[29]  Alan M. Davis,et al.  Just Enough Requirements Management: Where Software Development Meets Marketing , 2005 .

[30]  Caroline Geck,et al.  The World Factbook , 2017 .

[31]  Judith Segal,et al.  Developing Scientific Software , 2008, IEEE Software.

[32]  Paul Clements,et al.  Software architecture in practice , 1999, SEI series in software engineering.

[33]  Tony Gorschek,et al.  A Model for Technology Transfer in Practice , 2006, IEEE Software.

[34]  Duong Trung Modern SCADA systems for oil pipelines , 1995, Industry Applications Society 42nd Annual Petroleum and Chemical Industry Conference.

[35]  Roberto de Alencar Lotufo,et al.  Adessowiki on-line collaborative scientific programming platform , 2009, Int. Sym. Wikis.

[36]  Carolyn B. Seaman,et al.  Qualitative Methods in Empirical Studies of Software Engineering , 1999, IEEE Trans. Software Eng..

[37]  Jeffrey C. Carver,et al.  Claims about the use of software engineering practices in science: A systematic literature review , 2015, Inf. Softw. Technol..

[38]  Robert M. Davison,et al.  Principles of canonical action research , 2004, Inf. Syst. J..

[39]  Judith Segal,et al.  When Software Engineers Met Research Scientists: A Case Study , 2005, Empirical Software Engineering.

[40]  K. Hambridge Action research. , 2000, Professional nurse.

[41]  Alireza Bahadori,et al.  Oil and Gas Pipelines and Piping Systems: Design, Construction, Management, and Inspection , 2016 .

[42]  Per Runeson,et al.  Guidelines for conducting and reporting case study research in software engineering , 2009, Empirical Software Engineering.

[43]  Charles Wallace,et al.  Among the Agilists: Participant Observation in a Rapidly Evolving Workplace , 2016, 2016 IEEE/ACM Cooperative and Human Aspects of Software Engineering (CHASE).

[44]  Vahid Garousi,et al.  An MILP-based formulation for minimizing pumping energy costs of oil pipelines: beneficial to both the environment and pipeline companies , 2010 .

[45]  M Di Pierro web2py for Scientific Applications , 2011, Computing in Science & Engineering.

[46]  Claes Wohlin,et al.  Context in industrial software engineering research , 2009, 2009 3rd International Symposium on Empirical Software Engineering and Measurement.

[47]  Antony Tang,et al.  Software Designers Satisfice , 2015, ECSA.

[48]  Mohammad S. Raunak,et al.  Simulation validation using metamorphic testing (WIP) , 2015, SummerSim.

[49]  Shahram Pezeshk,et al.  Adaptive Search Optimization in Reducing Pump Operating Costs , 1996 .

[50]  Guilherme Horta Travassos,et al.  Action research use in software engineering: An initial survey , 2009, 2009 3rd International Symposium on Empirical Software Engineering and Measurement.

[51]  Amy J. Ko,et al.  A Three-Year Participant Observation of Software Startup Software Evolution , 2017, 2017 IEEE/ACM 39th International Conference on Software Engineering: Software Engineering in Practice Track (ICSE-SEIP).

[52]  Alfred Kobsa,et al.  Methodological reflections on a field study of a globally distributed software project , 2011, Inf. Softw. Technol..