aspose file tools*
The moose likes OO, Patterns, UML and Refactoring and the fly likes Object-oriented Design in Java book Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Engineering » OO, Patterns, UML and Refactoring
Bookmark "Object-oriented Design in Java book" Watch "Object-oriented Design in Java book" New topic
Author

Object-oriented Design in Java book

PGautam
Greenhorn

Joined: Mar 02, 2000
Posts: 19
I looked at this book, "Object-oriented Design in Java" by Stephen Gilbert & Bill McGardy. I felt it is ok for beginner in OO design in Java. Any other good OOPs design books using Java. Appreciate your input.
Thanks
Ray Marsh
Ranch Hand

Joined: Jan 12, 2000
Posts: 458
Refactoring by Martin Fowler comes highly recommended.
Although, I have not read it, yet, myself.


Anxiety does not empty tomorrow of its sorrows, but only empties today of its strength. – Charles Spurgeon
paul wheaton
Trailboss

Joined: Dec 14, 1998
Posts: 20729
    ∞

Just this last weekend I made it through the end of "Refactoring".
I found that I got the most material from the beginning of the book. Then I was given some light brain food in the middle (the list of refactorings). I only browsed the end - it was written by a bunch of other guys and didn't feel like the sort of food I was looking for.
www.javaranch.com/books.html has more info.


permaculture Wood Burning Stoves 2.0 - 4-DVD set
John Wetherbie
Rancher

Joined: Apr 05, 2000
Posts: 1449
Good OO design books are pretty hard to come by, whatever language these use for their examples (if they use one).
The following are the best I have found:
Introductory: Designing Object-Oriented Software by Wirfs-Brock, et al
General Design: Designing Object-Oriented C++ Applications Using the Booch Method by Robert Martin
Patterns: Design Patterns by Gamma, et al
Rules of Thumb: Object-Oriented Design Heristics by Arthur Riel
Refactoring is a great book by I would not consider it a design book like the others I have listed. I see it as a programming book, maybe a detailed design book.


The only reason for time is so that everything doesn't happen all at once.
- Buckaroo Banzai
Amit Zzz Kulkarni
Ranch Hand

Joined: Jul 05, 2000
Posts: 30
You can also try out
'Java Design :Building Better Apps & Applets' by Peter Coad & M. Mayfield.
This covers inheritance vs composition , variuos forms of Notifications (Listener,Observer etc...).Also has a good description on Interfaces.
tinks
Greenhorn

Joined: Feb 23, 2002
Posts: 27
hello,
I have been studing for scjp2 and also doing a java project at work and have found that just scjp2 would be enough, as the fundas and implementation of oops are very important, can anyone
explain me what is re-factoring and is it another name for oops
and which is the best book for oops.
thanks.
paul wheaton
Trailboss

Joined: Dec 14, 1998
Posts: 20729
    ∞

The sub title of the refactoring book is "Improving the design of existing code".
Basically it's looking at a program that is not as elegant as it could be and then taking the steps needed to make it more elegant.
tinks
Greenhorn

Joined: Feb 23, 2002
Posts: 27
Thanks paul,
that means designing the code in an elegant manner using oops. I would like to buy a book on oops(refactoring), please suggest me a good book.
thanks
paul wheaton
Trailboss

Joined: Dec 14, 1998
Posts: 20729
    ∞

I have a mountain of suggestions at http://www.javaranch.com/bunkhouse.html including a review of Refactoring.
tinks
Greenhorn

Joined: Feb 23, 2002
Posts: 27
Paul, but my doubt is refactoring same as oops and is there any book specific for oops in java. I am thinkning to buying oops book by "gamma" what are you suggestions on this books and any other book you would suggest on oops, the cost of the refactoring book is Rs 1300($26).
thanks.
Anonymous
Ranch Hand

Joined: Nov 22, 2008
Posts: 18944
There are free and excellent books listed here, James W. Cooper's: "Java Design Patterns, A Tutorial" included.
http://members.spree.com/education/developergrp/FreeBooks.HTM
roseanne
paul wheaton
Trailboss

Joined: Dec 14, 1998
Posts: 20729
    ∞

I've done OO for so long, I haven't read any into books. The only OO books I read are covering specific topics. Sorry.
tinks
Greenhorn

Joined: Feb 23, 2002
Posts: 27
Thank you, Paul and Roseannne.
I have still kept my self unclear. I have a task at hand i.e
creating a caroom game sort of a pool game, when i approached the problem I came up with only one class and became very confused with the code as it was as procedural code. What I would like to know is there a book where It explain how to approch a problem and give clear solution in oops. I have also decompiled a pool games from jars.com, the code is so beautiful
with everything so very generalised that has got me to think as to have should I approach a problem and compose It in oops.
thanks
paul wheaton
Trailboss

Joined: Dec 14, 1998
Posts: 20729
    ∞

The key is to think of the objects that will be involved: balls, holes, table, cues, etc.
I can see the need for an OO design book here. I've just been doing it so long, it seems obvious to me, but I'm struggling to explain it.
[This message has been edited by Paul Wheaton (edited August 17, 2000).]
tinks
Greenhorn

Joined: Feb 23, 2002
Posts: 27
thanks paul,
a firend of mine has suggested this book by grady booch, but this is related to c++ oops should I go for this book,
I am sorry to be so persitant because I just cant think how to make every object interact please paul suggest a good oops,
especially in java. thanks a lot for being patient. thanks again.
Anonymous
Ranch Hand

Joined: Nov 22, 2008
Posts: 18944
Objects are things. Start your analysis by listing the things that make up the domain of your problem. Just list them for now, don't give them behaviors or attributes (methods and fields) yet.
Now work thru the important scenarios in which your things interact in a real world sense (not in a programming sense). You'll likely refine your thing list as you do this. Don't get too detailed. Once you're happy with your interactions, use them to tell you what operations your things must support. Go back and forth a few times, recasting your scenarios in terms of your operations until you've got stable definitions for the operations.
OK, you're done analyzing (for now). Design is where you start thinking about your program (NOT your code). Start by bringing in the classes (things) you came up with in analysis. Redo your scenarios, this time from the perspective of the user of your eventual program. Think about data structures and algorithms. Add classes that support program operations. Keep going back and forth between your dynamic (scenario) and static (class hierarchy / containment) models until you've got return and argument types for each method, and you know the sequence of method calls for each scenario. As you refine your static model, look for opportunities to use inheritance and containment to add elegance. (Look for commonalities between classes, and use inheritance and / or delegation to represent them.) Here's where a knowledge of design patterns comes into play.
OK, you've got a design with a class hierarchy, public and protected methods for each class, and some idea of the logic each method must implement. Start coding it. Pick a reasonable path through the class hierarchy, one that allows you to test small pieces often.
As you proceed through these steps, you'll likely find errors and shortcomings in your work products from the previous step. Don't hesitate to step back, BUT ALWAYS BE AWARE WHICH STEP YOU'RE DOING. Don't design in your code editor. If you're doing analysis, don't even think about the data structures. Finally, don't wait to "totally complete" a work product before proceeding to the next phase, or you'll find yourself in analysis paralysis.
Andrew Logan
Greenhorn

Joined: Sep 19, 2000
Posts: 5
Perhaps this book will help "Thinking in Java" by Bruce Eckel at www.BruceEckel.com
Steve Fahlbusch
Bartender

Joined: Sep 18, 2000
Posts: 582
    
    7

The Booch book is very good but you get a very big dose of the Booch Methodology which is overkill for most small projects.
The best series of books i have seen are the yourden OO books:
OO Analysis - Coad, Yourden
OO Design - Coad, Yourden
OO Programming - Coad, Nicola
The OOP books uses Smalltalk and C++, but the concepts still apply well and the steps are small, so you could draw some
direct conversions to Java.
Serge Plourde
Ranch Hand

Joined: Jun 23, 2000
Posts: 140
In addition to Andrew's suggestion, at the same site
www.bruceeckel.com
you can get ThinkningInJavaWithPatterns, free downloadable book.
j. luo
Greenhorn

Joined: Oct 11, 2000
Posts: 5
"Thinking in Patterns with Java", written by Bruce Eckel, is another excellent book. I just love it. I've read the OO Patterns by the gang before. TIPJ is a good book to compensate the OO since it has enough examples in Java. I had this book free from http://members.spree.com/education/developergrp/FreeBooks.HTM
Barb Stanny
Greenhorn

Joined: Oct 11, 2000
Posts: 2
Patterns in Java, Vol. 1:A Catalog of Reusable Design Patterns Illustrated with UML
Author: Grand, Mark
This is a pretty good book. Our main concern was the Command Pattern so I really didn't *read* the whole thing.
[This message has been edited by Barb Stanny (edited October 11, 2000).]
Preety Agarwal
Ranch Hand

Joined: Sep 28, 2000
Posts: 75
Object oriented software engineering by Jacobson is an excellent book.
Preety
shailesh sonavadekar
Ranch Hand

Joined: Oct 12, 2000
Posts: 1874
i agree with john weitherbie. Good oops books are very hard to come by . He has given very nice list of very good oops books.

Basically , books written by smalltalk programmers like ward cunningham , kent beck ( xp fame ) are very good books. Since , smalltalk is considered as the purest oops language & most of the features of java are coming from smalltalk ( mvc paatern , first pattern given in gang of four book is from smallalk only.)
nobody has spoken about the crc cards. they are one of the best techniques to learn oops.
once again , epic book on this subject is by Kent Beck & Ward Cunnigham ( using crc crads ) . some intorduction is given in martin fowler's UML Distilled regarding crc cards.
Another smalltalk guru , Timothy Budd has written very good book on oops. one who doesn't know anything about oops , can start with thuis book.
afterwards , one on the best books on oops , which i think is not mentioed in this discussion forum is by Miller Page-jones.
this is a must read for oops lovers.
I tend to disagree with Preeti Agrawal regarding book of Jacbson. Nodoubt it is the best starting book for use case analysis. but , it is not oops book. it is software engg. book with oops flavour in it. The book is written in 1993( i think so. if it is wrong ,please correct me.) now ,after 7 yrs. lot of changes have taken place in this area. i t slightly outdated. Mr. Jackbsons's new book considering business modelling into a/c is very good book.
Refactoring by marin fowler shall not be considred as oops book. Refactoring is a new methodology , whose purpose is to improve on the existing code , which is already constrcuted.
once , you are having thoroug knowledge of oops then you will be in a position to apply the things mentioed in the book. basically , he has treated java in greater detail in this book.
but, there are books on smalltalk refactoring , from where mkartin fowler has taken the inspiration. People have developed the smalltalk browsers to refactor the code. somebody should do it for java.
Books mentioned by Steve Fahlbusch are excellent ones.
OO Analysis - Coad, Yourden
OO Design - Coad, Yourden
OO Programming - Coad, Nicola
Steve can you please tell me from where you got these books. In, india they are very difficult to get. can u tell me some resource. I desparately need those books. ED Yourdon is one of the best oops authors. His book on Structured Programming Written way back in 1978 is one of the best resources.
another good book is
Object Technology: A Manager's Guide
by David A. Taylor
Since , we are discussing about oops books , the design pattern books , refactoring books shall not be discussed as they are advanced topics , which can be touched upon if u have solid knoledge of oops.
bye.
Steve Fahlbusch
Bartender

Joined: Sep 18, 2000
Posts: 582
    
    7

shailesh,
Of the three books:
OOA and OOD are available on Amazon (easiest way to
find is to go Ed Yourdon's site
http://www.yourdon.com/
go object oriented books and follow link at
Coad ....Object Oriented Design.
You can find the OOA book from there.
The OOP book is out of print - but since I used it when
I was teachning in San Diego, and since I know of a few
other professors that used the book, I would expect that
the used book link should be able to find a copy.
Hope this helps,
steve

[This message has been edited by Steve Fahlbusch (edited October 12, 2000).]
Doug Melzer
Ranch Hand

Joined: Mar 23, 2000
Posts: 51
I like Mark Grand's book "Patterns in Java, Volume 1, A Catalog of Reusable Design Patterns Illustrated with UML". I feel it does a nice job in presenting the characteristics of a design pattern, providing the accompanying UML representation, and Java source implementation.
shailesh sonavadekar
Ranch Hand

Joined: Oct 12, 2000
Posts: 1874
Hi ,Steve Fahlbusch . thank you for your prompt reply. It is very , very nice to hear from the professor participating in the forum. I hope the list given by me is really worthwhile. You must have taught for quite a long time. I hope you will be great help to me in the future through this forum.

Regarding the books that you have metioned , i know that they are available on amazon.com. But , the delivery time is high to india. At the same time the cost of the book becomes hefty , as it is in dollars plus there are hugh shipping expenses. right now I can not buy them at such high cost in India. Can you tell me the other resource who an help me out ? Some students who have used them & they don't want the book now.

sorry to bother you. Bye.
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Object-oriented Design in Java book