Suche senden
Hochladen
UML with Action Semantics
•
1 gefällt mir
•
1,205 views
elliando dias
Folgen
Technologie
Melden
Teilen
Melden
Teilen
1 von 42
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
Opps approch of software development
Opps approch of software development
Raja Babu
Graduation defense 'Density & Daylight' by Jasper Moelker (05 Nov 2009)
Graduation defense 'Density & Daylight' by Jasper Moelker (05 Nov 2009)
Jasper Moelker
P4 Architecture by Jasper Moelker
P4 Architecture by Jasper Moelker
Jasper Moelker
ECSA 2011 (Navarro)
ECSA 2011 (Navarro)
Carlos Cuesta
How to Design Frameworks
How to Design Frameworks
elliando dias
Programming in UML: An Introduction to fUML and Alf
Programming in UML: An Introduction to fUML and Alf
Ed Seidewitz
Oral Language
Oral Language
Honor Moorman
Executable UML and SysML Workshop
Executable UML and SysML Workshop
Ed Seidewitz
Empfohlen
Opps approch of software development
Opps approch of software development
Raja Babu
Graduation defense 'Density & Daylight' by Jasper Moelker (05 Nov 2009)
Graduation defense 'Density & Daylight' by Jasper Moelker (05 Nov 2009)
Jasper Moelker
P4 Architecture by Jasper Moelker
P4 Architecture by Jasper Moelker
Jasper Moelker
ECSA 2011 (Navarro)
ECSA 2011 (Navarro)
Carlos Cuesta
How to Design Frameworks
How to Design Frameworks
elliando dias
Programming in UML: An Introduction to fUML and Alf
Programming in UML: An Introduction to fUML and Alf
Ed Seidewitz
Oral Language
Oral Language
Honor Moorman
Executable UML and SysML Workshop
Executable UML and SysML Workshop
Ed Seidewitz
Eclipse For Dummies
Eclipse For Dummies
Antonio Villegas
UML: Once More with Meaning
UML: Once More with Meaning
Ed Seidewitz
Smalltalk in Large-scale Enterprise Architectures
Smalltalk in Large-scale Enterprise Architectures
ESUG
Eclipse Summit 2009 - Aspect Oriented Modeling
Eclipse Summit 2009 - Aspect Oriented Modeling
Marc Dutoo
Virtual EMF - Standard talk at EclipseCon Europe 2011
Virtual EMF - Standard talk at EclipseCon Europe 2011
Hugo Bruneliere
01 concepts of_object-orientation (1)
01 concepts of_object-orientation (1)
AaDi RA
Applying Aspect-Extended UML Modelling to 'e'
Applying Aspect-Extended UML Modelling to 'e'
DVClub
Darren galpin q4_2008_bristol
Darren galpin q4_2008_bristol
Obsidian Software
Modeling With Eclipse @SoftShake 2011
Modeling With Eclipse @SoftShake 2011
Mickael Istria
UML Modeling and Profiling Lab - Advanced Software Engineering Course 2014/2015
UML Modeling and Profiling Lab - Advanced Software Engineering Course 2014/2015
Luca Berardinelli
MDD and modeling tools research
MDD and modeling tools research
Roger Xia
xUMLFinalPresentation.ppt
xUMLFinalPresentation.ppt
ssuser2ef938
Agile Modeling with Uml and Visual Studio 2010
Agile Modeling with Uml and Visual Studio 2010
Ogren Paunović
SiriusCon 2015 - Breathe Life into Your Designer!
SiriusCon 2015 - Breathe Life into Your Designer!
melbats
Notacion uml
Notacion uml
Oscar Eduardo
Ooad with uml
Ooad with uml
Prof .Pragati Khade
The Case For Uml
The Case For Uml
pomlover
01 1 kobryn-structural_and_use_case_modeling_tutorial
01 1 kobryn-structural_and_use_case_modeling_tutorial
Sidi yazid
Executable UML – UML2
Executable UML – UML2
elliando dias
UML Generator (NCC18)
UML Generator (NCC18)
IT Industry
Clojurescript slides
Clojurescript slides
elliando dias
Why you should be excited about ClojureScript
Why you should be excited about ClojureScript
elliando dias
Weitere ähnliche Inhalte
Ähnlich wie UML with Action Semantics
Eclipse For Dummies
Eclipse For Dummies
Antonio Villegas
UML: Once More with Meaning
UML: Once More with Meaning
Ed Seidewitz
Smalltalk in Large-scale Enterprise Architectures
Smalltalk in Large-scale Enterprise Architectures
ESUG
Eclipse Summit 2009 - Aspect Oriented Modeling
Eclipse Summit 2009 - Aspect Oriented Modeling
Marc Dutoo
Virtual EMF - Standard talk at EclipseCon Europe 2011
Virtual EMF - Standard talk at EclipseCon Europe 2011
Hugo Bruneliere
01 concepts of_object-orientation (1)
01 concepts of_object-orientation (1)
AaDi RA
Applying Aspect-Extended UML Modelling to 'e'
Applying Aspect-Extended UML Modelling to 'e'
DVClub
Darren galpin q4_2008_bristol
Darren galpin q4_2008_bristol
Obsidian Software
Modeling With Eclipse @SoftShake 2011
Modeling With Eclipse @SoftShake 2011
Mickael Istria
UML Modeling and Profiling Lab - Advanced Software Engineering Course 2014/2015
UML Modeling and Profiling Lab - Advanced Software Engineering Course 2014/2015
Luca Berardinelli
MDD and modeling tools research
MDD and modeling tools research
Roger Xia
xUMLFinalPresentation.ppt
xUMLFinalPresentation.ppt
ssuser2ef938
Agile Modeling with Uml and Visual Studio 2010
Agile Modeling with Uml and Visual Studio 2010
Ogren Paunović
SiriusCon 2015 - Breathe Life into Your Designer!
SiriusCon 2015 - Breathe Life into Your Designer!
melbats
Notacion uml
Notacion uml
Oscar Eduardo
Ooad with uml
Ooad with uml
Prof .Pragati Khade
The Case For Uml
The Case For Uml
pomlover
01 1 kobryn-structural_and_use_case_modeling_tutorial
01 1 kobryn-structural_and_use_case_modeling_tutorial
Sidi yazid
Executable UML – UML2
Executable UML – UML2
elliando dias
UML Generator (NCC18)
UML Generator (NCC18)
IT Industry
Ähnlich wie UML with Action Semantics
(20)
Eclipse For Dummies
Eclipse For Dummies
UML: Once More with Meaning
UML: Once More with Meaning
Smalltalk in Large-scale Enterprise Architectures
Smalltalk in Large-scale Enterprise Architectures
Eclipse Summit 2009 - Aspect Oriented Modeling
Eclipse Summit 2009 - Aspect Oriented Modeling
Virtual EMF - Standard talk at EclipseCon Europe 2011
Virtual EMF - Standard talk at EclipseCon Europe 2011
01 concepts of_object-orientation (1)
01 concepts of_object-orientation (1)
Applying Aspect-Extended UML Modelling to 'e'
Applying Aspect-Extended UML Modelling to 'e'
Darren galpin q4_2008_bristol
Darren galpin q4_2008_bristol
Modeling With Eclipse @SoftShake 2011
Modeling With Eclipse @SoftShake 2011
UML Modeling and Profiling Lab - Advanced Software Engineering Course 2014/2015
UML Modeling and Profiling Lab - Advanced Software Engineering Course 2014/2015
MDD and modeling tools research
MDD and modeling tools research
xUMLFinalPresentation.ppt
xUMLFinalPresentation.ppt
Agile Modeling with Uml and Visual Studio 2010
Agile Modeling with Uml and Visual Studio 2010
SiriusCon 2015 - Breathe Life into Your Designer!
SiriusCon 2015 - Breathe Life into Your Designer!
Notacion uml
Notacion uml
Ooad with uml
Ooad with uml
The Case For Uml
The Case For Uml
01 1 kobryn-structural_and_use_case_modeling_tutorial
01 1 kobryn-structural_and_use_case_modeling_tutorial
Executable UML – UML2
Executable UML – UML2
UML Generator (NCC18)
UML Generator (NCC18)
Mehr von elliando dias
Clojurescript slides
Clojurescript slides
elliando dias
Why you should be excited about ClojureScript
Why you should be excited about ClojureScript
elliando dias
Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structures
elliando dias
Nomenclatura e peças de container
Nomenclatura e peças de container
elliando dias
Geometria Projetiva
Geometria Projetiva
elliando dias
Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agility
elliando dias
Javascript Libraries
Javascript Libraries
elliando dias
How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!
elliando dias
Ragel talk
Ragel talk
elliando dias
A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Web
elliando dias
Introdução ao Arduino
Introdução ao Arduino
elliando dias
Minicurso arduino
Minicurso arduino
elliando dias
Incanter Data Sorcery
Incanter Data Sorcery
elliando dias
Rango
Rango
elliando dias
Fab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine Design
elliando dias
The Digital Revolution: Machines that makes
The Digital Revolution: Machines that makes
elliando dias
Hadoop + Clojure
Hadoop + Clojure
elliando dias
Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.
elliando dias
Hadoop and Hive Development at Facebook
Hadoop and Hive Development at Facebook
elliando dias
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Study
elliando dias
Mehr von elliando dias
(20)
Clojurescript slides
Clojurescript slides
Why you should be excited about ClojureScript
Why you should be excited about ClojureScript
Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structures
Nomenclatura e peças de container
Nomenclatura e peças de container
Geometria Projetiva
Geometria Projetiva
Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agility
Javascript Libraries
Javascript Libraries
How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!
Ragel talk
Ragel talk
A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Web
Introdução ao Arduino
Introdução ao Arduino
Minicurso arduino
Minicurso arduino
Incanter Data Sorcery
Incanter Data Sorcery
Rango
Rango
Fab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine Design
The Digital Revolution: Machines that makes
The Digital Revolution: Machines that makes
Hadoop + Clojure
Hadoop + Clojure
Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.
Hadoop and Hive Development at Facebook
Hadoop and Hive Development at Facebook
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Study
Kürzlich hochgeladen
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
wesley chun
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Edi Saputra
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
Khem
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
sudhanshuwaghmare1
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
Safe Software
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
apidays
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
Anna Loughnan Colquhoun
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
The Digital Insurer
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
Igalia
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
Khushali Kathiriya
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
Principled Technologies
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
debabhi2
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
wesley chun
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
sammart93
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
Andrey Devyatkin
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc
🐬 The future of MySQL is Postgres 🐘
🐬 The future of MySQL is Postgres 🐘
RTylerCroy
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
lior mazor
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
Kürzlich hochgeladen
(20)
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
🐬 The future of MySQL is Postgres 🐘
🐬 The future of MySQL is Postgres 🐘
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
UML with Action Semantics
1.
UML with Action
Semantics Concepts, Application and Implications Milan Ignjatovic Software Engineering Consultant Software Engineering Trainer Zuehlke Engineering AG Copyright © by Zühlke Engineering AG www.zuehlke.com
2.
Agenda
Part 1: What is UML with Action Semantics? Part 2: Overview of Behavioural Modelling Part 3: The Action Metamodel Part 4: The Action Package Part 5: Object Action Language Part 6: Pathfinder Solutions Action Language – PAL Part 7: Live Demonstration Part 8: Implications and Summary Part 9: Q/A Copyright © by Zühlke Engineering AG www.zuehlke.com
3.
Before we start
Newton as seen by Blake Copyright © by Zühlke Engineering AG www.zuehlke.com
4.
Part 1
What is UML with Action Semantics? Copyright © by Zühlke Engineering AG www.zuehlke.com
5.
Visual intelligence
Kiczales: - „The way we visualize code doesn't do much to use all we've learned about how to use form to reflect function. This is critical, because most of the brain's cortex is visual“ Half of the cerebral cortex is devoted directly or indirectly to vision. Hoffman: Visual Intelligence - What does it mean to loose a critical aspect of visual intelligence? The story of Mr. P. Q: what about Euler? - What kind of model did he build? Language? Notation? - How did he use the model? Was he model-driven? - What if he was born blind or never gone blind at all? Copyright © by Zühlke Engineering AG www.zuehlke.com
6.
What is UML
with action semantics Action - fundamental unit of computational behaviour Action semantics are based on proven concepts from computer science Action semantics remove assumptions about specific computing environments in user models: - execution engines, PLs, implementation details - do not require specification of software components, tasking structures or forms of transfer of control - yet allows modellers to produce executable specifications Action semantics have no normative notation - OAL, PAL are concrete products and define own syntax Open the eye of reality: layman‘s dream (Jacobson) Complete specification available in UML 1.5 / Sept 2002 Terminology: xUML { executable UML Ÿ UML with Action Semantics Copyright © by Zühlke Engineering AG www.zuehlke.com
7.
How it works:
xUML? You capture and formalize knowledge - Define the behaviour of the model in sufficient detail so that it can be executed Use the model is like code To get the running system: use the model compiler to compile several executable UML models each of which captures a single cross-cutting concern: - analysis models - design model i.e. design policies e.g. design patterns - base mechanisms e.g. communication models - ... xUML models define the minimal model required to show how a domain operates in the context of problem* xUML delivers executable analysis models Copyright © by Zühlke Engineering AG www.zuehlke.com
8.
Meta-stacks
Meta-Metamodel Metamodel Model Information domain <<instantiates>> EBNF GOPRR MoF Any PL DSML UML Source Code DSM UML Model Execution Execution Execution Copyright © by Zühlke Engineering AG www.zuehlke.com
9.
xUML is the
foundation for MDA Copyright © by Zühlke Engineering AG www.zuehlke.com
10.
Part 2
Overview of Behavioural Modelling Copyright © by Zühlke Engineering AG www.zuehlke.com
11.
Behavioural elements Copyright ©
by Zühlke Engineering AG www.zuehlke.com
12.
Use Cases and
xUML Focus of activities is moving upwards, to the front of the development process i.e. to analysis Provide a foundation for modelling - Identify domain ontology and emerging phenomena Our objective here is to understand enough about the domain in order to build executable models - Sky: doTrainSimulation - Kite: LoadTrain, PositionTrain, StartSimulation - Sea: Interact (triggered) by a single actor - Mud: Complex UC hierarchies ending in technology details UCs provide a source for test cases *Beware: UCs may lead to poor abstractions if applied literally Copyright © by Zühlke Engineering AG www.zuehlke.com
13.
Part 3
The Action Metamodel Copyright © by Zühlke Engineering AG www.zuehlke.com
14.
Actions: pins
An action takes a set of inputs and converts them into a set of outputs Input pins - hold values to be consumed by the action Output pins - hold values generated by the action Pins are type conform - The type of the output pin is the same as or is a descendant of the type of the input pin Fan out of output pins is allowed No fan in of input pins is possible Copyright © by Zühlke Engineering AG www.zuehlke.com
15.
Actions: data flow,
control flow A data flow sequences execution of two actions by carrying data between them i.e. provides implicit sequencing - A data flow has source and destination pins - Output pins of one action are input pins of some other action A control flow defines a sequencing dependency between two actions i.e. provides explicit sequencing - The successor action of the flow may not execute until the predecessor action has completed execution The specification maximises action concurrency - it treats all actions as executing concurrently unless explicitly sequenced by a flow of data or control Copyright © by Zühlke Engineering AG www.zuehlke.com
16.
Primitive actions, procedures
Primitive actions do not contain any subactions i.e. nested actions Procedure is an action container: a set of actions within a model e.g. body of a method Procedure provides a context for action execution Procedure takes a single object as argument and produces a single reply object as result Multiple arguments or results possible i.e. represented as object attributes May be attached to methods, state machines Copyright © by Zühlke Engineering AG www.zuehlke.com
17.
Action foundation model Copyright
© by Zühlke Engineering AG www.zuehlke.com
18.
Life cycle for
action execution Copyright © by Zühlke Engineering AG www.zuehlke.com
19.
Life cycle for
procedure execution Copyright © by Zühlke Engineering AG www.zuehlke.com
20.
Part 4
The Action Package Copyright © by Zühlke Engineering AG www.zuehlke.com
21.
UML: Action package Copyright
© by Zühlke Engineering AG www.zuehlke.com
22.
UML: Kinds of
actions New Data Types may be defined using metamodel Data Types e.g. UnlimitedInteger - defines a data type whose range is the nonnegative integers augmented by the special value “unlimited”. - used for the upper bound of multiplicities - discussion of metamodel Data Types is beyond scope Read and write actions - variables, attributes, links Composite actions - group, conditional and loop actions Computation actions - Math is N/A, left to the implementation to define as needed - ApplyFunctionAction, CodeAction, MarshalAction... Copyright © by Zühlke Engineering AG www.zuehlke.com
23.
UML: More actions
Collection actions: contain a subaction, an embedded action that is executed once for each element in the input collection: - Iterate: applies a subaction to each of the elements in a collection repeatedly within a loop - Filter: selects a subset of the elements in a collection into a new collection - Map: action applies a subaction in parallel to each of the elements in a collection Messaging - Actions for synchronous, asynchronous invocation Jumps - break, continue, exceptions Surface languages may define their own actions Copyright © by Zühlke Engineering AG www.zuehlke.com
24.
UML: Object Action
Metamodel Copyright © by Zühlke Engineering AG www.zuehlke.com
25.
Part 5
Object Action Language, Project Technology Copyright © by Zühlke Engineering AG www.zuehlke.com
26.
OAL: Object and
attribute actions Create object - create object instance <objref> of <class> - ReclassifyObjectAction Write attribute - <objref>.<attribute name> = <expression> Read attribute - use of ... <objref>.<attribute name> in expressions Delete object - delete object instance <objref> Copyright © by Zühlke Engineering AG www.zuehlke.com
27.
OAL: Link actions
Links are maintained via the relate and unrelate constructs Create link - // Create and relate a new b to the given a. create object instance b of B; relate b to a across R1; Delete link - unrelate <source instance handle> from <destination instance handle> across <relationship specification>; - unrelate <source instance handle> from <destination instance handle> across <relationship specification> using <associative instance handle>; Copyright © by Zühlke Engineering AG www.zuehlke.com
28.
OAL: Selection expressions
Class extent - select many <objrefset> from instances of <class>; Qualification i.e. a single object - select any <objrefset> from instances of <class> where <where clause>; • select any dog related by owner->D[R2] where ( selected.name == quot;Fidoquot; ); Qualification i.e. many objects - select many <objrefset> from instances of <class> where <where clause>; • select many dogs related by owner->D[R2] where selected.color == quot;blackquot;; Copyright © by Zühlke Engineering AG www.zuehlke.com
29.
OAL: Synchronising Objects
and Timing There is no global synchronisation or global time concept in executable UML Time is local to each concurrently executing object Einstein´s relativistic view of time Model Compiler issues: - The model compiler is required to preserve the explicit synchronisation built into your executable models i.e. deliver each and every signal originating from producers and directed towards consumers Do not depend on the order of received signals, order is non-deterministic Copyright © by Zühlke Engineering AG www.zuehlke.com
30.
OAL: Create events
and generate signals generate <signal> to <instance handle> - select one b1 related by self->L_BU[R1]; generate L_BU1:ev_toggle to b1; - create event instance toggle of L_SW1:ev_toggle() to s1; - my_timer=TIM::timer_start_recurring(microseconds:500000, event_inst:toggle); Beware: an object can be in a single state at a time: - UML transitions must run to completion - make them really atomic & instant - there is no way to limit action activity within transition processing - It is up to you and your know-how Copyright © by Zühlke Engineering AG www.zuehlke.com
31.
Part 6
Pathfinder Solutions Action Language - PAL Copyright © by Zühlke Engineering AG www.zuehlke.com
32.
PAL: data types
and basics Boolean, Character, String, Real, Integer, Constant Declaration Local Variable Declaration Assignment action GenericValue: stores a String, Real, Handle, or Integer (similar to C union) Handle: generic reference (similar to void* in C) Group<base_type>, GroupIter<base_type>, Ref<class_name>, UserDefined enumeration, UserDefined typedef, ServiceHandle: allows a run-time dynamic binding mapping, a kind of DII mechanism Copyright © by Zühlke Engineering AG www.zuehlke.com
33.
PAL: Conditional, Iteration,
Jumps Conditional: - IF (Boolean Expression) { StatementBlock } [ ELSE IF (Boolean Expression) {StatementBlock} ] [ ELSE { StatementBlock } ] Iteration: - FOREACH cursor_variable = CLASS class name [ WHERE (Expression) ] { StatementBlock } - FOREACH cursor_variable = Navigation [ WHERE (Expression) ] { StatementBlock } - WHILE (Expression) { StatementBlock } Jumps: - BREAK, CONTINUE, RETURN [ Expression ] Copyright © by Zühlke Engineering AG www.zuehlke.com
34.
PAL: Creation, Deletion,
Find, Linking Object creation, deletion - CREATE class_name [ ( attribute_name = Expression, … ) ] [ IN initial_state ] - DELETE instance_ref Finding objects: - FIND [ { FIRST | LAST } ] CLASS class_name [ WHERE (Expression) ] Linking: - LINK instance1_ref A<number> instance2_ref [ASSOCIATIVE assoc_ref ] - UNLINK instance1_ref Anumber instance2_ref Copyright © by Zühlke Engineering AG www.zuehlke.com
35.
PAL: Navigation, Event
generation SubSuper Navigation – “downcast” to get from a supertype to a specific subtype. Upcasting is performed automatically. A subtype can be used anywhere a supertype is expected. - supertype_ref ->Srelationship_number->subclass_name GENERATE event_name [ AFTER (delay) ] [ TO (destination_ref) ] Copyright © by Zühlke Engineering AG www.zuehlke.com
36.
A process for
executable UML: MBSE Copyright © by Zühlke Engineering AG www.zuehlke.com
37.
Part 7
Demo: Lightland Example Copyright © by Zühlke Engineering AG www.zuehlke.com
38.
Part 8
Implications and summary Copyright © by Zühlke Engineering AG www.zuehlke.com
39.
Implications
Separation of model engineering from platform specific software engineering Creativity is focused on: - Producing domain models - Translating models to code Complete and executable models are produced by domain experts in form of instrumented software Design i.e. platform specific models are delivered by software engineering teams Less hindrance with implementation means more time devoted to analysis for domain experts Copyright © by Zühlke Engineering AG www.zuehlke.com
40.
Summary
A good attempt at solving the software crisis - perhaps the most far reaching one, until now Results in more powerful models and our ability to conquer more complexity than ever before. Brings a new sign of ripeness to the discipline of software engineering Be prepared for tomorrow‘s challenges Copyright © by Zühlke Engineering AG www.zuehlke.com
41.
References
UML 1.5 with Action Semantics, Sept 2002 Model Driven Architecture, OMG documentation set Executable UML, Mellor/Balcer, Project Technology Pathfinder Solutions, PAL documentation set Kennedy Carter, iUML documentation set Convergent Architecture, Richard Hubert Leon Starr, Executable UML: How to Build Class Models MDA Course, Jim Arlow, Zuehlke Engineering AG Copyright © by Zühlke Engineering AG www.zuehlke.com
42.
Part 9
Q/A Copyright © by Zühlke Engineering AG www.zuehlke.com
Jetzt herunterladen