From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM autolearn=ham autolearn_force=no version=3.4.4 X-Google-Thread: 103376,3869f0598191b11d X-Google-Attributes: gid103376,public X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.google.com!news1.google.com!news.glorb.com!border1.nntp.dca.giganews.com!nntp.giganews.com!local1.nntp.dca.giganews.com!nntp.comcast.com!news.comcast.com.POSTED!not-for-mail NNTP-Posting-Date: Sat, 24 Jul 2004 07:42:20 -0500 Date: Sat, 24 Jul 2004 08:42:20 -0400 From: "Robert I. Eachus" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax) X-Accept-Language: en-us, en MIME-Version: 1.0 Newsgroups: comp.lang.ada Subject: Re: Porting ADA source References: <40FBBB16.8050206@noplace.com> <40fd03b4$1_1@baen1673807.greenlnk.net> <40FD0932.5080604@noplace.com> <40FE607F.6040702@noplace.com> <41010BE5.2090501@noplace.com> <41024C9D.4040105@noplace.com> In-Reply-To: <41024C9D.4040105@noplace.com> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Message-ID: <7p-dnSwepb2xxJ_cRVn-iw@comcast.com> NNTP-Posting-Host: 24.147.90.114 X-Trace: sv3-23r3r0PObh6Sn/+T9jfkua6kvYiNVwYN8QJe5WvW9PO/d5YgVnSB3Gu0YnNR8sdQeOQpn01tUZEnbrT!uztZRueh3oTkdtHcABmYUai0j9+kXy1KAfKxhiLNOKzvr6eGxZdh1qG1jtD/eA== X-Complaints-To: abuse@comcast.net X-DMCA-Complaints-To: dmca@comcast.net X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly X-Postfilter: 1.1 Xref: g2news1.google.com comp.lang.ada:2372 Date: 2004-07-24T08:42:20-04:00 List-Id: Marin David Condic wrote: > Maybe its time to dredge out the "Tower Of Babel" analogy once again? > Large efforts that involve lots of people and complicated decisions seem > to be very hard to do and sometimes become impossible. They never go > forward without errors. People always have their own styles and agendas > they try to impose on the project. No two engineers are going to agree > 100% of the time on the relative merits of various design decisions. > People will always misuse tools. Maybe that's a gas law or a "Y = MX + > B" kind of aspect of the universe. Ada rather deliberately set itself > the goal of trying to overcome the Tower Of Babel syndrome - maybe there > is some hubris in there? No. Hubris would be asserting that MY work is perfect and I don't need code reviews and test plans. Having a goal of zero defects is not hubris, it is good (software) engineering. With physical products, expecting that every widget will be perfect may result in overengineering. But with software, if you have any major defects in the final product, the yield is zero. So when the alternatives are 100% good software and 0%, the only goal that makes sense is to eliminate all bugs. From long personal experience, with Ada it is possible to have residual defect levels under one bug per thousand SLOC after unit test. One residual bug per 10,000 SLOC is often possible, but it can only be a goal not a requirement. (If you want the requirement to be zero residual bugs after unit test, use SPARK. There are always some system level bugs that can't be caught during unit test. The SPARK Examiner should catch most of these during software integration.) If you have less than one bug per thousand SLOC, you can realistically expect to find and fix all remaining bugs during system test. Also from painful experience, if the residual bug rate going into system test is above 1 per 100 SLOC (or 10 per KSLOC, which sounds worse ;-) you can't afford to find and fix all the bugs. It literally is cheaper to throw the code away and start over if you need high quality software. This should all be Software Engineering 101, and taught to undergraduates. Unfortunately, most software engineering has to be learned either on the job, or in grad school after having a couple years of industry experience. Maybe what we need is a Software Economics 101 course for undergraduates in computer science AND management. Fortunately SPARK seems to be catching on for software where reliability is a requirement. However, there are times when you need more expressive power than SPARK currently allows, and of course, SPARK could not exist without a wider Ada community. -- Robert I. Eachus "The flames kindled on the Fourth of July, 1776, have spread over too much of the globe to be extinguished by the feeble engines of despotism; on the contrary, they will consume these engines and all who work them." -- Thomas Jefferson, 1821