Correctness By Construction: Better Can Also Be Cheaper

24 CROSSTALK The Journal of Defense Software Engineering March 2002 I December 1999 CrossTalk [3], David Cook provided a well-reasoned historical analysis of programming language development and considered the role languages play in the software development process. The article was valuable because it showed that programming language developments are not sufficient to ensure success; however, it would be dangerous to conclude from this that they are not necessary for success. Cook rightly identifies other issues such as requirements capture, specifications, and verification and validation (V&V) that need to be addressed. Perhaps we need to look at programming languages not just in terms of their ability to code some particular design but in the influence the language has on some of these other vital aspects of the development process. The key notion is that of the benefit of a precise language or language subset. If the term subset has set anyone thinking “oh no, not another coding standard,” then read on, the topic is much more interesting and useful than that!

[1]  J.M. Sutton,et al.  Achieving high integrity at low cost: a constructive approach , 1997, Microprocess. Microsystems.

[2]  J. T. Lochner The Journal of Defense Software Engineering , 1999 .

[3]  Hoyt Lougee,et al.  SOFTWARE CONSIDERATIONS IN AIRBORNE SYSTEMS AND EQUIPMENT CERTIFICATION , 2001 .

[4]  John Barnes,et al.  High Integrity Ada: The Spark Approach , 1997 .

[5]  Bev Littlewood,et al.  Validation of ultrahigh dependability for software-based systems , 1993, CACM.

[6]  F E O'Neill,et al.  USE OF THE C LANGUAGE IN VEHICLE BASED SOFTWARE , 1998 .

[7]  David Lorge Parnas,et al.  Inspection of Safety-Critical Software Using Program-Function Tables , 2001, IFIP Congress.

[8]  Andrew Hodges,et al.  Alan Turing: The Enigma , 1983 .

[9]  Steve King,et al.  Is Proof More Cost-Effective Than Testing? , 2000, IEEE Trans. Software Eng..

[10]  Martin Croxford,et al.  Breaking Through the V & V Bottle Neck , 2003 .

[11]  Lisa Finneran Software Productivity Consortium , 2002 .

[12]  Robert Dewar,et al.  Re-engeneering a Safety-Critical Application Using SPARK 95 and GNORT , 1999, Ada-Europe.

[13]  Bernard Carré,et al.  Ada: the cheapest way to build a line of business , 1995, TRI-Ada '95.

[14]  Bernard Carré,et al.  Information-flow and data-flow analysis of while-programs , 1985, TOPL.

[15]  G. B. Finelli,et al.  The Infeasibility of Quantifying the Reliability of Life-Critical Real-Time Software , 1993, IEEE Trans. Software Eng..

[16]  Weider D. Yu A software fault prevention approach in coding and root cause analysis , 1998, Bell Labs Technical Journal.