|Semantic annotations for UML elements [message #803075]
||Mon, 20 February 2012 17:26
| Michael Bob
Registered: February 2012
ok, this one is a more conceptual question: I have created a UML model and now I want to add some semantic information. For example: I have a class and an operation X. Now I want to add the information, that X takes 10 seconds to be performed. Furthermore I want to add a description in terms of a long text.
How should this information be added? There are several chances I see:
1. Usage of UML comments/annotations
Advantage: Within the same model
Disadvantage: The model becomes bigger and bigger with more information. The information is informal.
2. Usage of a database that keeps these information
Advantage: The model is only for the model and no additional semantic information. The model does not become bigger. I can create a database schema that conforms to the information I want to store.
Disadvantage: I need to synchronize database and model. When the model changes (class is deleted), the information within the database has to be updated.
3. Creation of a UML profile
I create a UML profile with stereotypes "explanation" and "duration" and create classes with these stereotypes that are referenced by the operation. (I am not sure: is it possible to associate an operation with a class?). Then I could use two associations named "explanation" and "duration" that refer to the semantic information.
Advantage: It is formalized. Within on model. No synchronization needed.
Disadvantage: Additional UML profile, not standardized, big models.
4. Usage of links to other models (OWL classes)
Advantage: The information is formalized and I do not have to synchronize as much information as within a database. There are different types of models with different purposes.
Disadvantage: Again the model size increases. Maybe hard to understand?
What do you think? Where should I store this information?