SlideShare ist ein Scribd-Unternehmen logo
1 von 42
Downloaden Sie, um offline zu lesen
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
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
Before we start




                                       Newton as seen by Blake




Copyright © by Zühlke Engineering AG
www.zuehlke.com
Part 1



                                       What is UML with Action Semantics?




Copyright © by Zühlke Engineering AG
www.zuehlke.com
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
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
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
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
xUML is the foundation for MDA




Copyright © by Zühlke Engineering AG
www.zuehlke.com
Part 2



                                       Overview of Behavioural Modelling




Copyright © by Zühlke Engineering AG
www.zuehlke.com
Behavioural elements




Copyright © by Zühlke Engineering AG
www.zuehlke.com
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
Part 3



                                       The Action Metamodel




Copyright © by Zühlke Engineering AG
www.zuehlke.com
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
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
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
Action foundation model




Copyright © by Zühlke Engineering AG
www.zuehlke.com
Life cycle for action execution




Copyright © by Zühlke Engineering AG
www.zuehlke.com
Life cycle for procedure execution




Copyright © by Zühlke Engineering AG
www.zuehlke.com
Part 4



                                       The Action Package




Copyright © by Zühlke Engineering AG
www.zuehlke.com
UML: Action package




Copyright © by Zühlke Engineering AG
www.zuehlke.com
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
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
UML: Object Action Metamodel




Copyright © by Zühlke Engineering AG
www.zuehlke.com
Part 5



                                       Object Action Language, Project Technology




Copyright © by Zühlke Engineering AG
www.zuehlke.com
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
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
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
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
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
Part 6



                                       Pathfinder Solutions Action Language - PAL




Copyright © by Zühlke Engineering AG
www.zuehlke.com
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
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
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
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
A process for executable UML: MBSE




Copyright © by Zühlke Engineering AG
www.zuehlke.com
Part 7



                                       Demo: Lightland Example




Copyright © by Zühlke Engineering AG
www.zuehlke.com
Part 8



                                       Implications and summary




Copyright © by Zühlke Engineering AG
www.zuehlke.com
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
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
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
Part 9



                                       Q/A




Copyright © by Zühlke Engineering AG
www.zuehlke.com

Weitere ähnliche Inhalte

Ähnlich wie UML with Action Semantics

UML: Once More with Meaning
UML: Once More with MeaningUML: Once More with Meaning
UML: Once More with MeaningEd Seidewitz
 
Smalltalk in Large-scale Enterprise Architectures
Smalltalk in Large-scale Enterprise ArchitecturesSmalltalk in Large-scale Enterprise Architectures
Smalltalk in Large-scale Enterprise ArchitecturesESUG
 
Eclipse Summit 2009 - Aspect Oriented Modeling
Eclipse Summit 2009 - Aspect Oriented ModelingEclipse Summit 2009 - Aspect Oriented Modeling
Eclipse Summit 2009 - Aspect Oriented ModelingMarc Dutoo
 
Virtual EMF - Standard talk at EclipseCon Europe 2011
Virtual EMF - Standard talk at EclipseCon Europe 2011Virtual EMF - Standard talk at EclipseCon Europe 2011
Virtual EMF - Standard talk at EclipseCon Europe 2011Hugo Bruneliere
 
01 concepts of_object-orientation (1)
01 concepts of_object-orientation (1)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'Applying Aspect-Extended UML Modelling to 'e'
Applying Aspect-Extended UML Modelling to 'e'DVClub
 
Darren galpin q4_2008_bristol
Darren galpin q4_2008_bristolDarren galpin q4_2008_bristol
Darren galpin q4_2008_bristolObsidian Software
 
Modeling With Eclipse @SoftShake 2011
Modeling With Eclipse @SoftShake 2011Modeling With Eclipse @SoftShake 2011
Modeling With Eclipse @SoftShake 2011Mickael Istria
 
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
 
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
 
Agile Modeling with Uml and Visual Studio 2010
Agile Modeling with Uml and Visual Studio 2010Agile Modeling with Uml and Visual Studio 2010
Agile Modeling with Uml and Visual Studio 2010Ogren Paunović
 
SiriusCon 2015 - Breathe Life into Your Designer!
SiriusCon 2015 - Breathe Life into Your Designer!SiriusCon 2015 - Breathe Life into Your Designer!
SiriusCon 2015 - Breathe Life into Your Designer!melbats
 
The Case For Uml
The Case For UmlThe Case For Uml
The Case For Umlpomlover
 
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
 
Executable UML – UML2
Executable UML – UML2Executable UML – UML2
Executable UML – UML2elliando dias
 
UML Generator (NCC18)
UML Generator (NCC18)UML Generator (NCC18)
UML Generator (NCC18)IT Industry
 

Ähnlich wie UML with Action Semantics (20)

Eclipse For Dummies
Eclipse For DummiesEclipse For Dummies
Eclipse For Dummies
 
UML: Once More with Meaning
UML: Once More with MeaningUML: Once More with Meaning
UML: Once More with Meaning
 
Smalltalk in Large-scale Enterprise Architectures
Smalltalk in Large-scale Enterprise ArchitecturesSmalltalk in Large-scale Enterprise Architectures
Smalltalk in Large-scale Enterprise Architectures
 
Eclipse Summit 2009 - Aspect Oriented Modeling
Eclipse Summit 2009 - Aspect Oriented ModelingEclipse 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 2011Virtual 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)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'Applying Aspect-Extended UML Modelling to 'e'
Applying Aspect-Extended UML Modelling to 'e'
 
Darren galpin q4_2008_bristol
Darren galpin q4_2008_bristolDarren galpin q4_2008_bristol
Darren galpin q4_2008_bristol
 
Modeling With Eclipse @SoftShake 2011
Modeling With Eclipse @SoftShake 2011Modeling 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/2015UML 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 researchMDD and modeling tools research
MDD and modeling tools research
 
xUMLFinalPresentation.ppt
xUMLFinalPresentation.pptxUMLFinalPresentation.ppt
xUMLFinalPresentation.ppt
 
Agile Modeling with Uml and Visual Studio 2010
Agile Modeling with Uml and Visual Studio 2010Agile 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!SiriusCon 2015 - Breathe Life into Your Designer!
SiriusCon 2015 - Breathe Life into Your Designer!
 
Notacion uml
Notacion umlNotacion uml
Notacion uml
 
Ooad with uml
Ooad with umlOoad with uml
Ooad with uml
 
The Case For Uml
The Case For UmlThe Case For Uml
The Case For Uml
 
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
 
Executable UML – UML2
Executable UML – UML2Executable UML – UML2
Executable UML – UML2
 
UML Generator (NCC18)
UML Generator (NCC18)UML Generator (NCC18)
UML Generator (NCC18)
 

Mehr von elliando dias

Clojurescript slides
Clojurescript slidesClojurescript slides
Clojurescript slideselliando dias
 
Why you should be excited about ClojureScript
Why you should be excited about ClojureScriptWhy you should be excited about ClojureScript
Why you should be excited about ClojureScriptelliando dias
 
Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data StructuresFunctional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structureselliando dias
 
Nomenclatura e peças de container
Nomenclatura  e peças de containerNomenclatura  e peças de container
Nomenclatura e peças de containerelliando dias
 
Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better AgilityPolyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agilityelliando dias
 
Javascript Libraries
Javascript LibrariesJavascript Libraries
Javascript Librarieselliando dias
 
How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!elliando dias
 
A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the WebA Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Webelliando dias
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduinoelliando dias
 
Incanter Data Sorcery
Incanter Data SorceryIncanter Data Sorcery
Incanter Data Sorceryelliando dias
 
Fab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine DesignFab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine Designelliando dias
 
The Digital Revolution: Machines that makes
The Digital Revolution: Machines that makesThe Digital Revolution: Machines that makes
The Digital Revolution: Machines that makeselliando dias
 
Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.elliando dias
 
Hadoop and Hive Development at Facebook
Hadoop and Hive Development at FacebookHadoop and Hive Development at Facebook
Hadoop and Hive Development at Facebookelliando dias
 
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case StudyMulti-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Studyelliando dias
 

Mehr von elliando dias (20)

Clojurescript slides
Clojurescript slidesClojurescript slides
Clojurescript slides
 
Why you should be excited about ClojureScript
Why you should be excited about ClojureScriptWhy you should be excited about ClojureScript
Why you should be excited about ClojureScript
 
Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data StructuresFunctional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structures
 
Nomenclatura e peças de container
Nomenclatura  e peças de containerNomenclatura  e peças de container
Nomenclatura e peças de container
 
Geometria Projetiva
Geometria ProjetivaGeometria Projetiva
Geometria Projetiva
 
Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better AgilityPolyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agility
 
Javascript Libraries
Javascript LibrariesJavascript 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!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 talkRagel talk
Ragel talk
 
A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the WebA Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Web
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduino
 
Minicurso arduino
Minicurso arduinoMinicurso arduino
Minicurso arduino
 
Incanter Data Sorcery
Incanter Data SorceryIncanter Data Sorcery
Incanter Data Sorcery
 
Rango
RangoRango
Rango
 
Fab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine DesignFab.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 makesThe Digital Revolution: Machines that makes
The Digital Revolution: Machines that makes
 
Hadoop + Clojure
Hadoop + ClojureHadoop + Clojure
Hadoop + Clojure
 
Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.
 
Hadoop and Hive Development at Facebook
Hadoop and Hive Development at FacebookHadoop 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 StudyMulti-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)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 SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe 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 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 RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?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 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 

Kürzlich hochgeladen (20)

Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)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 SavingRepurposing 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 CVReal 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.pdfBoost 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 AutomationFrom 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...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 RobisonData 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 2024Bajaj 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?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 : UncertaintyArtificial 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 productivityBoost 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 DevelopmentsTrustArc 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 ProcessorsExploring 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 ScriptAutomating 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 TakeoffStrategize 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 TerraformAWS 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 DiscoveryTrustArc 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   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI 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 businessWhy 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