The T-experiments: errors in scientific software
@inproceedings{Hatton1996TheTE, title={The T-experiments: errors in scientific software}, author={Les Hatton}, booktitle={Quality of Numerical Software}, year={1996} }
Extensive tests showed that many software codes widely used in science and engineering are not as accurate as we would like to think. It is argued that better software engineering practices would help solve this problem, but realizing that the problem exists is an important first step.
139 Citations
Best Practices for Scientific Computing
- Computer SciencePLoS biology
- 2014
We describe a set of best practices for scientific software development, based on research and experience, that will improve scientists' productivity and the reliability of their software.
Code Design and Quality Control
- Computer Science
- 2012
ESM codes have mostly been written directly by scientists, as experts in the various geoscientific domains relevant for these model. This contrasts with commercial forms of software development,…
Exploring the Role of Diagnosis in Software Engineering
- Computer ScienceIEEE Softw.
- 2001
Software engineers, encouraged to believe that their capability to remove defects matches their ambition to do so, rarely contemplate the possibility of software failure during design. Changing this…
Automated Software Testing for Matlab
- Computer ScienceComputing in Science & Engineering
- 2009
Using Matlab xUnit automated testing framework, scientists and engineers using Matlab can make software testing an integrated part of their software development routine.
Mutation Sensitivity Testing
- Computer ScienceComputing in Science & Engineering
- 2009
Mutation sensitivity testing addresses challenges of code-testing by showing that a few well-designed tests can detect many code faults and that reducing error tolerances is often more effective than running additional tests.
Design Patterns in Scientific Software
- Computer Science, EducationICCSA
- 2004
A method of teaching design patterns which introduces patterns as they are used in refactoring, extending and reusing a computational science case study is described.
Bridging the Chasm
- Computer ScienceACM Comput. Surv.
- 2017
This article reviews the research that addresses the gap, exploring how both software engineering and research practice may need to evolve to accommodate the use of software in science.
Programming technology, reliability, safety and measurement
- Computer Science
- 1998
The influence of programming technology on reliability and on safety, and why the industry seems unable to learn from its mistakes, apparently preferring to chase pots of gold with object oriented…
Software Intensive Science
- Computer Science
- 2014
This paper argues that the difference between contemporary software intensive scientific practice and more traditional non-software intensive varieties results from the characteristically high…
Metamorphic Testing: A Simple Yet Effective Approach for Testing Scientific Software
- Computer Science, Materials ScienceComputing in Science & Engineering
- 2019
Why MT is an appropriate testing technique for scientists and engineers who are not primarily trained as software developers and how it can be used to conduct systematic and effective testing on programs that do not have test oracles without requiring additional testing tools are discussed.
References
SHOWING 1-10 OF 18 REFERENCES
NPATH: a measure of execution path complexity and its applications
- Computer ScienceCACM
- 1988
NPATH, which counts the acyclic execution paths through a function, is an objective measure of software complexity related to the ease with which software can be comprehensively tested.
Reexamining the Fault Density-Component Size Connection
- GeologyIEEE Softw.
- 1997
The author found that medium-sized components were proportionately more reliable than small or large ones, and there may be limits on the fault density the authors can achieve.
Investigating the Influence of Formal Methods
- BusinessComputer
- 1997
The effects of using formal methods to develop an air-traffic-control information system are investigated and a rich record of a tool's or technique's effectiveness is recorded.
An experimental evaluation of the assumption of independence in multiversion programming
- Computer ScienceIEEE Transactions on Software Engineering
- 1986
N-version programming has been proposed as a method of incorporating fault tolerance into software and it is revealed that the programs were individually extremely reliable but that the number of tests in which more than one program failed was substantially more than expected.
Programming language concepts
- Computer Science
- 1982
This revision of a popular, text/reference guide analyzes and evaluates the important concepts found in current programming languages based on how the language supports software development and improves the reader's ability to appreciate and evaluate programming languages.
Safer C - developing software for high-integrity and safety-critical systems
- Computer ScienceMcGrawHill international series in software engineering
- 1995
Safer C: Developing Software for High-integrity and Safety-critical Systems highlights the 'holes' in C, but also demonstrates clearly that, employed correctly, C can be used to write software of as high intrinsic quality as other languages.
How Accurate Is Scientific Software?
- Computer ScienceIEEE Trans. Software Eng.
- 1994
This paper describes some results of what, to the authors' knowledge, is the largest N-version programming experiment ever performed, to determine just how consistent the results of scientific computation really are, and to estimate accuracy.
A Complexity Measure
- Computer ScienceIEEE Transactions on Software Engineering
- 1976
Several properties of the graph-theoretic complexity are proved which show, for example, that complexity is independent of physical size and complexity depends only on the decision structure of a program.
The seismic kernel system — a large‐scale exercise in fortran 77 portability
- Computer ScienceSoftw. Pract. Exp.
- 1988
The design and successful implementation of a 500,000+ line portable FORTRAN 77 package for the processing of seismic data is described, which exhibits demonstrably high efficiency on a wide variety of machines from minicomputers to the largest supercomputers.
C Traps and Pitfalls
- Computer Science
- 1989
This chapter discusses Lexical Pitfalls, Syntactic pitfalls, and Advice and answers about printf, varargs, and stdarg.h: the ANSI varargs.h.