Path: utzoo!attcan!uunet!nih-csl!lhc!ncifcrf!haven!udel!wuarchive!psuvax1!rutgers!njin!uupsi!bse.com!eberard From: eberard@bse.com (Edward V. Berard) Newsgroups: comp.object Subject: Re: OOA vs OOD (was: Booch GOOD - Coad/Yourdon BAD) Summary: there are more significant differences Keywords: ooa, ood Message-ID: <0B010001.gv7aox@bse.com> Date: 6 Nov 90 11:06:06 GMT Reply-To: eberard@bse.com Organization: Berard Software Engineering, Inc. Lines: 110 X-Mailer: uAccess - Mac Release: 0.2.7 In article <2bH=02SFe1zd01@amdahl.uts.amdahl.com>, ikluft@uts.amdahl.com (Ian Kluft) writes: > > Books discussed in this posting: > Object Oriented Design with Applications by Grady Booch > Object Oriented Analysis by Peter Coad and Edward Yourdon > (also Object Oriented Analysis and Information Modeling by Shlaer and Mellor) > > In article <3634@vela.acs.oakland.edu> rdthomps@vela.acs.oakland.edu writes: > > If you are looking for a brainstorming session on how to > > draw sketches of objects and the relationships between > > them -- get Coad/Yourdons book (Haahmmm). > > > > However, if you are looking for a very well written book > > on Concepts, Methods, and Applications of the object > > oriented model -- GET BOOCHS book. > > The comparison here is between apples and oranges. Agreed. > > First, they are different mostly because Coad/Yourdon's book is about object- > oriented *analysis*. Booch's book is about object-oriented *design*. True. > OOA is > an advance in systems analysis. It's where system requirements come from. > You should have requirements before you start to design. It's a big deal to > large systems developers. (Note: Yourdon has been one of the biggest names in > systems analysis for over a decade.) Generally true. > Second, the Coad/Yourdon book is from 1988; Booch's was published this year. > One of Booch's references was Coad/Yourdon (and also Shlaer/Mellor's OOA book). > So one should not be surprised that Booch has improved on the object diagram- > ming notation. Although Booch may share a few things in common with Shlaer/Mellor (and virtually nothing in common with Coad/Yourdon), it would be inaccurate to say that Booch "improved" on existing diagramatic techniques. If you examine Booch's original work in object-oriented design (circa 1980), and his subsequent work, you will find that he has taken a substantially different path than either Coad/Yourdon or Shlaer/Mellor. > But the content of the books are different. I don't think it's fair to say > one is better than the other. If you really want the whole picture, get > both. I also strongly recommend Shlaer & Mellor's book. > Here is where I must speak. There are at least 3 different general trends in object-oriented methodologies. The first trend is made up of those people who have a strong background in object-oriented programming languages (oopls). These people seem to have a fairly good grasp of object-oriented concepts, but very little in the way of software engineering experience. Hence, their attempts at object-oriented design seem very "touchy-feely." (You might say that they are attempting to evolve "up" from the programming language level.) The second trend is composed of former "structured" advocates, e.g., Shlaer/Mellor and Coad/Yourdon. These people bring a lot of baggage with them, e.g., data flow diagrams and entity-relationship diagrams. They may have a grasp of more traditional software engineering approaches, but are only beginning to understand object-oriented concepts. (To their credit their later work shows an increased understanding of things object-oriented.) Therefore, their approaches seem wonderfully familiar to those with a more traditional background, and somewhat strange to those with a strong object-oriented background. The third trend (where I put Booch) is characterized by those with both a good understanding of object-oriented concepts, and a good understanding of software engineering. Further, those in this trend have attempted to modify some of the more traditional software engineering concepts to bring them into synchronization with object-oriented concepts. One of the distinguishing aspects of this group is the amount of time they have invested in object-oriented software engineering. Compared with Booch, Shlaer/Mellor and (definitely) Coad/Yourdon are relative newcomers to object-oriented technology. To be sure, there are things I can recommend from all trends. However, I make the following observations: 1. If you are not predisposed to rigorous software engineering, and you have a traditional object-oriented programming background, you will probably feel most comfortable with things like CRC (Class, Responsibilities, Collaboration) cards and responsibility-driven design. [These approaches do introduce a good deal of object coupling and do not seem to work well with medium to large projects.] 2. If you come from a more traditional software engineering background (e.g., structured and data modeling approaches), you will find Coad/Yourdon and Shlaer/Mellor to be more comfortable. You will also find, however, that these approaches are only partially object-oriented. (Although, they are evolving.) This means that some of the promised advantages of an object-oriented approach may not be fully realized. 3. Even if you feel most comfortable with Booch's new book, there will be pieces missing. Booch does not address the beginning of the life-cycle in depth, for example. -- Ed ---------------------------------------------------------------------------- Edward V. Berard | Phone: (301) 353-9652 Berard Software Engineering, Inc. | FAX: (301) 353-9272 18620 Mateney Road | E-Mail: eberard@bse.com Germantown, Maryland 20874 | ----------------------------------------------------------------------------