This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
I'm big into planning. I actually like to dive right in, but my experiences in other realms has taught me to seek out planning tools. If you're a woodworker, planning your project can reduce your project time up to 5 times or more. The reason is that you identify problems before you have to start fixing them. If I could reenact earlier learning tracks, I would spend just as much time learning to plan projects as I did on the direct skills for those projects.
It seems that now is the time, when I am working out very simple coding examples, to begin to see my projects as code but also as diagrams. I've noticed some of the diagramming tools allow you to click from the diagram object to its respective code.
I have downloaded Eclipse for Java. Should I be using a UML plugin to start me on the UML track?
Learning and using UML is a great idea. I wouldn't worry so much about getting an Eclipse plugin for now, but drawing things out on paper before you start coding can be a big help. I advise sticking to use cases, class diagrams, and those swim lane diagrams whose name I always forget. I find those to be the most useful.
I've been reading Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development (3rd ed, Craig Larman), and my opinion on UML is based on what I've read there--very little actual experience. In that light, a quote may inspire you to think as I do:
It's useless to learn UML and perhaps a UML CASE tool, but not really know how to create an excellent OO design, or evaluate and improve an existing one... Yet, we need a language for object-oriented analysis and design and 'software blueprints,' both as a tool of thought and as a form of communication.
What I'm suggesting is to concern yourself first with the design process: starting with tools that turn UML diagrams into code might be starting in the middle.
p.s. "swim lane diagrams" are sequence diagrams, I think.
edit: Probably not, actually. I think swim lanes are just swim lanes.
I am new to programming and am just starting to learn Java. I took a class on Object-oriented design first, with a big focus on UML, and I think it was helpful.
If you want to play around with it, visual paradigm SDE is a UML plug-in for eclipse. You can download the standard edition with a 30 day trial and it will let you do some reverse engineering into eclipse. For example, create a uml class diagram and it will create the class in eclipse.
UML diagrams are a great way to figure out your relationships and flow before you start coding.
I'll say it again though, and maybe a bit stronger this time: UML diagrams are not a way to figure anything out. Analysis and design techniques are a way to figure things out; UML is a tool. For example, the statement, "I'm a great programmer: I know language X," doesn't make much sense, does it? In the same way, "I'm a great designer: I know UML," shouldn't make much sense either.
If you don't know how to use UML (and I don't just mean notation), I don't think a fancy tool like an Eclipse plug-in is a good place to start. Paper, and maybe a book on design using UML, would be.
"Owning a hammer does not make one an architect."
I’ve looked at a lot of different solutions, and in my humble opinion Aspose is the way to go. Here’s the link: http://aspose.com
subject: Should I be using UML while I learn Java?