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, T_FILL_THIS_FORM_SHORT autolearn=ham autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,6fadc0c79c7b9a30,start X-Google-Attributes: gid103376,public From: "Adrian B.Y. Hoe" Subject: Re: INFO-ADA Digest - 3 Dec 1996 to 4 Dec 1996 - Special issue Date: 1996/12/05 Message-ID: <32a68d04.quantum@quantum.pc.my> X-Deja-AN: 202511379 sender: Ada programming language organization: Lexical Integration (M) Sdn Bhd comments: Gated by NETNEWS@AUVM.AMERICAN.EDU newsgroups: comp.lang.ada Date: 1996-12-05T00:00:00+00:00 List-Id: On Wed, 4 Dec 1996 10:56:47 -0600, "Automatic digest processor" wrote: > > Date: Wed, 4 Dec 1996 02:29:17 GMT > From: Harry Protoolis > Subject: Re: What is wrong with OO ? > > On Tue, 03 Dec 1996 17:38:37 +0000, Ahmed wrote: > >Hello Every Body > > > >I am a new research student working at the field of Object Oriented > Technology. > > ..I have several > >critical opinions about Object Oriented in general, and I like to participate > it > > with you and hear > >you expert comments and opinions > > > >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 > >2 - Resilience to change, i.e. low software maintenance and evolution cost > >3 - Easier understanding by the user and Natural transition between the > analysis > > , design, > >implementation because they all use tangible perceived objects. > > > >However the reality is not so bright as claimed..if so, then nobody today > though > > t to develop a > >software on the traditional structural methods... > > > >My question is what is wrong with OO ? why it did not achieved its targets > yet.? > >What are the main obstacles? > > I think this is overly negative, OO has not been and never will be a > 'silver bullet' to solve all software development problems, but no-one > but a few spin doctors ever claimed it would be. > > However, the real question should be 'has OO made a significant positive > difference', and in my experience the answer is a resounding 'yes!'. > > I have been a professional software engineer for 10 years now, the first > half of which was spent fighting against traditional structured > techinques, it was only despite them I was able to get anything > finished. > > The traditional techniques all suffered from a number of significant > flaws. Perhaps the most damaging one was what I (rather unkindly) think > of as 'The glorification of idiots' phenomenon. What I mean by this is > that projects were typically infested by a group of people who never > wrote any software, but spent most of the budget drawing diagrams that > the implementors never used. > > The main contribution of OO has been was could be termed 'The > glorification on the implementor'. This has been achieved by the > effective marriage of Analysis, Design and Implementation. The result > is that every member of the team does all three of the key tasks. > > In fact IMHO an OO team has no place for anyone who cannot do all > three tasks. Jim Coplein wrote an excellent pattern called > 'Architect also Implements' which covers very nicely the reasoning > behind not allowing non-implementors to design systems. > > Certainly the mecca of automatic reuse has not been achieved, but the > quantity and quality of 3rd party components available for most OO > languages already exceeds that available for their non-OO counterparts, > and IHMO this suggests a bright future. > > Certainly OO has not made writing software trivial or automatic, but > then, *nothing ever will*. > > Cheers, > Harry > - > alt.computer pty ltd software development consultants > OO? It seems like taking a look at Picasso's after having a look at modern arts. It sounds like listening to pop/rock after listening to classical. No doubt at all, the three claims you have mentioned are true. So true that certain group of people believe in it and benefit from it and certain group of people is still resisting it. I came from the structural world. Two books have influenced me and taught in OO. One is Object-Oriented Analysis and Design by G. Booch and the other one is Object-Oriented Modelling and Design by J. Rumbough and his fellows. Many people is still designing their software in structural manner. They have been taught to think straight and doing things in systematical way as computers do. Understanding and applying OO need a different approach. People have to think and response in abstract. Yes, Rumbough mentioned this in his book. Let's take a look at a very simple example, compute overtime wages for a staff from equation OT$ = (OT_Start - OT_End) * OT_Rate * x where OT_Rate = Monthly_Rate / 22 / 8 x = Positive integer from 1..3 depending on the calender day. Normal working day is 1, week end is 2 and public holiday is 3. This is the first problem I had when trying to show to my other team member to reengineer our payroll system using OO methods. For a structural approach, Step 1 - Compute OT duration = OT_Start - OT_End Step 2 - Compute OT_Rate = Monthly_Rate / 22 / 8 Step 3 - Look up in the calender or predefine table to determine value x Step 4 - Compute OT$ True, but let's take a closer look in abstract way. From the analysis, the payroll must be able to compute OT$ for different department which has different OT_Rate and value x and perhaps OT_Duration. Different company, different department, different OT_Rate and x are essentially different object. We can classify OT_Rate, OT Duration, and x into different objects. By doing so, we created base classes for each of them. We can reuse or harvest the flexibility by inherit from the base class. Therefore, we can have OT packages for different department and different company. As we understand in the real world, no one department or company has identical calculation. The major obstacle is the transition from one practice to another. It is like religion. One is too deep believing in, it is quite hard to change one's mind. As Rumbough implied in his book, OO should start from analysis to design not implementation. It took me more than a month to explain and demonstrate the methods and techniques and its power behind OO. Nothing is wrong with OO. Something is wrong with people thinking. I hope my 2cents worth is not silly. ;-) Any comments? -------------------------------------------------------------------------- Democracy, Capitalism, Socialism, Communism, have nothing wrong, only the spelling and idealogies behind them and the people who believe in them. -------------------------------------------------------------------------- I speak for myself! -- B.Y. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Adrian, B.Y. Hoe VP, Business Development Email : byHoe@quantum.pc.my \/ Lexical Integration (M) Sdn Bhd \/ \/ 13-B Jln Pandan Indah 4/2 \/ \/ \/ Pandan Indah \/ \/ 55100 Kuala Lumpur \/ Malaysia Tel : +60 3 495 4048 Fax : +60 3 495 4037 Email : system@quantum.pc.my >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> member of Team-Ada in Malaysia