2011 ◽  
Vol 23 (4) ◽  
pp. 64-79 ◽  
Author(s):  
Diane Kelly

The development of scientific software is usually carried out by a scientist who has little professional training as a software developer. Concerns exist that such development produces low-quality products, leading to low-quality science. These concerns have led to recommendations and the imposition of software engineering development processes and standards on the scientists. This paper utilizes different frameworks to investigate and map characteristics of the scientific software development environment to the assumptions made in plan-driven software development methods and agile software development methods. This mapping exposes a mismatch between the needs and goals of scientific software development and the assumptions and goals of well-known software engineering development processes.


Author(s):  
Diane Kelly

The development of scientific software is usually carried out by a scientist who has little professional training as a software developer. Concerns exist that such development produces low-quality products, leading to low-quality science. These concerns have led to recommendations and the imposition of software engineering development processes and standards on the scientists. This paper utilizes different frameworks to investigate and map characteristics of the scientific software development environment to the assumptions made in plan-driven software development methods and agile software development methods. This mapping exposes a mismatch between the needs and goals of scientific software development and the assumptions and goals of well-known software engineering development processes.


AI Magazine ◽  
2010 ◽  
Vol 31 (2) ◽  
pp. 25 ◽  
Author(s):  
Mark A. Cohen ◽  
Frank E. Ritter ◽  
Steven R Haynes

Developing intelligent agents and cognitive models is a complex software engineering activity. This article shows how all intelligent agent creation tools can be improved by taking advantage of established software engineering principles such as high-level languages, maintenance-oriented development environments, and software reuse. We describe how these principles have been realized in the Herbal integrated development environment, a collection of tools that allows agent developers to exploit modern software engineering principles.


Author(s):  
Archit Gupta

Abstract: Software Engineering has grown and developed from the 1960’s till now a lot as our knowledge and understanding of software is increasing day-by-day due to which software is becoming increasingly reliable and cost effective. Previous research was not able to express clearly how software engineering transitioned, how new technologies and services for software came to be known and were started using in the world of software engineering, decade or year wise. I use data from different websites and research papers to tell how software engineering has evolved along with the years with details about what happened in particular years, with respect to the corresponding decades. There are also details about manifestos and the developers of computer languages. The findings indicate that the software engineering field is vast and is still far from being fully developed, in a world where we have hands on every technology possible and hence new software’s and services are coming out on a regular basis now.


PLoS ONE ◽  
2021 ◽  
Vol 16 (7) ◽  
pp. e0254749
Author(s):  
Christopher Schölzel ◽  
Valeria Blesius ◽  
Gernot Ernst ◽  
Alexander Goesmann ◽  
Andreas Dominik

One should assume that in silico experiments in systems biology are less susceptible to reproducibility issues than their wet-lab counterparts, because they are free from natural biological variations and their environment can be fully controlled. However, recent studies show that only half of the published mathematical models of biological systems can be reproduced without substantial effort. In this article we examine the potential causes for failed or cumbersome reproductions in a case study of a one-dimensional mathematical model of the atrioventricular node, which took us four months to reproduce. The model demonstrates that even otherwise rigorous studies can be hard to reproduce due to missing information, errors in equations and parameters, a lack in available data files, non-executable code, missing or incomplete experiment protocols, and missing rationales behind equations. Many of these issues seem similar to problems that have been solved in software engineering using techniques such as unit testing, regression tests, continuous integration, version control, archival services, and a thorough modular design with extensive documentation. Applying these techniques, we reimplement the examined model using the modeling language Modelica. The resulting workflow is independent of the model and can be translated to SBML, CellML, and other languages. It guarantees methods reproducibility by executing automated tests in a virtual machine on a server that is physically separated from the development environment. Additionally, it facilitates results reproducibility, because the model is more understandable and because the complete model code, experiment protocols, and simulation data are published and can be accessed in the exact version that was used in this article. We found the additional design and documentation effort well justified, even just considering the immediate benefits during development such as easier and faster debugging, increased understandability of equations, and a reduced requirement for looking up details from the literature.


Sign in / Sign up

Export Citation Format

Share Document