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,b87849933931bc93 X-Google-Attributes: gidfac41,public X-Google-Thread: 109fba,b87849933931bc93 X-Google-Attributes: gid109fba,public X-Google-Thread: 103376,b87849933931bc93 X-Google-Attributes: gid103376,public X-Google-Thread: f43e6,b87849933931bc93 X-Google-Attributes: gidf43e6,public X-Google-Thread: 11cae8,b87849933931bc93 X-Google-Attributes: gid11cae8,public X-Google-Thread: 1108a1,b87849933931bc93 X-Google-Attributes: gid1108a1,public X-Google-Thread: 114809,b87849933931bc93 X-Google-Attributes: gid114809,public From: Bill Gooch Subject: Re: What is wrong with OO ? Date: 1996/12/03 Message-ID: <32A47B95.393F@iconcomp.com>#1/1 X-Deja-AN: 202138700 references: <32A4659D.347A@shef.ac.uk> to: Ahmed x-rtcode: 6e00d85732859d452ba4790b content-type: text/plain; charset=us-ascii organization: Icon Computing mime-version: 1.0 reply-to: bill@iconcomp.com newsgroups: comp.lang.c++,comp.lang.smalltalk,comp.lang.eiffel,comp.lang.ada,comp.lnag.java,comp.object,comp.software-eng x-mailer: Mozilla 3.0 (WinNT; I) Date: 1996-12-03T00:00:00+00:00 List-Id: Ahmed wrote: > .... > Object Oriented Technology came with quite promising claims that if achieved can benefit the software > development companies and organisations millions of pounds. > > Some of these claims for instance > 1 - high reusability of objects and frameworks While this may be claimed about specific frameworks, it is not IMO a valid generalization about OOT. It is feasible and important to design and implement objects which achieve immediate *reuse*, general *reusability* is quite rare, and exceedingly difficult to achieve, IME. Typically the costs outweigh the benefits. To be clear what I mean by "immediate reuse" - it is most often fine-grained (method and protocol level) reuse of behavior via inheritance, delegation, etc. which is readily achievable and most important. Medium-grained (class level) reuse is also feasible, although it requires greater design effort and foresight (and/or prior experience in the domain). Large-grained (framework level) reuse is much harder (I think somewhat exponentially with the number of classes/protocols/ relationships involved), and much more rarely achieved. > 2 - Resilience to change, i.e. low software maintenance and evolution cost This depends entirely on the quality of the analysis, design and implementation. Objects effectively *support* resilience by allowing implementations to mirror problems in a way that minimizes unwanted dependencies, thereby limiting the scope of changes. However, such results certainly aren't automatic, and the misconception that resilience is an inherent attribute of OOT works against the accomplishment of it. > 3 - Easier understanding by the user and Natural transition between the analysis, design, I'm very unclear what you mean by "Natural" here, but again, ease of understanding by anyone is entirely dependent on the quality of analysis, design and documentation. Again, OOT used effectively can facilitate ease of understanding, but that doesn't happen by itself. > implementation because they all use tangible perceived objects.... Sure, software objects are "tangible perceived objects" (sometimes perceived anyway), if only inasmuch as we've decided to *call* them "objects." The more I think about it, the more this choice of a name for software entities strikes me as having been a mistake. -- William D. Gooch bill@iconcomp.com Icon Computing http://www.iconcomp.com Texas liaison for the International Programmers Guild For IPG info, see http://www.ipgnet.com/ipghome.htm