The Unified Modeling Language (UML) has arguably succeeded in becoming the most commonly used modeling notation for software development. But modeling in the software community seems largely to mean simply drawing pictures, either to represent the problem domain or to blueprint a solution, without a precise enough meaning to fully specify the functionality of the system being developed. As a result, the UML standard, up to and including the latest formal version (UML 2.4.1), does not define the semantics of UML models at all precisely.
However, UML is also the basis for the System Engineering Modeling Language (SysML), and the system engineering community has traditionally defined models that are much more precise, allowing for simulation and analysis of systems involving complex combinations of software, hardware and physical processes. And some within the software community also see the need for a similar level of precision in models, allowing them to be executable in their own right. As a result, there has been in a great deal of work in recent years toward the standardization of the formal semantics of UML models the meaning behind the pictures: the Foundational UML (fUML) specification adopted in 2008; the Action Language for fUML (Alf), adopted in 2010; the UML 2.5 specification, currently in finalization (which includes a semantics conformance point for the first time); and work in progress on the Precise Semantics of UML Composite Structures. This talk reviews the state of this work and the implications for software and system engineering practice of bringing real meaning to UML.
Video producer: http://www.isr.umd.edu