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 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Thread: 103376,93a8020cc980d113 X-Google-Attributes: gid103376,public X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.google.com!news3.google.com!out03b.usenetserver.com!news.usenetserver.com!in04.usenetserver.com!news.usenetserver.com!newscon02.news.prodigy.net!prodigy.net!newsdst01.news.prodigy.net!prodigy.com!postmaster.news.prodigy.com!newssvr29.news.prodigy.net.POSTED!4988f22a!not-for-mail From: Newsgroups: comp.lang.ada References: <1176150704.130880.248080@l77g2000hsb.googlegroups.com> <461B52A6.20102@obry.net> Subject: Re: What is wrong with Ada? X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2900.2180 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2180 X-RFC2646: Format=Flowed; Original Message-ID: <42tWh.11820$YL5.9869@newssvr29.news.prodigy.net> NNTP-Posting-Host: 70.134.100.216 X-Complaints-To: abuse@prodigy.net X-Trace: newssvr29.news.prodigy.net 1177181440 ST000 70.134.100.216 (Sat, 21 Apr 2007 14:50:40 EDT) NNTP-Posting-Date: Sat, 21 Apr 2007 14:50:40 EDT Organization: SBC http://yahoo.sbc.com X-UserInfo1: Q[OQB\CEBZUWSSD[N[O@_WH@YR_B@EXLLBWLOOAFWIWTEPIB_NVUAH_[BL[\IRKIANGGJBFNJF_DOLSCENSY^U@FRFUEXR@KFXYDBPWBCDQJA@X_DCBHXR[C@\EOKCJLED_SZ@RMWYXYWE_P@\\GOIW^@SYFFSWHFIXMADO@^[ADPRPETLBJ]RDGENSKQQZN Date: Sat, 21 Apr 2007 18:50:40 GMT Xref: g2news1.google.com comp.lang.ada:15195 Date: 2007-04-21T18:50:40+00:00 List-Id: "Dmitry A. Kazakov" wrote in message news:krrspgzz88g4$.15lzsnhxml4j.dlg@40tude.net... > > It is because SW engineering is not engineering. And that is because CS is > not much science. It rather sways between applied mathematics and "stamp > collecting." > Dmitry, you are one of the contributors to this forum for whom I have great respect. On this point I must, if not outright disagree, then clarify. The fact that most programmers are not engineers is certainly correct. However, this does not mean that those involved in software practice cannot apply engineering principles, methods, and ideas to the development of software. There are clearly some points in software practice where we fall short of being able to apply engineering. On the other hand, there are a lot of opportunities to take advantage of what we know about engineering. Engineering is the largely about achieving predictable results and avoiding failure. It requires that we leverage knowledge from science, mathematics, and previous engineering experience. It also requires that we are able to reason about and reconcile the trade-offs between conflicting constraints: physical world constraints, logical constraints, economic constraints, etc. In the 1970's and later in the 1980's Kenneth Kolence published his works on "software physics." This work, while good in many ways, also helps us to understand the limitations of software from the perspective of natural forces. Natural forces are inherent in most engineering disciplines. Kolence's work also opens the door to understanding with regard to what we need in the way of a physics of software, if such a physics is ever to make sense. Physics is about relationships in behavior between different things. We have the same issues in software. But there are none of the inherent constraints that the natural world imposes. As software engineers, we need to define, create, and impose our own constraints. That is part of the engineering responsibility for a software engineer. At the component level, we have Design by Contract (Bertrand Meyer), and other attempts at doing this kind of thing. We are a long way off from achieving the level of capability we eventually will require. Nevertheless, there is a lot of good engineering practice in place for software, even though most of it is ignored by programmers. One reason I like Ada is that it is designed so we can introduce some engineering into our designs. Ada is not yet at the place where we can do engineering at the level we could in a physical process, but it is a step in the right direction. Future software development tools will extend on those we now have and make engineeering of software even more feasible. Meanwhile, we have many options for the application of engineering in the creation of software. The fact that we do not use them is the sad thing. Finally, the shortcomings of current engineering practice simply mean that we need to work harder to develop improved approaches to engineeering software solutions in the future. Richard Riehle