GeeCON Prague 2014*
The moose likes OO, Patterns, UML and Refactoring and the fly likes Application of OOAD and Software Developmen 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 "Application of OOAD and Software Developmen" Watch "Application of OOAD and Software Developmen" New topic
Author

Application of OOAD and Software Developmen

JiaPei Jen
Ranch Hand

Joined: Nov 19, 2000
Posts: 1309
I was asked this question: "why do you believe application of OOAD techniques is important in software development?"
I would like to gather ideas about proper answers to the question. Please help.
Ilja Preuss
author
Sheriff

Joined: Jul 11, 2001
Posts: 14112
Well, OOA is mainly about understanding the problem domain, OOD about managing coupling in the solution.
So your question could be generalized to "Why are understanding the problem domain and managing coupling in the solution important?" Does that give you some ideas?


The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Allan Halme
Ranch Hand

Joined: Aug 22, 2003
Posts: 62
Ilja, how would you characterize the specific advantages of object-oriented analysis and design as opposed to previous methods, such as structured or data-flow analysis?
Scott Ambler
author
Ranch Hand

Joined: Dec 12, 2003
Posts: 608
Another interesting question is whether it makes sense to talk about OO analysis and structured analyis at all, shouldn't it just be analysis? Technology shouldn't be brought into the question until you're thinking about design I've I'm not mistaken.
Also, does it even make sense to talk about requirements, analysis, and design at all any more? You might find http://www.agilemodeling.com/essays/phasesExamined.htm to be of interest.
- Scott


<a href="http://www-306.ibm.com/software/rational/bios/ambler.html" target="_blank" rel="nofollow">Scott W. Ambler</a><br />Practice Leader Agile Development, IBM Rational<br /> <br />Now available: <a href="http://www.ambysoft.com/books/refactoringDatabases.html" target="_blank" rel="nofollow">Refactoring Databases: Evolutionary Database Design</a>
Ilja Preuss
author
Sheriff

Joined: Jul 11, 2001
Posts: 14112
Originally posted by Allan Halme:
Ilja, how would you characterize the specific advantages of object-oriented analysis and design as opposed to previous methods, such as structured or data-flow analysis?

To be honest, I'm not even sure what "object oriented" means in the context of analysis.
For design/programming, OO doesn't *replace* the structured approach, but does add to it. So it simply gives you more options - mainly techniques for managing dependencies such as polymorphism.
Kishore Dandu
Ranch Hand

Joined: Jul 10, 2001
Posts: 1934
Because it is one of the technologies that is paying pretty well lately(well, in some sense provided you are on the top of the pack).
We, software junkies are running after making good bucks. So we adopt to such technologies to get the best bang for our buck.
Everybody knows this, but sure don't mention in an interview
Dan.


Kishore
SCJP, blog
Ilja Preuss
author
Sheriff

Joined: Jul 11, 2001
Posts: 14112
Originally posted by Chris Daniel:
We, software junkies are running after making good bucks. So we adopt to such technologies to get the best bang for our buck.
Everybody knows this, but sure don't mention in an interview

Well, you are possibly correct that some people out there use an OO language because it's just the way you have to do it today. But with all due respect, those people most often don't grok OOD/P at all - actually they quite often produce quite messy un-OO designs.
And certainly that's *not* what makes OO important for *software development*. What makes it important is that it provides tools to keep systems more mobile, and better maintainable. All the good developers I know understand that and strive to understand how to use OO and several other paradigms to do the best work they can.
Ravi Sathish
Ranch Hand

Joined: Feb 26, 2002
Posts: 131
My 2 cents:
OOA & OOD are important phases in high-level architecture design:
some steps/phases in S/W Engineering until High-level architecture design can be categorized as:
1> Perform domain analysis for requirements determination
2> Create Actors and Use Cases for verifying requirements
3> Discover potential Domain Objects.. This is analysis phase
4> Create sequence, class and object interaction diagrams.. Design phase
Ravi
Ilja Preuss
author
Sheriff

Joined: Jul 11, 2001
Posts: 14112
Originally posted by Ravi Shankar Sathish:
My 2 cents:
OOA & OOD are important phases in high-level architecture design:
some steps/phases in S/W Engineering until High-level architecture design can be categorized as:
1> Perform domain analysis for requirements determination
2> Create Actors and Use Cases for verifying requirements
3> Discover potential Domain Objects.. This is analysis phase
4> Create sequence, class and object interaction diagrams.. Design phase

Analysis and Design are certainly important *activities*. Thinking of them as phases is ineffective, in my not so humble opinion, because it ignores the feedback between the activities.
Also, your answer doesn't seem to address *why* *OO* is important. Software Developers did analyze and design before OO was known, so what are the benefits of OO?
 
GeeCON Prague 2014
 
subject: Application of OOAD and Software Developmen