×

A document driven methodology for developing a high quality parallel mesh generation toolbox. (English) Zbl 1173.65072

Summary: This paper motivates the value of using a document driven methodology to improve the quality of scientific computing applications by illustrating the design and documentation of a parallel mesh generation toolbox (PMGT). Formal mathematical specification is promoted for writing unambiguous requirements, which can be used to judge the correctness and thus the reliability of PMGT. Mathematics is also shown to improve understandability, reusability and maintainability through modelling software modules as finite state machines.
The proposed methodology includes explicit traceability between requirements, design, implementation and test cases. Traceability improves the verification of completeness and consistency and it allows for proper change management. To improve the reliability of PMGT, given the challenge that the correct solution is unknown a priori, an automated testing approach is adopted to verify the known properties of a correct solution, such as conformality and counterclockwise vertex numbering.

MSC:

65N50 Mesh generation, refinement, and adaptive methods for boundary value problems involving PDEs
65D18 Numerical aspects of computer graphics, image analysis, and computational geometry
68W30 Symbolic computation and algebraic computation
68N30 Mathematical aspects of software engineering (specification, verification, metrics, requirements, etc.)
65Y15 Packaged methods for numerical algorithms

Software:

CalcCheck; SCR
Full Text: DOI

References:

[1] Ardis, Mark; Weiss, David M.: Defining families: the commonality analysis, , 649-650 (1997)
[2] Bastarrica, M. Cecilia; Hitschfeld-Kahler, Nancy; Rossel, Pedro O.: Product line architecture for a family of meshing tools, Lecture notes in computer science 4039, 403-406 (2006)
[3] Bastarrica, María Cecilia; Hischfeld-Kahler, Nancy: Designing a product family of meshing tools, Adv eng software, 1-10 (2005)
[4] Boehm, Barry: Software engineering economics, (1981) · Zbl 0525.90034
[5] Clements, Paul; Northrop, Linda M.: Software product lines: practices and patterns, (2002)
[6] Cuka, David A.; Weiss, David M.: Engineering domains: executable commands as an example, , 26-34 (1998)
[7] Dijkstra, E. W.: Structured programming, chapter notes on structured programming, (1972) · Zbl 0267.68001
[8] Dubois, Paul F.: Designing scientific components, Comput sci eng 4, No. 5, 84-90 (2002)
[9] Einarsson Bo, Boisvert Ronald, Chaitin-Chatelin Françoise, Cools Ronald, Douglas Craig, Dritz Kenneth, et al. Accuracy and reliability in scientific computing. Number 0-89871-584-9 in software-environments-tools. Philadelphia (PA): SIAM; 2005.
[10] Elsheikh, Ahmed H.; Smith, W. Spencer; Chidiac, Samir E.: Semi-formal design of reliable mesh generation systems, Adv eng software 35, No. 12, 827-841 (2004)
[11] Frey, Pascal Jean; George, Paul-Louis: Mesh generation application to finite elements, (2000) · Zbl 0968.65009
[12] Ghezzi, Carlo; Jazayeri, Mehdi; Mandrioli, Dino: Fundamentals of software engineering, (2003) · Zbl 0827.68030
[13] Gries, David; Schneider, Fred B.: A logical approach to discrete math, (1993) · Zbl 0861.03001
[14] Hatton, Les: The Chimera of software quality, Computer 40, No. 8 (2007)
[15] Hatton, Les; Roberts, Andy: How accurate is scientific software?, IEEE trans software eng 20, No. 10, 785-797 (1994)
[16] Heitmeyer, Constance: Software cost reduction, Encyclopedia of software engineering (2002) · Zbl 1034.68572
[17] Hoffman, Daniel M.; Strooper, Paul A.: Software design, automated testing, and maintenance: a practical approach, (1995)
[18] Kelly, Diane F.: A software chasm: software engineering and scientific computing, IEEE software 24, No. 6, 119-120 (2007)
[19] Kelly Diane F, Sanders Rebecca. Assessing the quality of scientific software. In: Proceedings of the first international workshop on software engineering for computational science and engineering (SECSE 2008), Leipzig, Germany. In conjunction with the 30th international conference on software engineering (ICSE); 2008.
[20] McCall J, Richards P, Walters G. Factors in software quality. NTIS AD-A049-014, 015, 055; November 1977.
[21] Oliveira, Suely; Stewart, David E.: Writing scientific software: a guide to good style, (2006) · Zbl 1108.68032
[22] OpenMesh. Openmesh, computer graphics and multimedia group, Rheinisch-Westfälische Technische Hochschule Aachen, <http://www.openmesh.org/>; 2006.
[23] Owen Steven J. A survey of unstructured mesh generation technology. In: Proceedings 7th international meshing roundtable, Dearborn, MI; October 1998.
[24] Parnas, D. L.: A technique for the specification of software modules with examples, Cacm 15, No. 5, 330-336 (1972)
[25] Parnas, David: On the design and development of program families, IEEE trans software eng 2, No. 1, 1-9 (1976) · Zbl 0352.68032
[26] Parnas, David L.: Designing software for ease of extension and contraction, IEEE trans software eng, No. March, 128-138 (1979) · Zbl 0395.68037
[27] Parnas, David L.: Some software engineering principles, INFOR, can J oper res inform process 22, No. 4, 303-316 (1984)
[28] Parnas, David L.; Clements, P. C.: A rational design process: how and why to fake it, IEEE trans software eng 12, No. 2, 251-257 (1986)
[29] Parnas, David Lorge; Asmis, G. J. K.; Madey, J.: Assessment of safety-critical software in nuclear power plants, Nucl safety 32, No. 2, 189-198 (1991)
[30] Pohl, K.; Böckle, G.; Van Der Linden, F.: Software product line engineering: foundations principles and techniques, (2005) · Zbl 1075.68575
[31] Remacle, Jean-Fancois; Shephard, Mark S.: An algorithm oriented mesh database, Int J numer methods eng 58, 349-374 (2003) · Zbl 1035.68045 · doi:10.1002/nme.774
[32] Rivara, Maria-Celilia: New longest-edge algorithms for the refinement and/or improvement of unstructured triangulation, Int J numer methods eng 40, 3313-3324 (1997) · Zbl 0980.65144 · doi:10.1002/(SICI)1097-0207(19970930)40:18<3313::AID-NME214>3.0.CO;2-#
[33] Robertson, Suzanne; Robertson, James: Mastering the requirements process, (1999)
[34] Sanders, Rebecca; Kelly, Diane: Dealing with risk in scientific software development, IEEE software 4, 21-28 (2008)
[35] Segal Judith. Models of scientific software development. In: Proceedings of the first international workshop on software engineering for computational science and engineering (SECSE 2008), Leipzig, Germany. In conjunction with the 30th international conference on software engineering (ICSE); 2008.
[36] Siegel Stephen F, Mironova Anastasia, Avrunin George S, Clarke Lori A. Using model checking with symbolic execution to verify parallel numerical programs. In: International symposium on software testing and analysis (ISSTA), Portland (ME); 2006.
[37] Spencer Smith W. Systematic development of requirements documentation for general purpose scientific computing software. In: Proceedings of the 14th IEEE international requirements engineering conference, RE 2006, Minneapolis/ St. Paul, Minnesota; 2006. p. 209 – 18.
[38] Spencer Smith W, Chen Chien-Hsien. Commonality analysis for mesh generating systems. Technical report CAS-04-10-SS, McMaster University, Department of Computing and Software; 2004.
[39] Spencer Smith W, Lai Lei. A new requirements template for scientific computing. In: Ralyté J, A&dot;gerfalk P, Kraiem N, editors. Proceedings of the first international workshop on situational requirements engineering processes – methods, techniques and tools to support situation-specific requirements engineering processes, SREP’05, Paris, France, 2005. In conjunction with 13th IEEE international requirements engineering conference; 2005. p. 107 – 21.
[40] Smith, W. Spencer; Lai, Lei; Khedri, Ridha: Requirements analysis for engineering computation: a systematic approach for improving software reliability, Reliable comput 13, 83-107 (2007) · Zbl 1106.68348 · doi:10.1007/s11155-006-9020-7
[41] Spencer Smith W, McCutchan John, Cao Fang. Program families in scientific computing. In: Sprinkle Jonathan, Gray Jeff, Rossi Matti, Tolvanen Juha-Pekka, editors. 7th OOPSLA workshop on domain specific modelling (DSM’07), Montréal, Québec; 2007. p. 39 – 47.
[42] Squires, S.; Van De Vanter, M. L.; Votta, L. G.: Software productivity research in high performance computing, CT watch quart, No. November, 52-61 (2006)
[43] Tang Jin. Developing scientific computing software: current processes and future directions. Master’s thesis, McMaster University, Hamilton, ON; 2008.
[44] , IEEE recommended practice for software requirements specifications (2000)
[45] van Lamsweerde Axel. Goal-oriented requirements engineering: a guided tour. In: Proceedings of the 5th IEEE international symposium on requirements engineering IEEE. Washington (DC, USA): IEEE Computer Society; 2001. p. 249 – 63 [August].
[46] Weiss, D.; Lai, C. T. R.: Software product line engineering, (1999)
[47] Weiss, David M.: Commonality analysis: a systematic process for defining families, Lect notes comp sci 1429, 214-222 (1998)
[48] Wilson, Gregory V.: Where’s the real bottleneck in scientific computing? scientists would do well to Pick some tools widely used in the software industry, Am sci 94, No. 1 (2006)
[49] Yu Wen. A document driven methodology for improving the quality of a parallel mesh generation toolbox. Master’s thesis, McMaster University; 2007.
This reference list is based on information provided by the publisher or from digital mathematics libraries. Its items are heuristically matched to zbMATH identifiers and may contain data conversion errors. In some cases that data have been complemented/enhanced by data from zbMATH Open. This attempts to reflect the references listed in the original paper as accurately as possible without claiming completeness or a perfect matching.