Solved

OOAD: Reference and Educational Materials

Posted on 1999-01-22
6
401 Views
Last Modified: 2008-02-26
I've been programming for nearly 17 years now, and have up to now been able to get away with performing very little analysis work and my designs have always come to me during experimentation and prototyping.  Most of my applications up to this point have been rather trivial in size and complexity.  I now find myself being moved into roles of greater responsibility for the overall analysis, design and management of larger and more complex projects.

I've started reading about object oriented analysis and design techniques and it seems like a great methodology to adopt, however where are the tools?  Rational Rose had the Microsoft Visual Modeler included in the latest rev of Visual Studio, it has a lot of great features, but it doesn't seem stable enough to rely on for large projects.

So what I need is some pointers to online educational materials (or actual books) regarding the ooad process as well as some pointers to excellent ooad applications.  Freeware would be ideal, (I don't think I'll be so lucky) but a fully functional demo would be great too.  I'd like to mostly hear from anybody who is in a role similar to what I described above, however any input would be great.

Thanks,
-Ray
0
Comment
Question by:rayb
6 Comments
 
LVL 2

Author Comment

by:rayb
ID: 1184866
BTW, I'm also mostly concerned with UML as it seems to be the emerging standard.

-Ray
0
 
LVL 4

Expert Comment

by:nil_dib
ID: 1184867
A good book is "Object Modelling Technique"
from James Rumbaugh.
Look also for articles and books from Grady Booch and Edward Yourdon.
These three guys are the gurus in OO and the fathers of UML.
0
 
LVL 3

Expert Comment

by:rmichels
ID: 1184868
my 2 cents :)

I was in your shoes a few years ago, moving into OOAD with OMT (prior to UML).  I have probably about 120 hours of instruction on OOA, OOD and applying C++ to OMT.

We sort of created a hybrid model to fit our needs.  If you follow OOA/OOD to the n-degree..you will have spent many many months doing conceptual design and modelling.  We found that was too much with business needs/desires. Doing a good object model and then prototypeing it was the way to go..and interate the model from there.  Also doing the object interaction diagrams was very useful to develop methods and attributes.

You also have to be careful of your implementation model.  For examlpe VB does not support inheritance directly (though you kindof kludge it)..so a true object model would not fit.

C++ with COM had similar problems...you do thing more by aggregation/delegation (but that is changing with COM++).

I guess my bottom line advice is: Don't get too wrapped up in performing the pure tasks with appying reality check, you can iterate forever on an object model..cause there never is really a true correct way to do them.
0
Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

 
LVL 2

Author Comment

by:rayb
ID: 1184869
In response to rmichels...

This is good advice...
Perhaps as I continue reading the materials that I have, this will become apparent, but, how do you know when you've analyzed and designed enough?  I'm sure there is no RIGHT answer to this question, but still, how do you know when you've designed far enough?  If you go only half way then your developers may follow your poorly thought out design and wind up painting themselves into a corner.  Then on the other hand, if you take it too far, the developers may consider you to be too oppresive and stiffling their creativity.

-Ray
0
 
LVL 1

Accepted Solution

by:
arbitrary earned 50 total points
ID: 1184870
The best thing you should do is read the book "Design Patterns"
by Erich Gamma,Richard Helm,Ralph Johnson and John Vlissides .
(Addison-Wesley).
it's the best refference in the market and it shows the best techniques for writing reusable object oriented code via a series of known design patterns.
so far it solved me a lot of problems.

0
 
LVL 2

Author Comment

by:rayb
ID: 1184871
Took me awhile to look through those titles, but they are quite good.  Thanks.

-Ray
0

Featured Post

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Move constructor only called if marked noexcept? 6 108
thread-safe code in c++ 2 116
max float value 3 51
boost::uuid crashes 17 13
This article will show you some of the more useful Standard Template Library (STL) algorithms through the use of working examples.  You will learn about how these algorithms fit into the STL architecture, how they work with STL containers, and why t…
Go is an acronym of golang, is a programming language developed Google in 2007. Go is a new language that is mostly in the C family, with significant input from Pascal/Modula/Oberon family. Hence Go arisen as low-level language with fast compilation…
The goal of the tutorial is to teach the user how to use functions in C++. The video will cover how to define functions, how to call functions and how to create functions prototypes. Microsoft Visual C++ 2010 Express will be used as a text editor an…
The viewer will learn how to user default arguments when defining functions. This method of defining functions will be contrasted with the non-default-argument of defining functions.

831 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question