Granny's Programming Pearls
"inside of every large program is a small program struggling to get out"
JavaRanch.com/granny.jsp
Win a copy of Java Database Connections & Transactions (e-book only) this week in the JDBC forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Devaka Cooray
  • Knute Snortum
  • Paul Clapham
  • Tim Cooke
Sheriffs:
  • Liutauras Vilda
  • Jeanne Boyarsky
  • Bear Bibeault
Saloon Keepers:
  • Tim Moores
  • Stephan van Hulst
  • Ron McLeod
  • Piet Souris
  • Frits Walraven
Bartenders:
  • Ganesh Patekar
  • Tim Holloway
  • salvin francis

Want to learn how to model oo applications using uml  RSS feed

 
Ranch Hand
Posts: 89
C++ Java Python
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I really want to learn how to model oo software using UML. From what I can see modeling software using UML leads to better quality code.
I was wondering if anybody could suggest a good book that lays out the basics of UML and modeling software?
I'm still a beginner so it would help if the language isn't too technical!
Thanks in advance!
 
Bartender
Posts: 2292
3
Eclipse IDE Java Spring
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Greetings, Ashwin!

From what I can see modeling software using UML leads to better quality code.



Well, not necessarily. The quality of your code will depend on what and how you design your code, and also on your programming skills.

There's this great book by Martin Fowler, named UML Distilled. There's also UML's official web site, where you can find other resources.
 
Sheriff
Posts: 13480
222
Android Debian Eclipse IDE IntelliJ IDE Java Linux Mac Spring Ubuntu
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

Ashwin Rao wrote:From what I can see modeling software using UML leads to better quality code.


I have been programming for a long time, starting a number of years before UML was even created. I even have an IBM certification that included UML but that's about as much as I've ever had to deal with UML. In fact, we used to have a fairly active forum here for discussions about that particular certification. As far as I can see, that and the certification has pretty much petered out.

UML is a notation and a UML diagram is a picture on which conversations can be anchored. However, without those conversations, you get about as much use from a UML diagram as you would get fun out of a picture of people at a party. Unless you were actually at the party, you don't really get much from the picture. Likewise, unless you know intimate details of the conversation that went into creating the UML diagram, you really only get a vague idea of the thought process that went into creating it.

Now, you can certainly use UML to draw out your ideas and carry on a conversation with yourself; that might still be useful if you have the ability to weigh different options and argue for and against yourself. There are people who are good at doing that. Honestly, I can't even remember the last time I used UML for work. Nowadays, I just use informal block diagrams and very rarely, a small subset of Agile Modeling notations, when I have to draw out a rough picture of a design when I'm having discussions with my team members.

I think it's better to focus on learning about design principles like SOLID, DRY, and SLAP and the Gang of Four Design Patterns. Knowing and applying these principles and patterns will help you create better designs much more than simply knowing and using UML.
 
Junilu Lacar
Sheriff
Posts: 13480
222
Android Debian Eclipse IDE IntelliJ IDE Java Linux Mac Spring Ubuntu
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

Ashwin Rao wrote:From what I can see modeling software using UML leads to better quality code.


To put it another way: This is kind of like thinking that using a nice drafting board will lead to you building a nice house. There's a lot more that goes to creating quality code than UML and I would argue that you're misleading yourself if you think there's anything more than an indirect incidental correlation, if any at all, between using UML and increased quality of the code.
 
Ashwin Rao
Ranch Hand
Posts: 89
C++ Java Python
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thanks for the help!
I'll go through all the link you've posted! Thanks a lot!
 
Author
Posts: 63
6
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Knowledge of UML does not make you a better designer. There are many UML painters who draw nice looking UML diagram but their design sucks.

UML provides you an abstraction, a view of your design to help you comprehend the system. You need to learn many other things to be a good designer.
 
Crusading Chameleon likes the size of this ad:
how do I do my own kindle-like thing - without amazon
https://coderanch.com/t/711421/engineering/kindle-amazon
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!