Systematic Development of Requirements Documentation for General Purpose Scientific Computing Software

This paper presents a methodology for developing the requirements for general purpose scientific computing software. The first step in the methodology is to determine the general purpose scientific software of interest. The second step consists of a commonality analysis on this identified family of general purpose tools to document the terminology, commonalities and variabilities. The commonality analysis is then refined in the third step into a family of specific requirements documents. Besides fixing the variabilities and their binding times, each specific requirements document also shows the relative importance of the different nonfunctional requirements, for instance using the analytic hierarchy process (AHP). The new methodology addresses the challenge of writing validatable requirements by including solution validation strategies as part of the requirements documentation. To illustrate the methodology an example is shown of a solver for a linear system of equations

[1]  David M. Weiss,et al.  Defining Families: The Commonality Analysis , 1997, Proceedings of the (19th) International Conference on Software Engineering.

[2]  David Lorge Parnas,et al.  Review of David L. Parnas' "Designing Software for Ease of Extension and Contraction" , 2004 .

[3]  Timothy G. Trucano,et al.  Verification and validation. , 2005 .

[4]  Patrick J. Roache,et al.  Verification and Validation in Computational Science and Engineering , 1998 .

[5]  Spencer Smith,et al.  Commonality and Requirements Analysis for Mesh Generating Software , 2004, SEKE.

[6]  Suzanne Robertson,et al.  Mastering the Requirements Process , 1999 .

[7]  David M. Weiss Commonality Analysis: A Systematic Process for Defining Families , 1998, ESPRIT ARES Workshop.

[8]  Klaus Pohl,et al.  Software Product Line Engineering , 2005 .

[9]  Ridha Khedri,et al.  Requirements Analysis for Engineering Computation , 2004 .

[10]  J. H. Wilkinson Modern Error Analysis , 1971 .

[11]  David Lorge Parnas,et al.  Assessment of safety-critical software in nuclear power plants , 1991 .

[12]  Klaus Pohl,et al.  Software Product Line Engineering - Foundations, Principles, and Techniques , 2005 .

[13]  Constance L. Heitmeyer,et al.  Software Cost Reduction , 2002 .

[14]  Alexander Sverdlov Review of David L. Parnas' "Designing Software for Ease of Extension and Contraction" , 2004 .

[15]  David M. Weiss,et al.  Software Product Line Engineering , 2005, SEKE.

[16]  Thomas L. Saaty,et al.  Multicriteria Decision Making: The Analytic Hierarchy Process: Planning, Priority Setting, Resource Allocation , 1990 .

[17]  Ridha Khédri,et al.  Requirements Analysis for Engineering Computation: A Systematic Approach for Improving Reliability , 2007, Reliab. Comput..

[18]  David Lorge Parnas,et al.  On the Design and Development of Program Families , 2001, IEEE Transactions on Software Engineering.

[19]  Edsger W. Dijkstra,et al.  Notes on structured programming , 1970 .

[20]  Paul Clements,et al.  Software product lines - practices and patterns , 2001, SEI series in software engineering.