UML has evolved significantly since its origins in the early 1990s through the work of three software pioneers. It is now maintained by the OMG and on its fifth major version. However, UML faces several dilemmas regarding its intended uses and relationship to other modeling languages. Its large and complex specification could be simplified. The future of UML involves standardizing diagram interchange, integrating with other languages through semantic MOF, and "unbundling" UML into smaller, more focused and extensible components.
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Stevecook uml mdday2010
1. Unified Modeling Language:
Past, Present and Future
Steve Cook
Software Architect, Microsoft Visual Studio
Architecture Board and Board of Directors,
Object Management Group
4. The Three Amigos and the Unified Method
Grady Booch:
Object Oriented Design (1991)
Object Oriented Analysis and Design (1994)
James Rumbaugh et al:
Object Oriented Modeling and Design (1991)
Ivar Jacobson et al:
Object Oriented Software Engineering (1992)
8. UML 1.x Development
• V1.1 November 1997
• [V1.2 was an internal beta release never
issued as a formal specification]
• V1.3 March 2000
• V1.4 September 2001
• V1.5 March 2003 – combines V1.4 and Action
Semantics – a step towards Executable UML.
9. • UML 2.0 RFI (Request for Information) issued August 1999.
• RFP (Request for Proposals) issued September 2000.
• UML 2.0 July 2005.
– No machine-readable specification due to structural inconsistencies in the
spec.
• V2.1.1 August 2007 == V2.1.2 November 2007
– The first version available in machine-readable form
• V2.2 February 2009
– Fixes bugs
• V2.3 May 2010
– Fixes bugs
• V2.4 to be released early 2011
– Focus on fixing interoperability bugs
UML 2 – “we want more”
Meetings, meetings, meetings …
Where next?
13. Defined
informally
How UML is defined
Model DiagramVisualizes
and edits
UML MetaModel
Defined using concepts from
MOF Model
Defined using concepts from
UML Constructs
(class, property,
association, etc)
Defined using concepts from
15. The Model Interchange Working Group
• http://www.omgwiki.org/model-
interchange/doku.php
• Primarily motivated by government and
defence agencies
• Creating UML and SysML interoperability test
cases
16. UML is now at the centre of a Family
of Languages
UML
UPDM
SoaMLSysML
C#
java
Testing Real-time &
Embedded
MOF
Executable
UML
BPMN
But is it fit for
purpose?
18. Dilemma 1: UML Value Propositions
• Sketching?
• Documentation?
• Executable UML?
• MDA (Model Driven Architecture)?
• Round Trip Engineering?
• Code Visualization and Architecture Verification?
• Test generation?
• All of the above?
19. Dilemma 2: UML and Domain Specific
Languages
• DSLs address domains that UML does not.
– UI design
– Vertical domains: mobile phones; software radio;
insurance claim processing; gesture processing; ...
– Platform-specific domains: “code in diagrams”
– Little DSLs as “lifecycle glue”: e.g. config files
• Should DSLs be constructed from scratch, or by
extending UML, or by extending a subset of UML?
– UML does not provide effectively reusable subsets
– UML (surprisingly) does not have well-defined
notation
20. Dilemma 3: UML and Non-Software
• Is UML supposed to be used to model domains that are
not software?
• Activity diagrams can be used for business processes
– But what is the relationship between them and BPMN?
• Use case diagrams are used to model requirements.
• Many aspects of UML are an imperfect match to
concepts in modern OO programming languages.
– Should we endeavour to make this match better or worse?
21. Dilemma 4: UML Semantics
• Is UML:
– A reusable syntax that can map into different programming
languages
• *Wikipedia+: “Perhaps the most common form of round-trip
engineering is synchronization between UML (Unified Modeling
Language) models and the corresponding source code.”
– An executable notation with its own execution semantics
• [Wikipedia]: Executable UML supports MDA through specification
of platform-independent models, and the compilation of the
platform-independent models into platform-specific models.
– Both?
• “Semantic Variation Points”.
23. UML 2 – too Large and Complex
“Typically a project that uses UML only uses 20% of the
specification to help build 80% of the code and other
deliverables.”
Ivar Jacobson
24. “Future of UML” Request for
Information
• Issued December 12, 2008 (chaired by S Cook)
• Response deadline August 17, 2009
• Responses from 16 industry groupings
representing tool vendors and users
• Identified good agreement:
– Simplify and consolidate
– Improve extensibility
– Retain compatibility
– Define diagram syntax
25. The “2.4 series”
• UML 2.4, MOF 2.4 and XMI 2.4 will be aligned
to:
– Make MOF an exact subset of UML
– Get rid of the special cmof format
– Enable any compliant UML tool to import/export
MOF metamodels
27. Diagram Definition RFP
• Currently there is no standard for
interchanging UML diagrams effectively, or for
defining precisely what legal UML diagrams
are
• The Diagram Definition RFP is developing a
new “meta-standard” for defining and
interchanging diagrams, led by IBM
• There will (eventually) be a standard for UML
diagrams, based on DD
29. Semantic MOF
• MOF is the subset of UML that is used to define
UML and other OMG modelling standards (eg
BPMN)
• Semantic MOF is a proposed extension of MOF
that permits an object (MEL) to belong to
multiple classes and change them dynamically
– E.g. A class could become a state; an attribute could
become an operation; a class could acquire the ability
to have ports.
• Semantic MOF can subsume the current UML
Profiles mechanism
• Semantic MOF has been recommended for
adoption at the OMG
31. UML roadmap
• Complete Diagram Definition capability.
• UML Specification Simplification RFP. Asks to
keep the UML definition the same, but reorganize
the specification so that it is consumable and
manageable
– Remove redundancy (“package merge”), consolidate,
and define notation
– Generate specification from metamodel
– In progress now; planned completion 2011
• Improve OMG “modelling architecture”
– Integrate profile mechanism and MOF using SMOF
– Enable UML to be refactored, unbundled, and reused