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.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: fac41,e01bd86884246855 X-Google-Attributes: gidfac41,public X-Google-Thread: 103376,fb1663c3ca80b502 X-Google-Attributes: gid103376,public From: "Bob Allen" Subject: Re: Interresting thread in comp.lang.eiffel Date: 2000/07/19 Message-ID: #1/1 X-Deja-AN: 648175769 References: <8ipvnj$inc$1@wanadoo.fr> <8j67p8$afd$1@nnrp1.deja.com> <395886DA.CCE008D2@deepthought.com.au> <3958B07B.18A5BB8C@acm.com> <395A0ECA.940560D1@acm.com> <8jd4bb$na7$1@toralf.uib.no> <8jfabb$1d8$1@nnrp1.deja.com> <8jhq0m$30u5$1@toralf.uib.no> <8jt4j7$19hpk$1@ID-9852.news.cis.dfn.de> <3963CDDE.3E8FB644@earthlink.net> <3963DEBF.79C40BF1@eiffel.com> <2LS85.6100$7%3.493920@news.flash.net> <8k5aru$1odtq$1@ID-9852.news.cis.dfn.de> <8k8pk2$20cab$1@ID-9852.news.cis.dfn.de> <_dS95.9945$7%3.666180@news.flash.net> <5f8d5.10850$zW2.181285@news.flash.net> X-Priority: 3 X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2314.1300 X-MSMail-Priority: Normal Newsgroups: comp.lang.ada,comp.lang.eiffel Date: 2000-07-19T00:00:00+00:00 List-Id: > Superior to what? In solving what problem? > > (Coincidences abound: My networks prof asked the class last time: "Which is > the superior LAN protocol: Ethernet, token ring, or token bus?" The answer > to that one is the same as the answer to your question!) > Everyone knows that 10Base2 is the ultimate LAN. 8>} > > exept that IYHO in this particular case even DbC > > would have been: Not Enough ! > > Not Enough, and maybe even Not Superior (for this problem). > For any enterprise/multi-enterprise/large scale/non-trivial/etc. system to be developed with a high level of quality, due diligence must be made to ensure consistency, understandability, and compatibility. >From my over 12 years experience doing software development on platforms from the PIC16F84 to Mainframes to Distributed objects on various UNIX platforms, I have found that the principles behind DbC to provide the most stable implementations. The trick is not to introduce these principles at code time. For maximum effect they need to be introduced at requirements time and must permeate the entire enterprise thought processes. NOT JUST SOFTWARE, but a whole way of thinking and working. DbC is not magic, it requires a lot of effort on everyone's part. It does provide you with a set of tools and if applied with discipline, can produce software of very high quality. To be used effectively one must have a solid understanding of the problem domain. The goals need to be clearly stated, and you have to have support from upper management. The question is not whether or not software should have contracts, as all software does. The real question is do you write them down, and to what degree of formality do you write them down. Do I express them in 'natural language', pictures, mathematics, or something else. Please show me a library that does not have some notion of contracts and I will show you complete chaos. Because if there were no contracts in place, then any function could be called at any time with any number and type of parameters, and do anything it wanted to. Thanks, Bob Allen Bob's Weekend Wonders Training and Consulting