Debunking the Myth That Upfront Requirements Are Infeasible for Scientific Computing Software
Journal Articles
Overview
Research
Identity
Additional Document Info
View All
Overview
abstract
Many in the Scientific Computing Software community believe that upfront
requirements are impossible, or at least infeasible. This paper shows
requirements are feasible with the following: i) an appropriate perspective
("faking" the final documentation as if requirements were correct and complete
from the start, and gathering requirements as if for a family of programs); ii)
the aid of the right principles (abstraction, separation of concerns,
anticipation of change, and generality); iii) employing SCS specific templates
(for Software Requirements and Module Interface Specification); iv) using a
design process that enables change (information hiding); and, v) the aid of
modern tools (version control, issue tracking, checking, generation and
automation tools). Not only are upfront requirements feasible, they provide
significant benefits, including facilitating communication, early
identification of errors, better design decisions and enabling replicability.
The topics listed above are explained, justified and illustrated via an example
of software developed by a small team of software and mechanical engineers for
modelling the solidification of a metal alloy.