I have just started learning about model-driven engineering.

But I have a hard time to grasp the different model levels, given software example. Would not the model always be represented in a UML diagram or a class? Which then makes the above level to be the same in all cases?

  • Google for ICONIX. They gave me a good start once upon a (long) time. It's a lightweight process for UML. – qwerty_so Oct 13 '19 at 14:20

UML defines how you say something in your model. But engineering with models is also about what you want to say to which audience.

A domain model for example will describe the understanding of a domain, independently of your software solution. It is very general and can be used for multiple purposes and shared between multiple applications. The design model will enrich the domain model with elements that are not relevant for the domain in general, but specific to one solution. But for both models, you may use UML.

If I may make an imperfect analogy: it’s like UML being the English language of modelling. But despite using the same language, when you talk to the doctor about backpain, you will use the English language very differently than your doctor, who needs a much more precise model of your body to help you.

You may also compare this to an architect’s drawings. There is usually a big difference between the sketch of your future apartment that he will draw with you initially to understand your expectations and the final blueprint for construction workers where you’ll see an awful lot of details, despite it’s almost the same drawing symbols that are used.

  • The thing I have hard to grasp is that in the real world, the model could be almost anything. But when we are talking about MDE, given software, the (domain) model is always (?) created, or presented, in the form of UML? – gel Oct 12 '19 at 9:16
  • @gel "the (domain) model is always (?) created, or presented, in the form of UML?" Nope. There are more things like DSL's, ontologies, etc. which can't be expressed well in UML. – πάντα ῥεῖ Oct 12 '19 at 9:39
  • @gel No, of course not: U stands for Unified and not for Universal. In legacy environments, you may still find old ER and DFD models. You may find enterprise architecture models such as ARIS. As πάντα ῥεῖ has pointed out, there are Domain Specific Modelling Languages (DSML) for specialised domains. In the domain of business processes, you may find hyprid models with BPMN for the collaboration between the business entities whereas UML is still used for the data structures. If the domain is chatbot / NLP, UML might not be the best choice. – Christophe Oct 12 '19 at 10:12

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.