I had a conversation recently in which the following three use cases for UML were suggested:

  • UML as a precise graphical representation of existing programming languages
  • UML as a higher level full life-cycle development language
  • UML as a means to communicate between stakeholders

Today UML is not particularly good for any of these use cases because it is trying to fulfil all of them at the same time.

Which one do you think is most important?