Win a copy of Clojure in Action this week in the Clojure forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Any Good Book/Resource for learning OOAD.

 
Prateek Agarwal
Greenhorn
Posts: 2
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi All,

Please suggest me any book/resource for learning OOAD with UML. I prefer a book with lots of examples preferably in Java.

Thanks
Prateek
 
David O'Meara
Rancher
Posts: 13459
Android Eclipse IDE Ubuntu
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
This is not a servlet question, moving to the OO, Patterns, UML and Refactoring forum.

Dave
 
Scott Ambler
author
Ranch Hand
Posts: 608
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Introduction to the diagrams of UML 2 is basically a free, online version of UML Distilled.

- Scott
 
Peer Reynders
Bartender
Posts: 2939
5
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Originally posted by Prateek Agarwal:
Please suggest me any book/resource for learning OOAD with UML. I prefer a book with lots of examples preferably in Java.


OOA/D usually stands for Object Oriented Analysis and Design - the "D" stands for "design", not "development". As such you may expect to see some example code but don't expect lots. Currently I believe that Craig Larman's Applying UML and Patterns - An Introduction to Object-Oriented Design and Iterative Development (3e) is pretty much the standard. It has some Java examples.
Scott Ambler didn't mention his own book The Object Primer : Agile Model-Driven Development with UML 2.0 probably because it�s not Java specific and there aren't a lot of examples (at least not in the earlier edition) � it�s a design text after all; check it out anyway.
If you want lots of Java Development examples Jeff Langr's Agile Java(TM) : Crafting Code with Test-Driven Development (Robert C. Martin Series) might be more up your ally - at least it gets right into TDD (test-driven development). Robert C. Martin's UML for Java Programmers juxtaposes a lot of UML and Java, however it�s his Agile Software Development: Principles, Patterns, and Practices that you should have a serious look at.
 
Ilja Preuss
author
Sheriff
Posts: 14112
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Originally posted by Peer Reynders:
OOA/D usually stands for Object Oriented Analysis and Design - the "D" stands for "design", not "development". As such you may expect to see some example code but don't expect lots.


I respectfully disagree. The whole purpose of design is to assist in producing good code. So to lean what good design is, you need to learn how design translates into code, and what good code is. Be wary of books that don't connect the design to code.

My personal favorite is the above mentioned "Agile Software Development" by Robert C. Martin.
 
Peer Reynders
Bartender
Posts: 2939
5
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Originally posted by Ilja Preuss:
I respectfully disagree. The whole purpose of design is to assist in producing good code. So to lean what good design is, you need to learn how design translates into code, and what good code is. Be wary of books that don't connect the design to code.

I�m not advocating BUFD (Big Up Front Design) here. I almost felt like celebrating when I read Martin Fowler�s Is Design Dead? six years ago, as it emphasized the importance of code and refactoring. However OOA/D covers such a large range of activities that you can only dedicate so much room to "code" � there are other forms of communication necessary during Analysis and High Level Design.
Granted Graig Larman's text is, as one reviewer put it, "tediously thorough" but that's what makes it valuable as a reference not just as a learning tool.
If you�d use the amount of example code as a discriminator you�d miss out on Rebecca Wirf-Brock's Object Design Roles, Responsibilities, and Collaborations (no code), Eric Evan�s Domain Driven Design � Tackling Complexity in the Heart of Software (a little Java code), Martin Fowler�s Analysis Patterns � Reusable Object Models (some Smalltalk code) - just to name a few examples. Yet I believe that these books make important contributions to the reader�s capability of cracking the type of problems which software is supposed to help solve.
 
manuel aldana
Ranch Hand
Posts: 308
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
i agree with most of above responses.

use uml either to generate code or for communication/understanding of your system, though system-complete code generation with uml will still take some years...
if you use uml for upfront design, where you map from diagrams to your code manually it becomes a maintaining horror, because your design emerges after development time. keeping two models (uml+java) synchronized manually is tough error prone work.

so only learn uml roughly and invest more effort into refactoring, which connects closely to (emergent) object oriented design.
but i think uml-diagrams are a great way to communicate with yourself and with colleagues.
 
kri shan
Ranch Hand
Posts: 1453
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
IBM's RSA(Rational Software Architect) supports round-trip engg.(from UML to code / code to UML). But it's not 100% conversion.
 
Simon Baker
Ranch Hand
Posts: 57
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Bertrand Meyer's "Object-Oriented Software Construction" is still the dogs for me.

http://archive.eiffel.com/doc/oosc/
 
I agree. Here's the link: http://aspose.com/file-tools
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic