Source: Change Vision ( Michael Chonoles)
The descriptions of these two dependencies seem to be identical in meaning and the UML discussion communities on LinkedIn and StackOverflow seem to be confused. It would help to have some differences identified. Here's my proposal.
I use the dependency «Instantiate».when I mean a true object-oriented instantiation arrived at by calling the constructor (which is how the I would translate the model into code). I would use «Create» when it's a different kind of creation, either more indirect, conceptual, or using non-object-oriented features.
Here are some examples. I would use «Create» to say Word-->«Create» a Document, a modeler «Create» a model. Though I normally wouldn't model this in detail, I would use «Create» to indicate a component «Create» a new database record, the database manager «Create» a new database, a programmer «Create» a new app. Or create a new element in an (non-object-oriented) array. These can happen without directly calling a traditional object-oriented constructor – and can't be directly converted to code.
On the other hand, if I had a marriage operation on a person, it would probably «Instantiate» the association class object of marriage.
Reported: UML 2.5 — Tue, 10 Nov 2015 05:26 GMT
Updated: Tue, 10 Nov 2015 06:36 GMT
UMLR — Clarify the difference between «create» and «instantiate»
- Key: UMLR-642
- OMG Task Force: UML 2.6 RTF