31

What is a great way to learn good UML design? How often do you draw diagrams (other than static diagram of classes)? What is the best source for learning it?

My Stack Overfloweth
  • 4,729
  • 4
  • 25
  • 42
rafek
  • 5,464
  • 13
  • 58
  • 72
  • Here is also a great tutorial to learn every aspects of UML2.0 all explained in simple terms: https://github.com/imalitavakoli/learn-uml2 – Ali Apr 27 '16 at 09:52

3 Answers3

28

I think Martin Fowler's "UML Distilled" is the best book for learning UML syntax. It's succinct and dense with information.

Unfortunately, knowing UML syntax well is not the same thing as knowing how to design.

duffymo
  • 305,152
  • 44
  • 369
  • 561
  • So true about design. It's very easy to get carried away with making too much details or making too abstract and making your UML useless. – Paul G. Feb 11 '09 at 13:19
  • UML is not the same as engineering drawings. Some people think they should be; I think they're wrong. – duffymo Feb 11 '09 at 13:21
  • @duffymo, How can I do better design with uml ? – uzay95 Aug 08 '11 at 10:43
  • UML is immaterial; it's just a notation for communication. Boxes and arrows are enough. The real question is: "How can I do better design?" The answer: Practice and learn from your bad designs; study good designs and emulate them. – duffymo Nov 15 '11 at 13:22
  • @uzay95: "The first asset in making designs is a good notation to record and discuss alternate possibilities". Designing with a good tool is an interactive process, as the tool, and specially the _notation_ gives you feedback, displaying implications and relationships that would be hard to notice otherwise. – heltonbiker Oct 26 '14 at 14:53
  • Doesn't change the fact that UML is NOT at the same level as engineering drawings AND NEVER WILL BE. UML is a dead horse. Boxes and arrows on a whiteboard are sufficient. – duffymo Oct 26 '14 at 15:46
11

Practical UML

UML Overview

I dunno, it depends on how big team is. Class/Sequence/Use cases is what mostly used for me I think. The most important thing is not overuse diagraming, couse the main goal is to help comunicate among team, help understand things same way, not just to make some useless diagrams papers and not use them.

However very complex system developed by group of teams, obviously require more diagrams I think, just to make sure everyone knows what they are doing and how things relate in system. There's quite lot good tools these days that help in modeling.

Paul G.
  • 489
  • 2
  • 7
  • 1
    +1: UML is not a replacement for code. You can try to get to a "programming with pictures" level of detail, but it doesn't help. – S.Lott Feb 11 '09 at 13:08
3

There was one project make I worked on where we used Enterprise Architect to make UML diagrams which we round-tripped (forward- and reverse-engineered) with the C# source code.

It (UML) wasn't good at defining the implementation of each method (using sequence diagrams), but it was OK defining the signatures of interfaces and of classes (i.e. the declarations, not definitions, of methods).

It was useful because you could have:

  • A diagram which shows how a group of classes interact (whereas with source code you see classes one at a time)

  • Different diagrams with different groups of classes; and sometimes the same class can appear on more than one diagram.

This was for a project where it was a requirement to create design documentation, with traceability from the use cases though design.

ChrisW
  • 54,973
  • 13
  • 116
  • 224