Updates
Latest Tweet
What's New?
Check out for latest innovation, a computer based training video collection
Like this Page
Learning UML Review by Thomas Duff
Highly recommended
Review
As more and more development takes place in the object-oriented application world, there is a need to be able to describe these systems in such a way that everyone involved can understand. This spans everyone from the end-user who has to describe what they do to the analyst who has to write the specs, to the developer who has to build the application, and even the tester who has to very that the system works as designed. The Unified Modeling Language, or UML for short, is the way that is quickly becoming the de-facto standard for these descriptions. And the author has done a good job in writing a book that will help you start to understand and use these concepts.The book starts with an introduction to the language, along with what it is trying to accomplish. The use of written language as a metaphor for UML works well, as it breaks down UML into component parts, making it much easier to grasp. Differentiation is made between structural modeling and behavior modeling. Structure modeling deals primarily with the, what else, structure of the system. This includes classes, objects, use cases, and component diagrams. These concepts should be familiar to the object-oriented developer, and the information in the book does a good job in covering the subjects in depth. The behavioral modeling is used to show how the application should interact with the user(s) of the system, be they people or other system components. This includes sequence, state, and activity diagrams. These functions allow a user of the system to understand how everything relates together. When coupled together, you have a complete system to describe an application from all perspectives.
I think the author did a great job in walking the line between a too-simplistic approach which doesn't teach enough, and a highly academic approach which is too difficult to understand for a beginner. There are exercises at the end of each chapter to help you apply the concepts and start to integrate the learning into your everyday experience. When finished with this book, you should be familiar with nearly all the concepts of UML, and should also feel comfortable when you start to use it for real-life modeling.
For the typical Lotus Notes/Domino developer, you may well be thinking, "I don't need all this "stuff". After all, you've been building applications without it so far without it, right? Well, I would suggest that you need to alter your thoughts a little. For one, using a structured modeling approach on larger systems will lead to a better, more solid design as opposed to an ad-hoc "build as you go" approach. You can also use the behavioral structure to show and demonstrate the user's perspective of the system, as well as how the different processes of the system work together. And secondly, as you move into the world of Java and object-oriented systems, you will encounter the use of UML on a frequent basis. Now would be a good time to start learning it so that there is one less thing to learn later on.
Conclusion
If you've not had any exposure to UML (or if it's been very light), I highly recommend getting this book and working through it. The time you spend now learning this information will pay off down the road with better up-front system design, as well as gaining the ability to explain your design and application operation to others. I know that as I move deeper into the world of object-oriented design and analysis, this book will be referred to very often.