Once I tried to use class diagram to represent my model, but most of the people (specially older ones) doesn't understand nothing about it (composition, agregation, association, etc)... they just understand relational database models. In these cases using UML should be avoided?
In my writings and when I teach programming, I like to use UML class diagrams as a graphical way to assist in the learning process. I find that UML class diagrams are really good for demonstrating how to model systems and show relationships between classes.
If you are trying to communicate with someone who understands only French, should you avoid speaking to them in German? Absolutely! It's the same deal with UML. The goal is to communicate ideas, not to draw. That being said, you can still start off with simpler UML diagrams and slowly educate other members of your team on the finer points of UML.
Again, I do like using the UML class diagrams to represent the models. Basically, I can model the attributes (public/private) and methods in a small, concise manner. I can also represent inheritance and composition (aggregations and associations) relationships in a straightforward manner. Since there are only several concepts involved: attributes, methods, inheritance and composition, I find the class diagrams to be pretty useful.
Yes, UML diagrams are useful to depict the model of a System, both to the business users and developers. As an architect, I firmly believe that an understanding of UML is essential
to communicate our ideas succinctly.
1) Describing the System in words in the English language can be ambiguous. UML diagrams cannot be ambigious. For instance, if one were to draw Use case diagrams, one can
clearly show what each actor's role is and what that role means.
2) Class diagram is useful to show the Object model to the developers. Some tools simple generate the boilerplate model code from the fields in the UML.
3) It's easy to explain the flow of messages to business users using Sequence diagrams. When I read sequence diagram of a new system, it becomes clear to me as to what the system seeks to accomplish.
I dont want to read a 10 page document -
4) Component diagrams are helpful in communicating the architecture to the developers. Developers can take the component diagrams and implement the functionality without much help
SCJP 5.0 , SCEA Java EE 5, TOGAF Certified
Joined: May 01, 2013
My approach is to use several different types of tools to try and help people understand object concepts. For some people, the light bulb may go on by writing small bits of code and seeing what works and what doesn't. For others, something more graphical in nature might do the trick. The bottom line for me as I have been training/teaching is to use several techniques to try and explain the concepts in the hopes that one technique or a combination of the techniques will do the job.