Unified’Modeling’Language:’’...
Transcript of Unified’Modeling’Language:’’...
-
Unified Modeling Language: Past, Present and Future
Ivar Jacobson With most slides from Steve Cook
SoBware Architect, MicrosoB Visual Studio Architecture Board and Board of Directors,
Object Management Group
-
Agenda
• History • UML today • UML dilemmas • Future of UML
-
Agenda
• History • UML today • UML dilemmas • Future of UML
-
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 SoBware Engineering (1992)
-
The OMG: Analysis and Design Object Analysis and Design: Survey of Methods 1992 [Andrew HuX, ICL]
1995/95-‐09-‐35: Analysis & Design RFI [Mary Loomis, HP]
ad/96-‐05-‐01: Object Analysis and Design PTF -‐ RFP 1 [Mary Loomis, HP]
ad/97-‐08-‐02: UML 1.1 RaZonal SoBware, MicrosoB, HewleX-‐Packard, Oracle, Sterling SoBware, MCI Systemhouse, Unisys, ICON CompuZng, IntelliCorp, i-‐Logix, IBM, ObjecTime, PlaZnum Technology, Ptech, Taskon, Reich Technologies, SoBeam
-
UML 1.1 diagrams
-
Models, Views, and Diagrams
Use Case Diagrams Use Case Diagrams Use Case Diagrams
Scenario Diagrams Scenario Diagrams Collaboration Diagrams
State Diagrams State Diagrams Component Diagrams
Component Diagrams Component
Diagrams Deployment Diagrams
State Diagrams State Diagrams Object Diagrams
Scenario Diagrams Scenario Diagrams Statechart Diagrams
Use Case Diagrams Use Case Diagrams Sequence Diagrams
State Diagrams State Diagrams Class Diagrams
Activity Diagrams
A model is a complete description of a system from a particular perspective
Models
-
Student
Registrar
Professor
Register for Courses
Maintain Course InformaZon
Request Course Roster
Billing System
Use Case Diagram
• Captures system funcZonality as seen by users • Visualize the interacZon of the system with the outside world
-
Use Case Diagram
• Built in early stages of development • Purpose – Specify the context of a system – Capture the requirements of a system – Validate a system’s architecture – Drive implementaZon and generate test cases
• Developed by analysts and domain experts
-
Course
Student
Professor
RegistraZonUser
RegistraZonForm
RegistraZonManager
CourseOffering
ScheduleAlgorithm
addStudent(Course, Student)
open() addStudent(StudentInfo)
open() addStudent(Student)
major
name numberCredits
locaZon tenureStatus
name
1 0..*
0..* 1
1
1..* 4
3..10
0..4 1
Class Diagram • Captures the vocabulary of a system • Shows the structure of your soBware
-
Course.dll
People.dll
Course
User
Register.exe Billing.exe Billing System
The Physical World
• Component diagrams illustrate the organizaZon and dependencies among soBware components
• They capture the physical structure of the implementaZon
-
Deploying the System • The deployment diagram visualizes the distribuZon of components across the enterprise
• They capture the topology of a system’s hardware
RegistraZon Database
Library
Dorm
Main Building
-
: Student registraZon form registraZon manager
math 101
1: fill in info
2: submit
3: add Joe to Math 101
4: add Joe 5: are you open?
6: add Joe
math 101 secZon 1
Sequence Diagram • A sequence diagram shows step-‐by-‐step what has to happen to accomplish a piece of funcZonality provided by the system
-
: Registrar
course form : CourseForm
theManager : CurriculumManager aCourse : Course
1: set course info 2: process
3: add course
4: new course
CollaboraZon Diagram • A collaboraZon diagram displays object interacZons organized around objects and their links to one another
-
entry: Register student exit: Increment count
IniZalizaZon Open
Closed Canceled
do: IniZalize course
do: Finalize course do: NoZfy registered students
Add Student / Set count = 0
Add student[ count < 10 ]
[ count = 10 ]
Cancel
Cancel
Cancel
The State of an Object
• A state transiZon diagram shows the lifecycle of a single class
-
AcZvity Diagram
Select courses to teach
Create curriculum
Create catalog
Place catalog in bookstore
Open registraZon
Close registraZon
[ RegistraZon Zme period expired ]
Mail catalog to students
-
Swimlanes Registrar Professor
Select courses to teach
Create curriculum
Create catalog
Place catalog in bookstore
Open registraZon
Close registraZon
[ RegistraZon Zme period expired ]
Mail catalog to students
-
UML 1.x Development
• V1.1 November 1997 • [V1.2 was an internal beta release never issued as a formal specificaZon]
• V1.3 March 2000 • V1.4 September 2001 • V1.5 March 2003 – combines V1.4 and AcZon SemanZcs – a step towards Executable UML.
-
• UML 2.0 RFI (Request for InformaZon) issued August 1999. • RFP (Request for Proposals) issued September 2000. • UML 2.0 July 2005.
– No machine-‐readable specificaZon 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 beta April 2011 – Focus on fixing interoperability bugs
UML 2 – “we want more”
Mee#ngs, mee#ngs, mee#ngs …
Where next?
-
UML 2 diagrams
-
The Ball of Mud “A successful response to these challenges will require that the OMG adopt a sculp#ng approach (where less is more) rather than a mudpacking approach (some#mes associated with a “ball-‐of-‐mud” paFern) to refine and extend the UML architecture.” Cris Kobryn, UML 2001: A Standardiza#on Odyssey, CommunicaZons of the ACM, vol. 42, no. 10, October 1999 hXp://www.omg.org/spec/UML/20100901/Infrastructure.xmi hXp://www.omg.org/spec/UML/20100901/Superstructure.xmi hXp://www.omg.org/spec/UML/20100901/L0.xmi hXp://www.omg.org/spec/UML/20100901/L1.xmi hXp://www.omg.org/spec/UML/20100901/L2.xmi hXp://www.omg.org/spec/UML/20100901/L3.xmi hXp://www.omg.org/spec/UML/20100901/LM.xmi hXp://www.omg.org/spec/UML/20100901/PrimiZveTypes.xmi hXp://www.omg.org/spec/UML/20100901/UML.xmi hXp://www.omg.org/spec/UML/20100901/StandardProfileL2.xmi hXp://www.omg.org/spec/UML/20100901/StandardProfileL3.xmi
-
Agenda
• History • UML today • UML dilemmas • Future of UML
-
Defined informally
How UML is defined
Model Diagram Visualizes and edits
UML MetaModel
Defined using concepts from
MOF Model
Defined using concepts from
UML Constructs (class, property, associaZon, etc)
Defined using concepts from
-
XMI: how UML is interchanged
UML MetaModel
Model
MOF Model
-
The Model Interchange Working Group
• hXp://www.omgwiki.org/model-‐interchange/doku.php
• Primarily moZvated by government and defence agencies
• CreaZng UML and SysML interoperability test cases
-
UML is now at the centre of a Family of Languages
UML
UPDM
SoaML SysML
C#
java
TesZng Real-‐Zme & Embedded
MOF
Executable UML
BPMN
But is it really a language plaSorm?
-
Agenda
• History • UML today • UML dilemmas • Future of UML
-
Dilemma 1: UML Value ProposiZons
• Sketching? • DocumentaZon? • Executable UML? • MDA (Model Driven Architecture)? • Round Trip Engineering? • Code VisualizaZon and Architecture VerificaZon? • A Modelling Language Plaworm? • Test generaZon? • All of the above?
-
Dilemma 2: UML and Domain Specific Languages
• DSLs address domains that UML does not. – UI design – VerZcal domains: mobile phones; soBware radio; insurance claim processing; gesture processing; ...
– Plaworm-‐specific domains: “code in diagrams” – LiXle 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 effecZvely reusable subsets – UML (surprisingly) does not have well-‐defined notaZon
• How to integrate UML with DSLs? – E.g. use BPMN for process modelling and UML for data modelling
-
Dilemma 3: UML and Non-‐SoBware
• Is UML supposed to be used to model domains that are not soBware?
• AcZvity diagrams can be used for business processes – But what is the relaZonship 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 beXer or worse?
• Many concepts in UML have no meaning outside the domain of soBware – E.g. visibility {public, private, protected}
-
Dilemma 4: UML SemanZcs • Is UML:
– A reusable syntax that can map into different programming languages • [Wikipedia]: “Perhaps the most common form of round-‐trip engineering is synchronizaZon between UML (Unified Modeling Language) models and the corresponding source code.”
– An executable notaZon with its own execuZon semanZcs • [Wikipedia]: Executable UML supports MDA through specificaZon of plaworm-‐independent models, and the compilaZon of the plaworm-‐independent models into plaworm-‐specific models.
– Both? • “SemanZc VariaZon Points”
– Single vs MulZple Inheritance – Rules for type conformance – Many others
-
Agenda
• History • UML today • UML dilemmas • Future of UML
-
UML 2 – too Large and Complex “Typically a project that uses UML only uses 20% of the specifica#on to help build 80% of the code and other deliverables.”
Ivar Jacobson
-
UML roadmap • Complete Diagram DefiniQon capability. • UML SpecificaQon SimplificaQon RFP. Asks to keep the UML definiZon the same, but reorganize the specificaZon so that it is consumable and manageable – Remove redundancy (“package merge”), consolidate, and define notaZon
– Eliminate Infrastructure/Superstructure split – Generate specificaZon from metamodel – In progress now; planned compleZon 2012
• Improve OMG “modelling architecture” – Improve profile mechanism and integrate with MOF/SMOF – Enable UML to be refactored, unbundled, and reused
-
Unbundling UML
Smaller, standard languages Loosely-‐coupled Extensible Backwards compaZble
-
The evolving modelling language landscape
UML
BPMN
DSLs SysML
Integrate & Correlate
-
The End Thank you