Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Standards-Based Executable UML: Today's Reality and Tomorrow's Promise

343 views

Published on

This webinar demonstrates the practical realization of standards-based executable modeling in UML, showing its importance for moving forward in a number of, perhaps, unexpected areas, including agile development methods, multi-core programming and model-based system engineering. Today’s Executable UML is based on the OMG’s Foundational UML (fUML) standard, for executable object-oriented and activity modeling, and the Action Language for fUML (Alf) standard, which defines a corresponding textual representation. But this is only the beginning. Additional Executable UML standards are being built on this foundation, including recent ones for composite structure and state machines.

Published in: Software
  • Be the first to comment

Standards-Based Executable UML: Today's Reality and Tomorrow's Promise

  1. 1. Standards-Based Executable UML® Today’s Reality and Tomorrow’s Promise Object Management Group® Webinar Ed Seidewitz Director of Research and Development nMeta LLC ● http://www.nmeta.us ed@nmeta.us ● @seidewitz 8 March 2017 Copyright © 2017 Ed Seidewitz
  2. 2. Page 2 Traditional Modeling is Extra Work Copyright © 2017 Ed Seidewitz Developers provide feedback to the architects (maybe) It is hard to validate the correctness of the models before development. The developers may not follow the models, without providing feedback. It is hard to keep the models and development artifacts in sync during development (and maintenance). Architects give models to developers Developers create artifacts based on the models (maybe) Architects create the models
  3. 3. Page 3 Executable Modeling Just Works! Copyright © 2017 Ed Seidewitz The models are validated in a development/test environment The models are deployed in a production environment Developers create fully executable models Developers iteratively execute, test and update the models Agile development…with executable models!
  4. 4. Page 4 This is not a new idea… Shlaer-Mellor 1988, 1991 Harel State Charts 1988, 1998 Real-Time OO Modeling (ROOM) 1994 Became Executable / Translatable UML (xtUML) Incorporated into UML as State Machines Became UML for Real Time (UML/RT) Copyright © 2017 Ed Seidewitz
  5. 5. Page 5 But it wasn’t standardized before… Copyright © 2017 Ed Seidewitz 1997 1998 2003 2005 2010 2011 2018 2017 2016 2015 Action Semantics for the UML RFP Semantics of a Foundational Subset for Executable UML Models RFP Foundational UML (fUML) 1.0 fUML 1.2.1 (current version) fUML 1.3 (in process) fUML 1.4 (planned) UML 1.1 (first OMG version) UML 1.5 (with action semantics) UML 2.4.1 UML 2.5 (current version) UML 2.0 UML 2.3
  6. 6. Page 6 Precise Semantics of Composite Structure (PSCS) Precise Semantics of State Machines (PSSM) Precise Semantics of Interactions Executable UML Standards (current/in process/planned) Precise Semantics of Profiles Precise Semantics of Time Copyright © 2017 Ed Seidewitz Action Language for fUML (Alf) Foundational UML (fUML) Executable subset of standard UML that can be used to define, in an operational style, the structural and behavioral semantics of systems v1.2.1 (2015) / v1.3 (2017) / v1.4 (2018) Textual surface representation for fUML models, particularly executable behaviors v1.0.1 (2013) / v1.1 (2017) / v1.2 (2018) An extension of fUML for the execution of composite structure models v1.0 (2015) / v1.1 (2017) / v1.2 (2018) An extension of fUML for the execution of state machine models beta (2016) / v1.0 (2018) Possible future standards
  7. 7. Page 7 Customer Order Example Copyright © 2017 Ed Seidewitz : Why can’t this be our code? This is a structural model of an order as a set of product line items, for a specific customer. …and of asynchronous behavior for charging the order to a credit card. But it is also a model of synchronous behavior for managing an order…. ✓ ✓ ✓ These are active classes.
  8. 8. Page 8 Using Alf for Operation Methods Copyright © 2017 Ed Seidewitz «Create» Order this.datePlaced = datePlaced; this.cardToCharge = cardToCharge; Order_Customer.createLink(this, customer); return this; cancel Order_Customer.destroyLink(this, this.customer); addProduct lineItem = new OrderLineItem(product, quantity); this.lineItems->add(lineItem); this.totalAmount = Add(this.totalAmount, lineItem.amount); removeProduct items = this.lineItems-> select item (item.product == product); this.lineItems->removeAll(items); this.totalAmount = Subtract(this.totalAmount, items.amount->reduce Add ?? ToMoney(0.0)); items.destroy(); Alf semantics are fUML semantics.
  9. 9. Page 9 Using Alf as a Textual Notation for Activities Copyright © 2017 Ed Seidewitz An Alf compiler can create an activity model for you – better than by hand
  10. 10. Page 10 Using Alf for State Behaviors Copyright © 2017 Ed Seidewitz State machine transitions are triggered by the receipt of asynchronous signals. Entry behaviors are executed when a state is entered. This Alf statement creates a new credit card charge object and begins its active behavior. This Alf statement sends a signal to the customer object.
  11. 11. Page 11 Executable UML for Multi-Core Programming Traditional processor architecture Single processor Local registers / cache Remote memory Multi-core processor architecture Many processors Much local memory Global/distributed memory Concurrency is natural here Traditional modeling language Things / Relationships Events / Behaviors Communication Concurrency is natural here Traditional programming language Functions / procedures Local variables / stack Heap memory Concurrency is NOT natural here! Executable UML
  12. 12. Page 12 Executable UML Ecosystem Execution/Simulation Engine Model Development Environment Other Tools Target Platform Copyright © 2017 Ed Seidewitz Enabled by standardized executable modeling.
  13. 13. Page 13 Some Executable UML Implementations Open Source Modeldriven.org (Reference) Implementations (fUML, Alf) http://fuml.modeldriven.org, http://alf.modeldriven.org Eclipse Papyrus UML Tool (fUML, PSCS, PSSM, Alf incubation) https://wiki.eclipse.org/Papyrus/UserGuide/ModelExecution Used in Demo No Magic MagicDraw (fUML, PSCS, PSSM, Alf beta) https://www.magicdraw.com/simulation Others List of Executable UML Tools http://modeling-languages.com/list-of-executable-uml-tools/ Copyright © 2017 Ed Seidewitz

×