unified’modeling’language:’’...

39
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

Upload: others

Post on 01-Feb-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

  • 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