• Advertisement
Sign in to follow this  

I need some advice with OOD

This topic is 4679 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I as of yet have no higher schooling in computer porgramming but, as the programmes I build get more and more complex I'm finding it harder to design them. Dose anyone know where I can look for some formal methods on OOD? Thanks, Frank

Share this post


Link to post
Share on other sites
Advertisement
I don't think you're looking for formal methods. I think you are looking for an Object Oriented Design recipe book. Since UML is a markup for OOD, I am going to suggest a UML book that have found useful for introducing you to the fundamentals, though it isn't very deep in it's coverage. It will get you going fairly quickly and probably bring you up to speed so you can get into some of the more canonical texts like Design Patterns[1] or Booch's UML book.

So, my suggestion is: Using UML.

[1] Gamedev get's some proceeds if you use this link to purchase the book. I think it would be a nice thing to do should you decide to purchase it. Alternatively, you can use your local library.

Share this post


Link to post
Share on other sites
What is UML?

Grady Booch's Object-Oriented Design (OOD), also known as Object-Oriented Analysis and Design(OOAD), is a precursor to the Unified Modeling (UML). The Booch method includes six types of diagrams: class, object, state transition, interaction, module, and process.

never mind

Share this post


Link to post
Share on other sites
I use the O'reilly's UML pocket reference which cost me 6$US... If you want free, take a walk to the library and get one of those UML books.

I honestly believe that OOD is far beyond knowing UML and it takes time and effort to understand object oriented design and how it will work. It's easy to write a bunch of classes and inherit from them, but to make it reusable is often the hardest task. UML is just a way to model what you forsee your design to look like, it's like say you need a word processor to become a good writer :)

Just understand the concepts of OOD and practice, the need for UML will arise naturally.

Share this post


Link to post
Share on other sites
Quote:
Original post by FrankCashio
Is there any free material out there?
OMG: Object Management Group
UML.org has free stuff including the UML spec and tutorials.

If you're stuck trying to identify classes in your design, you might like to try googling Use Cases. Here's a paper by Alistair Cockburn that describes them.

Hopefully these links are helpful or at least give you some phrases that are useful for googling.

Share this post


Link to post
Share on other sites
Quote:
Original post by achacha
I use the O'reilly's UML pocket reference which cost me 6$US... If you want free, take a walk to the library and get one of those UML books.

I honestly believe that OOD is far beyond knowing UML and it takes time and effort to understand object oriented design and how it will work. It's easy to write a bunch of classes and inherit from them, but to make it reusable is often the hardest task. UML is just a way to model what you forsee your design to look like, it's like say you need a word processor to become a good writer :)

Just understand the concepts of OOD and practice, the need for UML will arise naturally.
Let him complete some projects first before he worries about reuse. Then, if he thinks "oh I just wrote something similar" the OP can refactor his original design and use the refactored components in his new design.

Share this post


Link to post
Share on other sites
Quote:
Original post by flangazorLet him complete some projects first before he worries about reuse. Then, if he thinks "oh I just wrote something similar" the OP can refactor his original design and use the refactored components in his new design.


My favoriute quite on the subject is "Code isn't reusable until it has been reused" can't remember where I first saw it thought. But it does make great sense.

Share this post


Link to post
Share on other sites
Quote:
Original post by petewood
Up-front design is kind of passé now.


In the sense of it being a fashionable trend, maybe. In the sense of it being a worthwhile effort, no. Even Martin Fowler, to whom you linked, argues against the common XP notion that UML is completely worthless.

Share this post


Link to post
Share on other sites
UML is not suitable for capturing implementation details and because of this I believe that both UML and refactoring should be applied together. Refactoring for creating better design after details are known. UML/use cases/collaboration/sequence diagrams for initial behavior based on user's interactions with the app (granted can throw in system use cases as well) and for setting up classes after figuring out object's behaviors. I like the spiral dev process. It's nice to have some brief use cases up front but you might find new ones in next iteration as you gain more knowledge of the system and see how these features fit in together on both basic and detailed levels. The one thing I find strange is two or more people working alongside on the same computer, XP extreme or something like that. I just can't see how that would go if you need more time to figure out an algo and such. I personally don't type code every second, instead there are days I don't touch a computer and work my designs/algos on paper first to make sure they work before I code them up. Or I need days off to figure out the next feature, etc. I would think that a group too would need some time to think things thru first.

Share this post


Link to post
Share on other sites
Quote:
Original post by DaTroof
Even Martin Fowler, to whom you linked, argues against the common XP notion that UML is completely worthless.


Two things going on here. One is that it isn't a common XP notion. Secondly Martin Fowler wrote a book on UML which for the most part says, 'I don't bother using this, that and the other feature of UML'. He describes it and how it can be used and talks about what he finds useful.

There are lots of useful ways of diagramming ideas and XP isn't against them. See Ron Jeffries' way of diagramming and much more on Ward's Wiki

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement