DeathsmilesAt Usall
DeathsmilesAt Usall

Reputation: 13

Could I start off with UML classes before having classes in Java fundamentals?

In reality i won a scholarship at New Horizon in Java, (Getting to the point) there was predefined paradigm that we supposed to start with :

Fundamentals of the Java Programming Language <SL-110-SE6>
Java Programming Language (SL-275-SE6)
Object-Oriented Analysis and Design Using UML (OO-226-SE6)
Developing Applications With the Java SE Platform (SL-285-SE6)
Developing Applications for the Java EE Platform (FJ-310-EE5)
Web Component Development with Servlet and JSP Technologies (SL-314-EE5)
Web 2.0 and Java Web Site Development (DTH-314)
Windows SharePoint Services 3.0 - Level 1
Windows SharePoint Services 3.0 - Level 2
Windows SharePoint Services - Level 1 Building Collaborative Solutions with Team Web Sites

Now they (New Horizon center) are planning to teach us UML at first, They said that will be for ours(my classmates)sake,but there's a strict prerequisite before getting into UML at Sun Educational Center http://education.oracle.com/pls/web_prod-plq-dad/db_pages.getCourseDesc?dc=D61808GC10&p_org_id=1001&lang=US , Now me and my classmates dunno what to do ?

Thanks a million

Upvotes: 1

Views: 385

Answers (3)

sfinnie
sfinnie

Reputation: 9952

This will probably irk the "you don't need no stinkin' UML, just write code" crowd. But anyway...

You don't need to learn Java - or any other programming language - before learning the principles of Object Orientation. In fact, there are some advantages to not learning java (or similar) first.

I wouldn't worry about Sun stating Java as a pre-req for UML. Their perspective is different to yours (i.e. they want to steep you in Java then "progress" to "design").

It is, of course, a balance. Here are some things to bear in mind:

  • Perhaps the most important skill in designing OO software well is being able to identify good abstractions from the problem domain. (see e.g. domain driven design). UML class diagrams are a good way to illustrate those abstractions (classes) and their relationships.
  • The relationships bit is hugely important - and far too often understated. The key to understanding a domain - and representing it well - is to understand the relationships. They are the secret sauce. UML class diagrams give you a far better vocabulary and notation for documenting relationships than any programming language provides.
  • Learn the principles of encapsulation. In particular, the separation of interface from implementation. This isn't specific to UML (and in fact UML isn't particularly good at encouraging it). However, java is worse - much worse. Java fails spectacularly in supporting encapsulation of properties. To really understand it, read the first few chapters of Bertrand Meyer's Object Oriented Software Construction.
  • Learn about distributing behavioural responsibility among classes. If identifying static relationships is the first key tenet of good OO, this is the second (and builds on encapsulation). Application-level functionality is achieved by interaction among objects. Again, that's independent of any programming language. UML Activity and Sequence diagrams are good for this.

Those are the pros for an OO-first approach. UML is a good language for visualing these things. The biggest downside: lack of executability. Nothing reinforces understanding better than seeing your design "run". There are very few UML tools that support execution of your models (aka "simulation"). This is where programming languages are far better - see e.g. the plethora of unit test frameworks. There are however some UML tools that do support execution, might be worth checking them out.

Bit of a long answer, apologies for that. To answer your initial question in summary however: do you need to learn java before learning UML? No. Definitely not.

hth.

Upvotes: 1

Mukesh Singh Rathaur
Mukesh Singh Rathaur

Reputation: 13105

To start learning java, UML is not the mandatory. But for the kind suggestion to learn any Object oriented language not only java if you have batter understanding of UML of object orientation concepts and there implementation then it would be better.

For you if you have less time or time limitation then get the book of UML and start learning at your home and start the classes simultaneously and in other choice if do have full of time go first first with the some UML basics classes and after some contents get covered then start your java classes too. You can get these books for UML references:

http://www.amazon.com/Unified-Modeling-Language-Addison-Wesley-Technology/dp/0201571684 http://www.amazon.com/Unified-Modeling-Language-Reference-Manual/dp/020130998X

Upvotes: 0

shihpeng
shihpeng

Reputation: 5381

Some practical OOP experience is necessary before learning UML, otherwise, you will find that UML is very boring and tedious.

To learn some basic OOP skill, Java Programming Language (SL-275-SE6) would be a good choice.

Fundamentals of the Java Programming Language <SL-110-SE6> would be too fundamental.

Developing Applications With the Java SE Platform (SL-285-SE6)
Developing Applications for the Java EE Platform (FJ-310-EE5)
Web Component Development with Servlet and JSP Technologies (SL-314-EE5)
Web 2.0 and Java Web Site Development (DTH-314)

The above classes are advenced for experienced Java programmer.

The remainings are not Java-related.

Upvotes: 0

Related Questions