*
The moose likes OO, Patterns, UML and Refactoring and the fly likes UML, Java & OO Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of The Java EE 7 Tutorial Volume 1 or Volume 2 this week in the Java EE forum
or jQuery UI in Action in the JavaScript forum!
JavaRanch » Java Forums » Engineering » OO, Patterns, UML and Refactoring
Bookmark "UML, Java & OO" Watch "UML, Java & OO" New topic
Author

UML, Java & OO

Johannes de Jong
tumbleweed
Bartender

Joined: Jan 27, 2001
Posts: 5089
Hi,
If I want to become a very good Java programmer that uses its OO capabilities to it fullest ie. I'm not writing "procedural" Java programs is it really necessary that O know and use UML ??
Laojar Chuger
Ranch Hand

Joined: Dec 20, 2000
Posts: 111
UML is not specially designed for OOP though it grows with it. You can use it for procedural programming. Of course in this way you are not taking full advantage of it. OOAD is even more important than features of java as it gives you tools to solve any problems you face. I believe the mastering of OOAD with UML is a must for anyone who really wants to know what he is doing.
Nathan Pruett
Bartender

Joined: Oct 18, 2000
Posts: 4121

Johannes,
Well, yes and no... You are not required to know and use UML to be a good OO programmer/designer.... However, it helps alot... UML is the preferred notation in most companies that use OOAD, so it can help you communicate your designs clearly and easily to other developers... something that always helps!
-Nate


-Nate
Write once, run anywhere, because there's nowhere to hide! - /. A.C.
Thomas Paul
mister krabs
Ranch Hand

Joined: May 05, 2000
Posts: 13974
I have also found that using UML helps to clarify your thinking about your design. Since there are specific rules to follow, you are more likely to develop a good OO design if you use UML.


Associate Instructor - Hofstra University
Amazon Top 750 reviewer - Blog - Unresolved References - Book Review Blog
Frank Carver
Sheriff

Joined: Jan 07, 1999
Posts: 6920
It's not necessary that you know UML to be a good OO programmer, if you work on your own. UML is primarily useful for communicating designs and design ideas. If you wish to work well with a team of designers, programmers, testers, writers, managers etc., then some sort of standard for communicating OO designs is extreemely useful


Read about me at frankcarver.me ~ Raspberry Alpha Omega ~ Frank's Punchbarrel Blog
Natesh Mosale
Greenhorn

Joined: Feb 27, 2001
Posts: 5
Hi,
No you don't need to know UML to become Java programmer.
UML is used for modelling (infact for any language for
that matter like C++,Visual Basic etc.) and it would help
give sound design for developing applications.

-Nats
------------------
Vishakha Ahuja
Ranch Hand

Joined: Sep 13, 2000
Posts: 191
what is the importance of UML in software developing ? Does it help in better understanding of resources involved in project, or does it help designing the classes or something else ?
Thomas Paul
mister krabs
Ranch Hand

Joined: May 05, 2000
Posts: 13974
Yes, yes, and yes. After a design cycle with UML, you have identified classes, identified DB requirements, identified areas of complexity. All this makes it easier to do budget estimates. (One of my co-workers and I were sitting around analyzing class and sequence diagrams to estimate a project just the other day!)
Thomas Paul
mister krabs
Ranch Hand

Joined: May 05, 2000
Posts: 13974

Hi,
No you don't need to know UML to become Java programmer.
UML ... would help give sound design for developing applications.

IMHO, a java programmer who doesn't code using sound design is failing as a Java programmer. Anybody can hack code... it takes skill and patience to develop sound OO design.
Johannes de Jong
tumbleweed
Bartender

Joined: Jan 27, 2001
Posts: 5089
Thanks for the replies all.
The next question then is, I'm busy learning Java now, gettiing nitpicked , do I start with UML concurrently or do I wait till I'm finished with Java
bill bozeman
Ranch Hand

Joined: Jun 30, 2000
Posts: 1070
Johannes I was kind of in the same spot as you. I didn't know Java or UML. I decided to focus first on Java. I learned the API, the syntax, and all the rules. I study and passed the SCJP. I am still currently going through the CattleDrive now.
With that down, I am now studing UML. I found that it has really helped me knowing Java's fundamentals first because now when I read about class designs and inheritance and stuff like that in my UML books, I can easily relate it to what I know from Java.
It is starting to all come together now
Bill
Thomas Paul
mister krabs
Ranch Hand

Joined: May 05, 2000
Posts: 13974
I would concentrate on Java and sound OO design. Then I would move on to learning UML.
Cindy Glass
"The Hood"
Sheriff

Joined: Sep 29, 2000
Posts: 8521
Note that that also tends to be the progression of a career. A new programmer gets to write some code, but rarely participates in MAJOR design efforts.
As you get experience you often become less of a programmer and more of an analyst. At that point you start working on designs and need design tools MORE.
Note that the SCPJ2 does not require any UML knowledge and does not expect you to code much. The Developers exam expects you to both design and code a system. The Architects exam expects you to be very familiar with patterns and UML (and lots of other stuff).

"JavaRanch, where the deer and the Certified play" - David O'Meara
John Wetherbie
Rancher

Joined: Apr 05, 2000
Posts: 1449
Johannes,
Sorry, I may be a little late on this discussion...
You can be a great OO programmer and not know any UML and you may be able to draw great UML diagrams but not be able to code (or create a good design) at all. (I actually know some people in the "can draw but not design" category). Hopefully as you will progress you will learn to do both well. You'll learn about coding, you'll learn some about designing and UML, and it will become an iterative process. It will take work but it can be done.
I hope you get to where you want to go.
John


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

Joined: Feb 06, 2001
Posts: 55
More and more I am using UML as a common method of communication between programmers. Some diagram types are a great tool for the development process, but I have been using it mostly to express ideas or document currently existing software. I don't believe it is at all necessary to being a great OO programmer, but it is the defacto standard for communicating ideas. You don't have to read music to be a great musician (at least for jazz or rock) but being able to read music facilitates a quick expression of complex idea.


<BLOCKQUOTE><font size="1" face="Verdana, Arial">quote:</font><HR> fantastic, a towel? <HR></BLOCKQUOTE>
Johannes de Jong
tumbleweed
Bartender

Joined: Jan 27, 2001
Posts: 5089
Thank you all for your remarks & advice.
Thomas Paul
mister krabs
Ranch Hand

Joined: May 05, 2000
Posts: 13974
I have someone I work with who is a great architect and can design a beautiful OO application using UML but doesn't know anything about Java.
Johannes de Jong
tumbleweed
Bartender

Joined: Jan 27, 2001
Posts: 5089
Originally posted by Thomas Paul:
I have someone I work with who is a great architect and can design a beautiful OO application using UML but doesn't know anything about Java.

But I suppose he really knows and understands OO ?

[This message has been edited by Johannes de Jong (edited February 28, 2001).]
Thomas Paul
mister krabs
Ranch Hand

Joined: May 05, 2000
Posts: 13974
But I suppose he really knows and understands OO ?
Absolutely! He has been an OO evangelist for several years here. He's just not a coder.
Mirko Froehlich
Ranch Hand

Joined: Aug 21, 2000
Posts: 114
So, does he know _nothing_ at all about Java? I assume that he would at least have to be pretty familiar with the basics of Java and how it implements object-orientation. For example, it would be vital to understand that Java does not support multiple inheritance but supports interfaces, etc. But I am sure he is familiar with at least these aspects. Depending on how you use Java, it might also be important to know particular Java APIs, server-side technologies like JSP, EJB, RMI, etc. In general though, I don't see a problem with being a good architect without knowing Java at the code-level.
-Mirko

Originally posted by Thomas Paul:
I have someone I work with who is a great architect and can design a beautiful OO application using UML but doesn't know anything about Java.

Johannes de Jong
tumbleweed
Bartender

Joined: Jan 27, 2001
Posts: 5089
Originally posted by Thomas Paul:
Absolutely! He has been an OO evangelist for several years here. He's just not a coder.

Must say that I find the whole OO "thing" very logical in my mind I only have a hard time putting it into practice ie. codeing. I suppose it will change once I get to do a "real" project.
Anil Vupputuri
Ranch Hand

Joined: Oct 31, 2000
Posts: 527
Originally posted by Thomas Paul:
A great architect and can design a beautiful OO application using UML but doesn't know anything about Java.

First of all i dont see any necessity to know specific lang. to be an Architect, only requirement is to have ample knowledge in any OO lang. with OOAnalysis & Design.
Anil

SCJP 1.5, SCEA, ICED (287,484,486)
Cindy Glass
"The Hood"
Sheriff

Joined: Sep 29, 2000
Posts: 8521
The fact that C++ allows multiple inheritance, and Java does not definitely COULD affect the design of the system, even at the most abstract levels.
Kostas Perrikos
Greenhorn

Joined: Mar 01, 2001
Posts: 3
Well, i would agree with most of the folks; you don't have to know UML to become a java programmer. However it would be an advantage if you know -also- the analysis in the UML field. If you are interested in many aspects of Java/UML and many of the OO patterns you can visit this web site: http://www.cetus-links.org/
cheers

------------------
Thomas Paul
mister krabs
Ranch Hand

Joined: May 05, 2000
Posts: 13974
Originally posted by Cindy Glass:
The fact that C++ allows multiple inheritance, and Java does not definitely COULD affect the design of the system, even at the most abstract levels.


But Java does support multiple inheritance... through interfaces.
shivani anand
Ranch Hand

Joined: Dec 28, 2000
Posts: 155
UML gives developers a standard way to communicate the details of system design and development. So, I think it can be used in OO and procedural programming. I hope I am right.
shivani
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: UML, Java & OO