Improving the Definition of UML [chapter]

Greg O'Keefe
2006 Lecture Notes in Computer Science  
The literature on formal semantics for UML is huge and growing rapidly. Most contributions open with a brief remark motivating the work, then quickly move on to the technical detail. How do we decide whether more rigorous semantics are needed? Do we currently have an adequate definition of the syntax? How do we evaluate proposals to improve the definition? We provide criteria by which these and other questions can be answered. The growing role of UML is examined. We compare formal language
more » ... ition techniques with those currently used in the definition of UML. We study this definition for both its content and form, and conclude that improvements are required. Finally, we briefly survey the UML formalisation literature, applying our criteria to determine which of the existing approaches show the most potential. Many would argue that UML has no semantics [HR04,HS05], despite the numerous subheadings with that title in the documents which define the language [Obj06,Obj03,Obj05c,Obj05a]. Bran Selic [Sel04] counters these claims by collecting and summarising the scattered material on semantics from the main official document [Obj05c]. He also encourages theoreticians to study ways of making the semantics more precise. The only real disagreement here is over the usage of the word "semantics." This is the topic of Harel and Rumpe's excellent article [HR04] , and their position is that "semantics" is a mathematical term: Regardless of the exposition's degree of formality, the semantic mapping M : L / / S must be a rigorously defined function from the language's syntax L to its semantic domain S. Needless to say, an adequate semantic mapping for the full UML does not exist. Selic, we believe, takes "semantics" to be an ordinary English word. Calling the prose from the official UML documents "semantics," is just saying that it describes the intended meaning of the models. The official UML documents exhibit an appreciation of the distinction between ordinary and technical usages: It is important to note that the current description is not a completely formal specification of the language because to do so would have added significant complexity without clear benefit. The structure of the language is nevertheless given a precise specification, which is required for tool interoperability. The detailed semantics
doi:10.1007/11880240_4 fatcat:452tjvpsv5bebmp7wbkmpjnotm