SlideShare ist ein Scribd-Unternehmen logo
1 von 38
Downloaden Sie, um offline zu lesen
Copyright © 2013 Ivar Jacobson International SA. All rights reserved
UML: Once More with Meaning
Vienna University of Technology
Ed Seidewitz
24 June 2013
UML Prehistory: Object-Oriented Analysis and Design (1)
OOAD orthodoxy (c. 1980s)
Organize programs to model the basic concepts of the problem
domain.
Problem
Programming languages (even OOPLs) are not particularly good as
problem domain modeling languages.
• Too much of a program must focus on implementation details.
• As the program grows, the “big picture” gets lost.
UML Prehistory: Object-Oriented Analysis and Design (2)
Solution
Use a graphical modeling notation for analysis and design.
• “Model the problem domain” during analysis.
• “Model the solution” in problem domain terms during design.
• Use the solution model as a “blueprint” for coding.
Consequence
“Modeling” in the software community became drawing pictures, for
problem domain representation and solution blueprinting.
• Precise “meaning” was only to be found in the programs
themselves.
Unified Modeling Language v1.x
Unified Modeling Language (UML) intended to “unify” the various
OOAD graphical modeling languages of the early 1990s.
1995 – UML 0.9 by Booch, Rumbaugh and Jacobson (“3 amigos”)
1996 – UML 1.0 proposed by Rational
1997 – UML 1.1 adopted by Object Management Group (OMG)
The intent of OMG standardization was primarily to allow syntactic
interchange of models between tools.
Unified Modeling Language v2.x
There was a hope to add semantic interoperability to the UML
standard with UML 2.
1999 – UML 2.0 Request for Information (RFI)
2000 – UML 2.0 Requests for Proposal (RFPs)
2003 – UML 2.0 Adopted
2005 – UML 2.0 Finalized
2011 – UML 2.4.1 Latest formal version
“However, the presence of numerous variation points in these
semantics (and the fact that they are defined informally using natural
language), make it impractical to define this as a formal compliance
type, since the number of possible combinations is very large.”
– UML Superstructure Specification, v2.0 – 2.4.1
Unified Modeling Language v2.5
The UML 2.5 specification document is reorganized to be
“consumable” and to remove redundancy and correct
inconsistencies. Primarily focused on semantics descriptions.
2008 – Future Development of UML RFI
2009 – UML Specification Simplification RFP (UML 2.5)
2012 – UML 2.5 Adopted
2013 – UML 2.5 Finalized (planned)
“A tool demonstrating semantic conformance provides a
demonstrable way to interpret UML semantics, e.g., code generation,
model execution, or semantic model analysis.”
– UML 2.5 Specification, Semantic Conformance
Executable Modeling Before UML
Before UML, there were already a number of approaches to modeling
with precise, executable semantics.
1998, 1991 – Shlear-Mellor Object-Oriented Analysis
1988, 1998 – Harel Statecharts
1994 – Real-Time Object-Oriented Modeling (ROOM)
In 1998, Stephen Mellor came to an Object Management Group
meeting for the first time, to talk about defining an action language for
UML with precise semantics.
Foundational UML (fUML)
Foundational UML (fUML) is an executable subset of standard UML
that can be used to define, in an operational style, the structural and
behavioral semantics of systems.
1998 – Action Semantics for the UML RFP
2003 – UML 1.5 with action semantics formalized
2003 – UML 2.0 adopted
2005 – Semantics of a Foundational Subset for
Executable UML Models RFP
2008 – fUML 1.0 Beta (based on UML 2.2)
2010 – fUML 1.0 Formal (based on UML 2.3)
2012 – fUML 1.1 Beta (based on UML 2.4.1)
Composite
Structure
Semantics
Complete
Activity Model
Semantics
State Machine
Semantics
fUML Scope
Non-
Executable
Model
Semantics
The semantics of fUML provide the foundation for formally
specifying the (execution) semantics of the rest of UML.
Some areas of UML (e.g., use case and requirements
models) may not be best formalized based on an
executable semantics foundation.
Interaction
Model
Semantics
Foundational Semantics
fUML operational semantics are
specified as an execution model
written in fUML itself.
Base Semantics
The base semantics of the subset of
fUML used in the execution model are
specified using formal logic.
fUML Key Components
• Foundational UML Subset (fUML) – A computationally
complete subset of the abstract syntax of UML (Version 2.4.1)
– Kernel – Basic object-oriented capabilities
– Common Behavior – General behavior and asynchronous
communication
– Activities – Activity modeling, including structured activities (but
not including variables, exceptions, swimlanes, streaming or other
“higher level” activity modeling)
• Execution Model – A model of the execution semantics of user
models within the fUML subset
• Foundational Model Library
– Primitive Types – Boolean, String, Integer, Unlimited Natural
– Primitive Behaviors – Boolean, String and Arithmetic Functions
– Basic Input/Output – Based on the concept of “Channels”
Action Language for fUML (Alf)
The Action Language for Foundational UML (Alf) is a textual surface
representation for UML modeling elements with the primary of acting
as the surface notation for specifying executable (fUML) behaviors
within an overall graphical UML model.
2008 – Concrete Syntax for a UML Action Language RFP
2010 – Alf 1.0 Beta (based on UML 2.4 and fUML 1.0)
2013 – Alf 1.0.1 Beta (based on UML 2.4.1 and fUML 1.1)
Alf Key Components
• Concrete Syntax – A BNF specification of the legal textual syntax
of the Alf language.
• Abstract Syntax – A MOF metamodel of the abstract syntax tree
that is synthesized during parsing of an Alf text, with additional
derived attributes and constraints that specify the static semantic
analysis of that text.
• Semantics – The semantics of Alf are defined by mapping the Alf
abstract syntax metamodel to the fUML abstract syntax metamodel.
• Standard Model Library
– From the fUML Foundational Model Library
• Primitive Types (plus Natural and Bit String)
• Primitive Behaviors (plus Bit String Functions and Sequence Functions)
• Basic Input/Output
– Collection Functions – Similar to OCL collection operations for
sequences
– Collection Classes – Set, Ordered Set, Bag, List, Queue, Deque, Map
Ordering Example: Class Model
Using Alf to Define a Method
An operation specifies a
behavior that may be
synchronously invoked on
an instance of a class.
A method defines the
actual behavior that
is invoked.
Order: Classifier Behavior
A state machine abstracts
system behavior into a finite
number of states.
The system is modeled as
having discrete transitions
between the states.
A transition may trigger
further system behavior or
system behavior may be
dependent on the current
state.
Order is an active class
whose classifier behavior is
responsible for handling
ordering functionality.
Using Alf to Define an Activity (1)
An activity specifies
behavior as the
coordinated execution
of a set of subordinate
actions.
An action in one
activity may call
another activity.
Data and control
flow between the
various actions.
Other actions provide
various data and
computational functions.
Full executability requires
complete specification of behavior
and computation. This is often
much more easy to specify using
a textual notation.
Using Alf to Define an Activity (2)
namespace Order::Order_Behavior;
private import Utilities::Time::CurrentDate;
private import Utilities::Currency::Add;
activity EstablishCustomer(in checkOut: CheckOut) {
this.lineItems = checkOut.items;
Customer_Order.addLink(checkOut.customer, this);
this.datePlaced = CurrentDate();
this.totalAmount = this.lineItems.amount->reduce Add;
this.SubmitCharge(checkOut.card);
}
A virtual machine based
on concurrent UML
activity flow semantics.
The target for
“compiled”
models.
Architecture for Executable UML Tooling
fUML Execution
Engine
Model Development
Environment
Other Tools
Target Platform
Providing all the
capabilities expected
in a code-based IDE.
In memory
or via XMI
transfer.
Simulation,
analysis,
optimization,
etc.
The models are validated in a
development/test environment
The Goal: Programming in UML
The models are deployed in a production
environment
Developers
create fully
executable
models
It’s just programming, only better!
Developers iteratively execute, test and update
the models
Implementations
• fUML Implementations
– Open Source Reference Implementation
(Academic Free License 3.0)
http://fuml.modeldriven.org
– Cameo Simulation Toolkit for MagicDraw from NoMagic
https://www.magicdraw.com/simulation
– Advanced Modeling | UML Simulation and Execution (AM|USE)
by LieberLieber for Enterprise Architect from Sparx Systems
http://www.lieberlieber.com/model-engineering/amuse/product-overview/
• Alf Implementations
– Open Source Reference Implementation
(GNU General Public License 3.0)
http://alf.modeldriven.org
– Alf for Papyrus Eclipse UML Tool (Ongoing)
Ongoing Work
• fUML Version 1.2
• Alf Version 1.1
• Precise Semantics of UML Composite Structures
• Additional “Precise Semantics” RFPs
– State machines
– Interactions
– Complete activities/process modeling
Addendum: Specifying Execution Semantics
• Execution Model
• Semantics of Values
• Semantics of Behavior
• Execution Semantics and Base Semantics
• Execution Environment
Execution Model
• Visitor Pattern
– Evaluations of Value Specifications
– Executions of Behaviors
– Activations of Activity Nodes
• Strategy Pattern
– Polymorphic Dispatching SVP
– Event Dispatching SVP
– Nondeterminism
LiteralString
LiteralString
Evaluation
evaluate()
Activity
Activity
Execution
execute()
DecisionNode
DecisionNode
Activation
run()
receiveOffer()
fire()
Dispatch
Strategy
dispatch()
GetNextEvent
Strategy
getNextEvent()
Choice
Strategy
choose()
FIFOGetNextE
ventStrategy
FirstChoice
Strategy
RedefinitionBased
DispatchStrategy
Denotational Mapping
evaluate(specification: ValueSpecification): Value
Abstract Syntax
Element
(Representation)
Semantic Model
Element
(Interpretation)
Abstract Syntax: Value Specifications
Semantics: Values
Representation: Instance Model
Interpretation: Instance Model
j = evaluate(v)
Semantics: Extensional Values
There are concepts in
the semantic model that
have no explicit
representation in the
abstract syntax.
Abstract Syntax/Semantics: Behavior
Abstract Syntax: Activities
Semantics: Activities
Additional semantic
concepts have
specifically to do with
dynamic behavior.
Model: Simple Activity
Representation: Simple Activity
Interpretation: Simple Activity Execution (1)
Interpretation: Simple Activity Execution (2)
Execution Semantics and Base Semantics
(forall (n a xa f xn)
(if (and (ExecutableNode n)
(buml:activity n a)
(classifies a xa f)
(property-value xa n xn f)
(ipc:subactivity_occurrence-neq xn xa))
(forall (n a xal xa2 xn)
(if (and (ExecutableNode n)
(buml:activity n a)
(classifies a xa1 f)
(classified a xa2 f)
(property-value xa1 n xn f)
(property-value xa2 n xn f)
(= (psl:root occ xa1) (psl:root occ xa2))))
Execution Semantics
(Operational Specification)
Base Semantics
(Axiomatic Specification)
• Foundational UML (fUML) semantics are
specified operationally as a UML Model
written in Base UML (bUML).
• Base UML semantics are specified
axiomatically using Common
Logic/Process Specification Language
(PSL).
Execution Environment
• Locus
– Manages extents
– Provides pre-instantiated discoverable services
• Executor
– Evaluates value specifications
– Executes behaviors (synchronously)
– Starts behaviors or active objects (asynchronously)
• Execution Factory
– Creates visitor objects
– Registers strategies
– Registers primitive types and primitive behaviors

Más contenido relacionado

Was ist angesagt?

Stevecook uml mdday2010
Stevecook uml mdday2010Stevecook uml mdday2010
Stevecook uml mdday2010MD DAY
 
UML as a Programming Language
UML as a Programming LanguageUML as a Programming Language
UML as a Programming LanguageEd Seidewitz
 
Standards-Based Executable UML: Today's Reality and Tomorrow's Promise
Standards-Based Executable UML: Today's Reality and Tomorrow's PromiseStandards-Based Executable UML: Today's Reality and Tomorrow's Promise
Standards-Based Executable UML: Today's Reality and Tomorrow's PromiseEd Seidewitz
 
fUML-Driven Design and Performance Analysis of Software Agents for Wireless S...
fUML-Driven Design and Performance Analysis of Software Agents for Wireless S...fUML-Driven Design and Performance Analysis of Software Agents for Wireless S...
fUML-Driven Design and Performance Analysis of Software Agents for Wireless S...Luca Berardinelli
 
Uml Omg Fundamental Certification 1
Uml Omg Fundamental Certification 1Uml Omg Fundamental Certification 1
Uml Omg Fundamental Certification 1Ricardo Quintero
 
EclipseCon 2006: Introduction to the Eclipse Modeling Framework
EclipseCon 2006: Introduction to the Eclipse Modeling FrameworkEclipseCon 2006: Introduction to the Eclipse Modeling Framework
EclipseCon 2006: Introduction to the Eclipse Modeling FrameworkDave Steinberg
 
Eclipse Modeling Framework
Eclipse Modeling FrameworkEclipse Modeling Framework
Eclipse Modeling FrameworkAjay K
 
Uml Diagrams for Web Developers
Uml Diagrams for Web DevelopersUml Diagrams for Web Developers
Uml Diagrams for Web DevelopersDave Kelleher
 
Domain Driven Design Thoughts Mat Holroyd
Domain Driven Design Thoughts   Mat HolroydDomain Driven Design Thoughts   Mat Holroyd
Domain Driven Design Thoughts Mat Holroydmelbournepatterns
 
Industrial and Academic Experiences with a User Interaction Modeling Language...
Industrial and Academic Experiences with a User Interaction Modeling Language...Industrial and Academic Experiences with a User Interaction Modeling Language...
Industrial and Academic Experiences with a User Interaction Modeling Language...Marco Brambilla
 
6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformation6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformationMajong DevJfu
 
UNIFIED MODELING LANGUAGE
UNIFIED MODELING LANGUAGEUNIFIED MODELING LANGUAGE
UNIFIED MODELING LANGUAGERaval Chirag
 
Eclipse World 2007: Fundamentals of the Eclipse Modeling Framework
Eclipse World 2007: Fundamentals of the Eclipse Modeling FrameworkEclipse World 2007: Fundamentals of the Eclipse Modeling Framework
Eclipse World 2007: Fundamentals of the Eclipse Modeling FrameworkDave Steinberg
 

Was ist angesagt? (20)

Stevecook uml mdday2010
Stevecook uml mdday2010Stevecook uml mdday2010
Stevecook uml mdday2010
 
UML as a Programming Language
UML as a Programming LanguageUML as a Programming Language
UML as a Programming Language
 
Standards-Based Executable UML: Today's Reality and Tomorrow's Promise
Standards-Based Executable UML: Today's Reality and Tomorrow's PromiseStandards-Based Executable UML: Today's Reality and Tomorrow's Promise
Standards-Based Executable UML: Today's Reality and Tomorrow's Promise
 
fUML-Driven Design and Performance Analysis of Software Agents for Wireless S...
fUML-Driven Design and Performance Analysis of Software Agents for Wireless S...fUML-Driven Design and Performance Analysis of Software Agents for Wireless S...
fUML-Driven Design and Performance Analysis of Software Agents for Wireless S...
 
Uml Omg Fundamental Certification 1
Uml Omg Fundamental Certification 1Uml Omg Fundamental Certification 1
Uml Omg Fundamental Certification 1
 
QVT & MTL In Eclipse
QVT & MTL In EclipseQVT & MTL In Eclipse
QVT & MTL In Eclipse
 
Staruml
StarumlStaruml
Staruml
 
EclipseCon 2006: Introduction to the Eclipse Modeling Framework
EclipseCon 2006: Introduction to the Eclipse Modeling FrameworkEclipseCon 2006: Introduction to the Eclipse Modeling Framework
EclipseCon 2006: Introduction to the Eclipse Modeling Framework
 
Eclipse Modeling Framework
Eclipse Modeling FrameworkEclipse Modeling Framework
Eclipse Modeling Framework
 
UML 2.5_PDF
UML 2.5_PDFUML 2.5_PDF
UML 2.5_PDF
 
Eugenia
EugeniaEugenia
Eugenia
 
Uml2 David Kemp 20060716
Uml2 David Kemp 20060716Uml2 David Kemp 20060716
Uml2 David Kemp 20060716
 
Ooad with uml
Ooad with umlOoad with uml
Ooad with uml
 
Uml Diagrams for Web Developers
Uml Diagrams for Web DevelopersUml Diagrams for Web Developers
Uml Diagrams for Web Developers
 
Domain Driven Design Thoughts Mat Holroyd
Domain Driven Design Thoughts   Mat HolroydDomain Driven Design Thoughts   Mat Holroyd
Domain Driven Design Thoughts Mat Holroyd
 
Industrial and Academic Experiences with a User Interaction Modeling Language...
Industrial and Academic Experiences with a User Interaction Modeling Language...Industrial and Academic Experiences with a User Interaction Modeling Language...
Industrial and Academic Experiences with a User Interaction Modeling Language...
 
6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformation6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformation
 
UNIFIED MODELING LANGUAGE
UNIFIED MODELING LANGUAGEUNIFIED MODELING LANGUAGE
UNIFIED MODELING LANGUAGE
 
Eclipse World 2007: Fundamentals of the Eclipse Modeling Framework
Eclipse World 2007: Fundamentals of the Eclipse Modeling FrameworkEclipse World 2007: Fundamentals of the Eclipse Modeling Framework
Eclipse World 2007: Fundamentals of the Eclipse Modeling Framework
 
TextUML Toolkit
TextUML ToolkitTextUML Toolkit
TextUML Toolkit
 

Ähnlich wie UML: Once More with Meaning

Sysmlactivity
SysmlactivitySysmlactivity
Sysmlactivityelheshk
 
UML Modeling and Profiling Lab - Advanced Software Engineering Course 2014/2015
UML Modeling and Profiling Lab - Advanced Software Engineering Course 2014/2015UML Modeling and Profiling Lab - Advanced Software Engineering Course 2014/2015
UML Modeling and Profiling Lab - Advanced Software Engineering Course 2014/2015Luca Berardinelli
 
Executable UML – UML2
Executable UML – UML2Executable UML – UML2
Executable UML – UML2elliando dias
 
Chapter-2 UML and UML Diagrams.pdf
Chapter-2 UML and UML Diagrams.pdfChapter-2 UML and UML Diagrams.pdf
Chapter-2 UML and UML Diagrams.pdfAkfeteAssefa
 
Introduction To Uml
Introduction To UmlIntroduction To Uml
Introduction To Umlguest514814
 
MDD and modeling tools research
MDD and modeling tools researchMDD and modeling tools research
MDD and modeling tools researchRoger Xia
 
xUMLFinalPresentation.ppt
xUMLFinalPresentation.pptxUMLFinalPresentation.ppt
xUMLFinalPresentation.pptssuser2ef938
 
EclipseCon 2007: Effective Use of the Eclipse Modeling Framework
EclipseCon 2007: Effective Use of the Eclipse Modeling FrameworkEclipseCon 2007: Effective Use of the Eclipse Modeling Framework
EclipseCon 2007: Effective Use of the Eclipse Modeling FrameworkDave Steinberg
 
01 1 kobryn-structural_and_use_case_modeling_tutorial
01 1 kobryn-structural_and_use_case_modeling_tutorial01 1 kobryn-structural_and_use_case_modeling_tutorial
01 1 kobryn-structural_and_use_case_modeling_tutorialSidi yazid
 
Uml introduction
Uml introductionUml introduction
Uml introductionbdemchak
 
UML Generator (NCC18)
UML Generator (NCC18)UML Generator (NCC18)
UML Generator (NCC18)IT Industry
 
Precise Semantics Standards at OMG: Executing on the Vision
Precise Semantics Standards at OMG: Executing on the VisionPrecise Semantics Standards at OMG: Executing on the Vision
Precise Semantics Standards at OMG: Executing on the VisionEd Seidewitz
 
M05 Metamodel
M05 MetamodelM05 Metamodel
M05 MetamodelDang Tuan
 

Ähnlich wie UML: Once More with Meaning (20)

Sysmlactivity
SysmlactivitySysmlactivity
Sysmlactivity
 
UML Modeling and Profiling Lab - Advanced Software Engineering Course 2014/2015
UML Modeling and Profiling Lab - Advanced Software Engineering Course 2014/2015UML Modeling and Profiling Lab - Advanced Software Engineering Course 2014/2015
UML Modeling and Profiling Lab - Advanced Software Engineering Course 2014/2015
 
Executable UML – UML2
Executable UML – UML2Executable UML – UML2
Executable UML – UML2
 
Chapter-2 UML and UML Diagrams.pdf
Chapter-2 UML and UML Diagrams.pdfChapter-2 UML and UML Diagrams.pdf
Chapter-2 UML and UML Diagrams.pdf
 
ALT
ALTALT
ALT
 
Introduction To Uml
Introduction To UmlIntroduction To Uml
Introduction To Uml
 
Apostila UML
Apostila UMLApostila UML
Apostila UML
 
4 (uml basic)
4 (uml basic)4 (uml basic)
4 (uml basic)
 
MDD and modeling tools research
MDD and modeling tools researchMDD and modeling tools research
MDD and modeling tools research
 
xUMLFinalPresentation.ppt
xUMLFinalPresentation.pptxUMLFinalPresentation.ppt
xUMLFinalPresentation.ppt
 
EclipseCon 2007: Effective Use of the Eclipse Modeling Framework
EclipseCon 2007: Effective Use of the Eclipse Modeling FrameworkEclipseCon 2007: Effective Use of the Eclipse Modeling Framework
EclipseCon 2007: Effective Use of the Eclipse Modeling Framework
 
Uml1 concepts
Uml1 conceptsUml1 concepts
Uml1 concepts
 
01 1 kobryn-structural_and_use_case_modeling_tutorial
01 1 kobryn-structural_and_use_case_modeling_tutorial01 1 kobryn-structural_and_use_case_modeling_tutorial
01 1 kobryn-structural_and_use_case_modeling_tutorial
 
3.UML Diagrams.pptx
3.UML Diagrams.pptx3.UML Diagrams.pptx
3.UML Diagrams.pptx
 
Unified Modeling Language
Unified Modeling LanguageUnified Modeling Language
Unified Modeling Language
 
Uml introduction
Uml introductionUml introduction
Uml introduction
 
Epsilon
EpsilonEpsilon
Epsilon
 
UML Generator (NCC18)
UML Generator (NCC18)UML Generator (NCC18)
UML Generator (NCC18)
 
Precise Semantics Standards at OMG: Executing on the Vision
Precise Semantics Standards at OMG: Executing on the VisionPrecise Semantics Standards at OMG: Executing on the Vision
Precise Semantics Standards at OMG: Executing on the Vision
 
M05 Metamodel
M05 MetamodelM05 Metamodel
M05 Metamodel
 

Mehr von Ed Seidewitz

SysML v2 - What's the big deal, anyway?
SysML v2 - What's the big deal, anyway?SysML v2 - What's the big deal, anyway?
SysML v2 - What's the big deal, anyway?Ed Seidewitz
 
Introduction to the OMG Systems Modeling Language (SysML), Version 2
Introduction to the OMG Systems Modeling Language (SysML), Version 2Introduction to the OMG Systems Modeling Language (SysML), Version 2
Introduction to the OMG Systems Modeling Language (SysML), Version 2Ed Seidewitz
 
Leveraging Alf for SysML, Part 2: More Effective Trade Study Modeling
Leveraging Alf for SysML, Part 2: More Effective Trade Study ModelingLeveraging Alf for SysML, Part 2: More Effective Trade Study Modeling
Leveraging Alf for SysML, Part 2: More Effective Trade Study ModelingEd Seidewitz
 
Leveraging Alf for SysML, Part 1: Better Simulation Modeling
Leveraging Alf for SysML, Part 1: Better Simulation ModelingLeveraging Alf for SysML, Part 1: Better Simulation Modeling
Leveraging Alf for SysML, Part 1: Better Simulation ModelingEd Seidewitz
 
The Very Model of a Modern Metamodeler
The Very Model of a Modern MetamodelerThe Very Model of a Modern Metamodeler
The Very Model of a Modern MetamodelerEd Seidewitz
 
SysML v2 and the Next Generation of Modeling Languages
SysML v2 and the Next Generation of Modeling LanguagesSysML v2 and the Next Generation of Modeling Languages
SysML v2 and the Next Generation of Modeling LanguagesEd Seidewitz
 
SysML v2 and MBSE: The next ten years
SysML v2 and MBSE: The next ten yearsSysML v2 and MBSE: The next ten years
SysML v2 and MBSE: The next ten yearsEd Seidewitz
 
Model Driven Architecture without Automation
Model Driven Architecture without AutomationModel Driven Architecture without Automation
Model Driven Architecture without AutomationEd Seidewitz
 
Using Alf with Cameo Simulation Toolkit - Part 2: Modeling
Using Alf with Cameo Simulation Toolkit - Part 2: ModelingUsing Alf with Cameo Simulation Toolkit - Part 2: Modeling
Using Alf with Cameo Simulation Toolkit - Part 2: ModelingEd Seidewitz
 
Using Alf with Cameo Simulation Toolkit - Part 1: Basics
Using Alf with Cameo Simulation Toolkit - Part 1: BasicsUsing Alf with Cameo Simulation Toolkit - Part 1: Basics
Using Alf with Cameo Simulation Toolkit - Part 1: BasicsEd Seidewitz
 
Hands On With the Alf Action Language: Making Executable Modeling Even Easier
Hands On With the Alf Action Language: Making Executable Modeling Even EasierHands On With the Alf Action Language: Making Executable Modeling Even Easier
Hands On With the Alf Action Language: Making Executable Modeling Even EasierEd Seidewitz
 
A Unified View of Modeling and Programming
A Unified View of Modeling and ProgrammingA Unified View of Modeling and Programming
A Unified View of Modeling and ProgrammingEd Seidewitz
 
Essence: A Common Ground for Flexible Methods
Essence: A Common Ground for Flexible MethodsEssence: A Common Ground for Flexible Methods
Essence: A Common Ground for Flexible MethodsEd Seidewitz
 
Succeeding with Agile in the Federal Government: A Coach's Perspective
Succeeding with Agile in the Federal Government: A Coach's PerspectiveSucceeding with Agile in the Federal Government: A Coach's Perspective
Succeeding with Agile in the Federal Government: A Coach's PerspectiveEd Seidewitz
 
Models, Programs and Executable UML
Models, Programs and Executable UMLModels, Programs and Executable UML
Models, Programs and Executable UMLEd Seidewitz
 
Architecting Your Enterprise
Architecting Your EnterpriseArchitecting Your Enterprise
Architecting Your EnterpriseEd Seidewitz
 

Mehr von Ed Seidewitz (16)

SysML v2 - What's the big deal, anyway?
SysML v2 - What's the big deal, anyway?SysML v2 - What's the big deal, anyway?
SysML v2 - What's the big deal, anyway?
 
Introduction to the OMG Systems Modeling Language (SysML), Version 2
Introduction to the OMG Systems Modeling Language (SysML), Version 2Introduction to the OMG Systems Modeling Language (SysML), Version 2
Introduction to the OMG Systems Modeling Language (SysML), Version 2
 
Leveraging Alf for SysML, Part 2: More Effective Trade Study Modeling
Leveraging Alf for SysML, Part 2: More Effective Trade Study ModelingLeveraging Alf for SysML, Part 2: More Effective Trade Study Modeling
Leveraging Alf for SysML, Part 2: More Effective Trade Study Modeling
 
Leveraging Alf for SysML, Part 1: Better Simulation Modeling
Leveraging Alf for SysML, Part 1: Better Simulation ModelingLeveraging Alf for SysML, Part 1: Better Simulation Modeling
Leveraging Alf for SysML, Part 1: Better Simulation Modeling
 
The Very Model of a Modern Metamodeler
The Very Model of a Modern MetamodelerThe Very Model of a Modern Metamodeler
The Very Model of a Modern Metamodeler
 
SysML v2 and the Next Generation of Modeling Languages
SysML v2 and the Next Generation of Modeling LanguagesSysML v2 and the Next Generation of Modeling Languages
SysML v2 and the Next Generation of Modeling Languages
 
SysML v2 and MBSE: The next ten years
SysML v2 and MBSE: The next ten yearsSysML v2 and MBSE: The next ten years
SysML v2 and MBSE: The next ten years
 
Model Driven Architecture without Automation
Model Driven Architecture without AutomationModel Driven Architecture without Automation
Model Driven Architecture without Automation
 
Using Alf with Cameo Simulation Toolkit - Part 2: Modeling
Using Alf with Cameo Simulation Toolkit - Part 2: ModelingUsing Alf with Cameo Simulation Toolkit - Part 2: Modeling
Using Alf with Cameo Simulation Toolkit - Part 2: Modeling
 
Using Alf with Cameo Simulation Toolkit - Part 1: Basics
Using Alf with Cameo Simulation Toolkit - Part 1: BasicsUsing Alf with Cameo Simulation Toolkit - Part 1: Basics
Using Alf with Cameo Simulation Toolkit - Part 1: Basics
 
Hands On With the Alf Action Language: Making Executable Modeling Even Easier
Hands On With the Alf Action Language: Making Executable Modeling Even EasierHands On With the Alf Action Language: Making Executable Modeling Even Easier
Hands On With the Alf Action Language: Making Executable Modeling Even Easier
 
A Unified View of Modeling and Programming
A Unified View of Modeling and ProgrammingA Unified View of Modeling and Programming
A Unified View of Modeling and Programming
 
Essence: A Common Ground for Flexible Methods
Essence: A Common Ground for Flexible MethodsEssence: A Common Ground for Flexible Methods
Essence: A Common Ground for Flexible Methods
 
Succeeding with Agile in the Federal Government: A Coach's Perspective
Succeeding with Agile in the Federal Government: A Coach's PerspectiveSucceeding with Agile in the Federal Government: A Coach's Perspective
Succeeding with Agile in the Federal Government: A Coach's Perspective
 
Models, Programs and Executable UML
Models, Programs and Executable UMLModels, Programs and Executable UML
Models, Programs and Executable UML
 
Architecting Your Enterprise
Architecting Your EnterpriseArchitecting Your Enterprise
Architecting Your Enterprise
 

Último

Unlocking AI: Navigating Open Source vs. Commercial Frontiers
Unlocking AI:Navigating Open Source vs. Commercial FrontiersUnlocking AI:Navigating Open Source vs. Commercial Frontiers
Unlocking AI: Navigating Open Source vs. Commercial FrontiersRaphaël Semeteys
 
Telebu Social -Whatsapp Business API : Mastering Omnichannel Business Communi...
Telebu Social -Whatsapp Business API : Mastering Omnichannel Business Communi...Telebu Social -Whatsapp Business API : Mastering Omnichannel Business Communi...
Telebu Social -Whatsapp Business API : Mastering Omnichannel Business Communi...telebusocialmarketin
 
Steps to Successfully Hire Ionic Developers
Steps to Successfully Hire Ionic DevelopersSteps to Successfully Hire Ionic Developers
Steps to Successfully Hire Ionic Developersmichealwillson701
 
Building Generative AI-infused apps: what's possible and how to start
Building Generative AI-infused apps: what's possible and how to startBuilding Generative AI-infused apps: what's possible and how to start
Building Generative AI-infused apps: what's possible and how to startMaxim Salnikov
 
Technical improvements. Reasons. Methods. Estimations. CJ
Technical improvements.  Reasons. Methods. Estimations. CJTechnical improvements.  Reasons. Methods. Estimations. CJ
Technical improvements. Reasons. Methods. Estimations. CJpolinaucc
 
CYBER SECURITY AND CYBER CRIME COMPLETE GUIDE.pLptx
CYBER SECURITY AND CYBER CRIME COMPLETE GUIDE.pLptxCYBER SECURITY AND CYBER CRIME COMPLETE GUIDE.pLptx
CYBER SECURITY AND CYBER CRIME COMPLETE GUIDE.pLptxBarakaMuyengi
 
BATbern52 Swisscom's Journey into Data Mesh
BATbern52 Swisscom's Journey into Data MeshBATbern52 Swisscom's Journey into Data Mesh
BATbern52 Swisscom's Journey into Data MeshBATbern
 
8 key point on optimizing web hosting services in your business.pdf
8 key point on optimizing web hosting services in your business.pdf8 key point on optimizing web hosting services in your business.pdf
8 key point on optimizing web hosting services in your business.pdfOffsiteNOC
 
Splashtop Enterprise Brochure - Remote Computer Access and Remote Support Sof...
Splashtop Enterprise Brochure - Remote Computer Access and Remote Support Sof...Splashtop Enterprise Brochure - Remote Computer Access and Remote Support Sof...
Splashtop Enterprise Brochure - Remote Computer Access and Remote Support Sof...Splashtop Inc
 
Mobile App Development company Houston
Mobile  App  Development  company HoustonMobile  App  Development  company Houston
Mobile App Development company Houstonjennysmithusa549
 
03.2024_North America VMUG Optimizing RevOps using the power of ChatGPT in Ma...
03.2024_North America VMUG Optimizing RevOps using the power of ChatGPT in Ma...03.2024_North America VMUG Optimizing RevOps using the power of ChatGPT in Ma...
03.2024_North America VMUG Optimizing RevOps using the power of ChatGPT in Ma...jackiepotts6
 
VuNet software organisation powerpoint deck
VuNet software organisation powerpoint deckVuNet software organisation powerpoint deck
VuNet software organisation powerpoint deckNaval Singh
 
Enterprise Content Managements Solutions
Enterprise Content Managements SolutionsEnterprise Content Managements Solutions
Enterprise Content Managements SolutionsIQBG inc
 
Boost Efficiency: Sabre API Integration Made Easy
Boost Efficiency: Sabre API Integration Made EasyBoost Efficiency: Sabre API Integration Made Easy
Boost Efficiency: Sabre API Integration Made Easymichealwillson701
 
Flutter the Future of Mobile App Development - 5 Crucial Reasons.pdf
Flutter the Future of Mobile App Development - 5 Crucial Reasons.pdfFlutter the Future of Mobile App Development - 5 Crucial Reasons.pdf
Flutter the Future of Mobile App Development - 5 Crucial Reasons.pdfMind IT Systems
 
renewable energy renewable energy renewable energy renewable energy
renewable energy renewable energy renewable energy  renewable energyrenewable energy renewable energy renewable energy  renewable energy
renewable energy renewable energy renewable energy renewable energyjeyasrig
 
MUT4SLX: Extensions for Mutation Testing of Stateflow Models
MUT4SLX: Extensions for Mutation Testing of Stateflow ModelsMUT4SLX: Extensions for Mutation Testing of Stateflow Models
MUT4SLX: Extensions for Mutation Testing of Stateflow ModelsUniversity of Antwerp
 
Leveling Up your Branding and Mastering MERN: Fullstack WebDev
Leveling Up your Branding and Mastering MERN: Fullstack WebDevLeveling Up your Branding and Mastering MERN: Fullstack WebDev
Leveling Up your Branding and Mastering MERN: Fullstack WebDevpmgdscunsri
 
Take Advantage of Mx Tracking Flight Scheduling Solutions to Streamline Your ...
Take Advantage of Mx Tracking Flight Scheduling Solutions to Streamline Your ...Take Advantage of Mx Tracking Flight Scheduling Solutions to Streamline Your ...
Take Advantage of Mx Tracking Flight Scheduling Solutions to Streamline Your ...MyFAA
 

Último (20)

Unlocking AI: Navigating Open Source vs. Commercial Frontiers
Unlocking AI:Navigating Open Source vs. Commercial FrontiersUnlocking AI:Navigating Open Source vs. Commercial Frontiers
Unlocking AI: Navigating Open Source vs. Commercial Frontiers
 
Telebu Social -Whatsapp Business API : Mastering Omnichannel Business Communi...
Telebu Social -Whatsapp Business API : Mastering Omnichannel Business Communi...Telebu Social -Whatsapp Business API : Mastering Omnichannel Business Communi...
Telebu Social -Whatsapp Business API : Mastering Omnichannel Business Communi...
 
Steps to Successfully Hire Ionic Developers
Steps to Successfully Hire Ionic DevelopersSteps to Successfully Hire Ionic Developers
Steps to Successfully Hire Ionic Developers
 
Building Generative AI-infused apps: what's possible and how to start
Building Generative AI-infused apps: what's possible and how to startBuilding Generative AI-infused apps: what's possible and how to start
Building Generative AI-infused apps: what's possible and how to start
 
Technical improvements. Reasons. Methods. Estimations. CJ
Technical improvements.  Reasons. Methods. Estimations. CJTechnical improvements.  Reasons. Methods. Estimations. CJ
Technical improvements. Reasons. Methods. Estimations. CJ
 
CYBER SECURITY AND CYBER CRIME COMPLETE GUIDE.pLptx
CYBER SECURITY AND CYBER CRIME COMPLETE GUIDE.pLptxCYBER SECURITY AND CYBER CRIME COMPLETE GUIDE.pLptx
CYBER SECURITY AND CYBER CRIME COMPLETE GUIDE.pLptx
 
BATbern52 Swisscom's Journey into Data Mesh
BATbern52 Swisscom's Journey into Data MeshBATbern52 Swisscom's Journey into Data Mesh
BATbern52 Swisscom's Journey into Data Mesh
 
8 key point on optimizing web hosting services in your business.pdf
8 key point on optimizing web hosting services in your business.pdf8 key point on optimizing web hosting services in your business.pdf
8 key point on optimizing web hosting services in your business.pdf
 
Splashtop Enterprise Brochure - Remote Computer Access and Remote Support Sof...
Splashtop Enterprise Brochure - Remote Computer Access and Remote Support Sof...Splashtop Enterprise Brochure - Remote Computer Access and Remote Support Sof...
Splashtop Enterprise Brochure - Remote Computer Access and Remote Support Sof...
 
20140812 - OBD2 Solution
20140812 - OBD2 Solution20140812 - OBD2 Solution
20140812 - OBD2 Solution
 
Mobile App Development company Houston
Mobile  App  Development  company HoustonMobile  App  Development  company Houston
Mobile App Development company Houston
 
03.2024_North America VMUG Optimizing RevOps using the power of ChatGPT in Ma...
03.2024_North America VMUG Optimizing RevOps using the power of ChatGPT in Ma...03.2024_North America VMUG Optimizing RevOps using the power of ChatGPT in Ma...
03.2024_North America VMUG Optimizing RevOps using the power of ChatGPT in Ma...
 
VuNet software organisation powerpoint deck
VuNet software organisation powerpoint deckVuNet software organisation powerpoint deck
VuNet software organisation powerpoint deck
 
Enterprise Content Managements Solutions
Enterprise Content Managements SolutionsEnterprise Content Managements Solutions
Enterprise Content Managements Solutions
 
Boost Efficiency: Sabre API Integration Made Easy
Boost Efficiency: Sabre API Integration Made EasyBoost Efficiency: Sabre API Integration Made Easy
Boost Efficiency: Sabre API Integration Made Easy
 
Flutter the Future of Mobile App Development - 5 Crucial Reasons.pdf
Flutter the Future of Mobile App Development - 5 Crucial Reasons.pdfFlutter the Future of Mobile App Development - 5 Crucial Reasons.pdf
Flutter the Future of Mobile App Development - 5 Crucial Reasons.pdf
 
renewable energy renewable energy renewable energy renewable energy
renewable energy renewable energy renewable energy  renewable energyrenewable energy renewable energy renewable energy  renewable energy
renewable energy renewable energy renewable energy renewable energy
 
MUT4SLX: Extensions for Mutation Testing of Stateflow Models
MUT4SLX: Extensions for Mutation Testing of Stateflow ModelsMUT4SLX: Extensions for Mutation Testing of Stateflow Models
MUT4SLX: Extensions for Mutation Testing of Stateflow Models
 
Leveling Up your Branding and Mastering MERN: Fullstack WebDev
Leveling Up your Branding and Mastering MERN: Fullstack WebDevLeveling Up your Branding and Mastering MERN: Fullstack WebDev
Leveling Up your Branding and Mastering MERN: Fullstack WebDev
 
Take Advantage of Mx Tracking Flight Scheduling Solutions to Streamline Your ...
Take Advantage of Mx Tracking Flight Scheduling Solutions to Streamline Your ...Take Advantage of Mx Tracking Flight Scheduling Solutions to Streamline Your ...
Take Advantage of Mx Tracking Flight Scheduling Solutions to Streamline Your ...
 

UML: Once More with Meaning

  • 1. Copyright © 2013 Ivar Jacobson International SA. All rights reserved UML: Once More with Meaning Vienna University of Technology Ed Seidewitz 24 June 2013
  • 2. UML Prehistory: Object-Oriented Analysis and Design (1) OOAD orthodoxy (c. 1980s) Organize programs to model the basic concepts of the problem domain. Problem Programming languages (even OOPLs) are not particularly good as problem domain modeling languages. • Too much of a program must focus on implementation details. • As the program grows, the “big picture” gets lost.
  • 3. UML Prehistory: Object-Oriented Analysis and Design (2) Solution Use a graphical modeling notation for analysis and design. • “Model the problem domain” during analysis. • “Model the solution” in problem domain terms during design. • Use the solution model as a “blueprint” for coding. Consequence “Modeling” in the software community became drawing pictures, for problem domain representation and solution blueprinting. • Precise “meaning” was only to be found in the programs themselves.
  • 4. Unified Modeling Language v1.x Unified Modeling Language (UML) intended to “unify” the various OOAD graphical modeling languages of the early 1990s. 1995 – UML 0.9 by Booch, Rumbaugh and Jacobson (“3 amigos”) 1996 – UML 1.0 proposed by Rational 1997 – UML 1.1 adopted by Object Management Group (OMG) The intent of OMG standardization was primarily to allow syntactic interchange of models between tools.
  • 5. Unified Modeling Language v2.x There was a hope to add semantic interoperability to the UML standard with UML 2. 1999 – UML 2.0 Request for Information (RFI) 2000 – UML 2.0 Requests for Proposal (RFPs) 2003 – UML 2.0 Adopted 2005 – UML 2.0 Finalized 2011 – UML 2.4.1 Latest formal version “However, the presence of numerous variation points in these semantics (and the fact that they are defined informally using natural language), make it impractical to define this as a formal compliance type, since the number of possible combinations is very large.” – UML Superstructure Specification, v2.0 – 2.4.1
  • 6. Unified Modeling Language v2.5 The UML 2.5 specification document is reorganized to be “consumable” and to remove redundancy and correct inconsistencies. Primarily focused on semantics descriptions. 2008 – Future Development of UML RFI 2009 – UML Specification Simplification RFP (UML 2.5) 2012 – UML 2.5 Adopted 2013 – UML 2.5 Finalized (planned) “A tool demonstrating semantic conformance provides a demonstrable way to interpret UML semantics, e.g., code generation, model execution, or semantic model analysis.” – UML 2.5 Specification, Semantic Conformance
  • 7. Executable Modeling Before UML Before UML, there were already a number of approaches to modeling with precise, executable semantics. 1998, 1991 – Shlear-Mellor Object-Oriented Analysis 1988, 1998 – Harel Statecharts 1994 – Real-Time Object-Oriented Modeling (ROOM) In 1998, Stephen Mellor came to an Object Management Group meeting for the first time, to talk about defining an action language for UML with precise semantics.
  • 8. Foundational UML (fUML) Foundational UML (fUML) is an executable subset of standard UML that can be used to define, in an operational style, the structural and behavioral semantics of systems. 1998 – Action Semantics for the UML RFP 2003 – UML 1.5 with action semantics formalized 2003 – UML 2.0 adopted 2005 – Semantics of a Foundational Subset for Executable UML Models RFP 2008 – fUML 1.0 Beta (based on UML 2.2) 2010 – fUML 1.0 Formal (based on UML 2.3) 2012 – fUML 1.1 Beta (based on UML 2.4.1)
  • 9. Composite Structure Semantics Complete Activity Model Semantics State Machine Semantics fUML Scope Non- Executable Model Semantics The semantics of fUML provide the foundation for formally specifying the (execution) semantics of the rest of UML. Some areas of UML (e.g., use case and requirements models) may not be best formalized based on an executable semantics foundation. Interaction Model Semantics Foundational Semantics fUML operational semantics are specified as an execution model written in fUML itself. Base Semantics The base semantics of the subset of fUML used in the execution model are specified using formal logic.
  • 10. fUML Key Components • Foundational UML Subset (fUML) – A computationally complete subset of the abstract syntax of UML (Version 2.4.1) – Kernel – Basic object-oriented capabilities – Common Behavior – General behavior and asynchronous communication – Activities – Activity modeling, including structured activities (but not including variables, exceptions, swimlanes, streaming or other “higher level” activity modeling) • Execution Model – A model of the execution semantics of user models within the fUML subset • Foundational Model Library – Primitive Types – Boolean, String, Integer, Unlimited Natural – Primitive Behaviors – Boolean, String and Arithmetic Functions – Basic Input/Output – Based on the concept of “Channels”
  • 11. Action Language for fUML (Alf) The Action Language for Foundational UML (Alf) is a textual surface representation for UML modeling elements with the primary of acting as the surface notation for specifying executable (fUML) behaviors within an overall graphical UML model. 2008 – Concrete Syntax for a UML Action Language RFP 2010 – Alf 1.0 Beta (based on UML 2.4 and fUML 1.0) 2013 – Alf 1.0.1 Beta (based on UML 2.4.1 and fUML 1.1)
  • 12. Alf Key Components • Concrete Syntax – A BNF specification of the legal textual syntax of the Alf language. • Abstract Syntax – A MOF metamodel of the abstract syntax tree that is synthesized during parsing of an Alf text, with additional derived attributes and constraints that specify the static semantic analysis of that text. • Semantics – The semantics of Alf are defined by mapping the Alf abstract syntax metamodel to the fUML abstract syntax metamodel. • Standard Model Library – From the fUML Foundational Model Library • Primitive Types (plus Natural and Bit String) • Primitive Behaviors (plus Bit String Functions and Sequence Functions) • Basic Input/Output – Collection Functions – Similar to OCL collection operations for sequences – Collection Classes – Set, Ordered Set, Bag, List, Queue, Deque, Map
  • 14. Using Alf to Define a Method An operation specifies a behavior that may be synchronously invoked on an instance of a class. A method defines the actual behavior that is invoked.
  • 15. Order: Classifier Behavior A state machine abstracts system behavior into a finite number of states. The system is modeled as having discrete transitions between the states. A transition may trigger further system behavior or system behavior may be dependent on the current state. Order is an active class whose classifier behavior is responsible for handling ordering functionality.
  • 16. Using Alf to Define an Activity (1) An activity specifies behavior as the coordinated execution of a set of subordinate actions. An action in one activity may call another activity. Data and control flow between the various actions. Other actions provide various data and computational functions. Full executability requires complete specification of behavior and computation. This is often much more easy to specify using a textual notation.
  • 17. Using Alf to Define an Activity (2) namespace Order::Order_Behavior; private import Utilities::Time::CurrentDate; private import Utilities::Currency::Add; activity EstablishCustomer(in checkOut: CheckOut) { this.lineItems = checkOut.items; Customer_Order.addLink(checkOut.customer, this); this.datePlaced = CurrentDate(); this.totalAmount = this.lineItems.amount->reduce Add; this.SubmitCharge(checkOut.card); }
  • 18. A virtual machine based on concurrent UML activity flow semantics. The target for “compiled” models. Architecture for Executable UML Tooling fUML Execution Engine Model Development Environment Other Tools Target Platform Providing all the capabilities expected in a code-based IDE. In memory or via XMI transfer. Simulation, analysis, optimization, etc.
  • 19. The models are validated in a development/test environment The Goal: Programming in UML The models are deployed in a production environment Developers create fully executable models It’s just programming, only better! Developers iteratively execute, test and update the models
  • 20. Implementations • fUML Implementations – Open Source Reference Implementation (Academic Free License 3.0) http://fuml.modeldriven.org – Cameo Simulation Toolkit for MagicDraw from NoMagic https://www.magicdraw.com/simulation – Advanced Modeling | UML Simulation and Execution (AM|USE) by LieberLieber for Enterprise Architect from Sparx Systems http://www.lieberlieber.com/model-engineering/amuse/product-overview/ • Alf Implementations – Open Source Reference Implementation (GNU General Public License 3.0) http://alf.modeldriven.org – Alf for Papyrus Eclipse UML Tool (Ongoing)
  • 21. Ongoing Work • fUML Version 1.2 • Alf Version 1.1 • Precise Semantics of UML Composite Structures • Additional “Precise Semantics” RFPs – State machines – Interactions – Complete activities/process modeling
  • 22. Addendum: Specifying Execution Semantics • Execution Model • Semantics of Values • Semantics of Behavior • Execution Semantics and Base Semantics • Execution Environment
  • 23. Execution Model • Visitor Pattern – Evaluations of Value Specifications – Executions of Behaviors – Activations of Activity Nodes • Strategy Pattern – Polymorphic Dispatching SVP – Event Dispatching SVP – Nondeterminism LiteralString LiteralString Evaluation evaluate() Activity Activity Execution execute() DecisionNode DecisionNode Activation run() receiveOffer() fire() Dispatch Strategy dispatch() GetNextEvent Strategy getNextEvent() Choice Strategy choose() FIFOGetNextE ventStrategy FirstChoice Strategy RedefinitionBased DispatchStrategy
  • 24. Denotational Mapping evaluate(specification: ValueSpecification): Value Abstract Syntax Element (Representation) Semantic Model Element (Interpretation)
  • 25. Abstract Syntax: Value Specifications
  • 29. Semantics: Extensional Values There are concepts in the semantic model that have no explicit representation in the abstract syntax.
  • 32. Semantics: Activities Additional semantic concepts have specifically to do with dynamic behavior.
  • 37. Execution Semantics and Base Semantics (forall (n a xa f xn) (if (and (ExecutableNode n) (buml:activity n a) (classifies a xa f) (property-value xa n xn f) (ipc:subactivity_occurrence-neq xn xa)) (forall (n a xal xa2 xn) (if (and (ExecutableNode n) (buml:activity n a) (classifies a xa1 f) (classified a xa2 f) (property-value xa1 n xn f) (property-value xa2 n xn f) (= (psl:root occ xa1) (psl:root occ xa2)))) Execution Semantics (Operational Specification) Base Semantics (Axiomatic Specification) • Foundational UML (fUML) semantics are specified operationally as a UML Model written in Base UML (bUML). • Base UML semantics are specified axiomatically using Common Logic/Process Specification Language (PSL).
  • 38. Execution Environment • Locus – Manages extents – Provides pre-instantiated discoverable services • Executor – Evaluates value specifications – Executes behaviors (synchronously) – Starts behaviors or active objects (asynchronously) • Execution Factory – Creates visitor objects – Registers strategies – Registers primitive types and primitive behaviors