I have just first heard of Unified Modelling Language, or UML (Note I am only an amateur software engineer), which wikipedia states is a "general-purpose modeling language in the field of software engineering that is intended to provide a standard way to visualize the design of a system."

The UML website seems to claim that UML is quite general, stating:

You can model just about any type of application, running on any type and combination of hardware, operating system, programming language, and network, in UML

You can use UML for business modeling and modeling of other non-software systems too

However, when I look at the 14 types of diagrams in UML, I am not sure but it seems to me that this modelling language was primarily designed for specifying particular aspects of what I would call the "specification". Clearly, UML is not suited for specifying literally all aspects of what we need from a system, and it shouldn't be: As an extreme example, a specification language like UML cannot fully capture the specification that the user interface should be "easily understandable", and we obviously shouldn't expect this of UML.

However, given that (of course) UML can't be used to model/make precise all aspects of what we want from our system, I am wondering what are and are not the benefits of using UML: After reading some introductions, I am still unsure about what these diagrams can and cannot be usefully used for.

  • Is UML really as useful for non-object-oriented as it is for object-oriented projects?

  • What (in practive) aspects of a specification can UML fruitfully capture and what is it less useful for (in practice)?

| improve this question | | | | |

UML is general in the sense, that it can be used for a very broad range of modelling topics and since it is extendable in a certain way, you can adapt it to fit other niches as well. However, it is also a child of its time with a focus on object-oriented modelling overall and there are models that you'd definitely have a hard time diagramming in UML (Bayesian nets for example, surely you could reuse a few diagram elements and annotate them appropriately but that would result in an awkward diagram).

The word "any" in the sentence you posted surely is not used in a mathematical way where you claim that really anything possibly can be modelled using UML, rather, it phrases the expectation that an experienced UML user may be able to model about anything in UML that they could come across in an enterprise /business context.

A few facts about UMLs "Generality"

  • Activity Diagrams are a superset of Petri nets if you read the spec closely. Petri nets are well understood models for concurrency modelling and can model a lot in concurrency research.
  • Entity-Relationship diagrams were left out of UML for idiological reasons. (Class diagrams can substitute and be used in a similar ways as ER, but you can see that the diagrams are not streamlined for that).

What's kind of lacking in UML are architectural block diagrams that you see on any Powerpoint slide.

| improve this answer | | | | |
  • 2
    You have class diagrams, component diagrams, package diagrams and deployment diagrams. At least one of them should be suitable for your architecture level. – Simon B Apr 9 at 9:27
  • If you want the Powerpoint level, use Visio :-/ – qwerty_so Apr 9 at 16:52
  • @SimonB whats not really there is a block diagram like this one fmc-modeling.org/images/quick-intro/TravelAgency.BD.gif showing information flow with regards to components. Of course you can model it in UML using diagrams and relations. Its just not on the trodden path. – wirrbel Apr 28 at 18:08

UML is, as the final L tells, a language. Any language, being natural or technical is able to describe anything humans can think of - in technical terms. There are levels like poems which do not easily translate between lanuages - if at all. For technical themes that translation is less problematic since you get down to a certain technical level which is very limited. UML (and most natural languages) can talk about itself. In that respect it is able to extend its own semantics. That is done by adding profiles which introduces domain specific language element. The concept is called profiles. You can find lots of different profiles. The most prominent are BPMN for business modelling and SysML for more (hardware) technical modelling. So you see that in practice UML is very versatile (and thus "general").

Can it be used for non-OO? Yes. Static class models are out, unless your static code has already some OO structure inside which can be pictured by stereotyping things. Behavior can be modeled with activity, state and timing diagram.

What are the benefits? Basically you get a well known language which is especially targeted to communicate technical aspects. (Honestly, some modeling resembles poems while others are just a stutter ;-)

| improve this answer | | | | |
  • 3
    "Any language, being natural or technical is able to describe anything humans can think of - in technical terms." This isn't true by any definition I know, but I don't see that it has much to do with the rest of the answer (indeed, the next sentence would seem to contradict it), so can probably just be removed without issue. – VisualMelon Apr 9 at 9:40
  • @VisualMelon Well, it drifts into some philosophical aspects here and it's hard to expand on that in a short answer ;-) I'd just leave this to your comment. – qwerty_so Apr 9 at 10:49
  • @qwerty_so, the mere fact of something being designated a language, doesn't imply anything about the overall expressability of the language. Far from "expressing anything we can think of", I often find UML seems awkward and unintuitive. – Steve Apr 9 at 11:54
  • @Steve Human languages have been developed since people were able to express abstractions with them so interchange their world models. Else they just would have died out. So there's an intrinsic capability in those languages. – qwerty_so Apr 9 at 13:44
  • @qwerty_so, that does not mean natural language arrived fully-formed and able to express everything - in fact even today new words are coined, new metaphors employed, and so on, in order to maintain or improve the expressive power of natural language - and to argue that UML, an invented set of 2-d diagramming techniques used by hardly anyone in the world, "can express everything a human can think of" strikes me as a faintly ridiculous claim. – Steve Apr 9 at 14:40

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.