SlideShare a Scribd company logo
1 of 11
Download to read offline
An AsmL Semantics for
 Dynamic Structures in UML-RT

Stefan Leue, Alin Stef˘nescu, and Wei Wei
                  ¸ a

       Software Engineering Group
         University of Konstanz

             3–October–2006
Motivation


   → Dynamic reconfigurations are inherent to many applications.
   → Capturing them at design time is not easy.

     • the UML-RT profile supports dynamic structures:
         – runtime creation of capsules    optional capsules
         – multiple containment     plugin capsules
         – dynamic connections     unwired ports
     • a precise semantics of such concepts is needed for the formal
       analysis of UML-RT models


   We use the AsmL specification framework to give an executable
   semantics to dynamic structures in UML-RT.

                                                                       2
Abstract State Machines (ASM) and AsmL


  Abstract State Machines (ASM) used for the semantics
    • ASMs are transitions systems with
       → states described by sets with relations and functions
       → transitions described by update rules
    • AsmL is a specific implementation for ASMs
       → object-oriented concepts, strong type system, tool support


  An executable AsmL specification for UML-RT models:
    • semantics of UML-RT specified in AsmL
    • translation of a given UML-RT model into AsmL
    • analysis of the AsmL specification using the SpecExplorer tool
      (simulation, model-checking, testing)

                                                                      3
UML-RT and Rational Rose Real-Time

  ROOM (1994) & UML (1997)    UML-RT (1998)
                        supported by Rational Rose Real-Time




  In UML 2.0
  Structured Classes that may have ports and internal structure
  (depicted by Composite Structures diagrams)
                                                                  4
Ports and connectors

   class Port                  class ConnectorEnd
   name as String              capsuleRole as CapsuleRole or Null
   protocol as Protocol        port as Port
   isRelay as Boolean
   isWired as Boolean          class Connector
   isPublic as Boolean         end1 as ConnectorEnd
   peerPort as Port or Null    end2 as ConnectorEnd

   Only ports with compatible protocols can be connected.

   Rose RealTime supports dynamic connections of unwired ports.


   In UML 2.0
   Ports and connectors were newly introduced in UML 2.0, but with
   a slightly more general semantics than in UML-RT.
                                                                     5
Capsules




   class CapsuleClass                      class CapsuleRole                 class CapsuleInstance

   name as String                          name as String                    name as String
   super as CapsuleClass                   capsuleClass as CapsuleClass      capsuleClass as CapsuleClass
   subcapsuleRoles as Set of CapsuleRole   parent as CapsuleRole or Null     subcapsules as Set of CapsuleRole
   ports as Set of Port                    kind as CapsuleRoleKind           ports as Set of Port
   connectors as Set of Connector          isSubstitutable as Boolean        importedIn as Set of CapsuleRole
   behaviour as StateMachine or Null       inst as CapsuleInstance or Null   state as State


   with CapsuleRoleKind = {fixed capsule, optional capsule, plugin capsule}


                                                                                                                 6
Dynamic structures in UML-RT




    • fixed capsule role – incarnated at initialization time of parent
       → In UML 2.0: composition (isComposite=true)
           Graphically: nested box with solid outline
    • optional capsule role – incarnated/destroyed at runtime
       → In UML 2.0: composition with variable multiplicity for parts
    • plugin capsule role – filled in at runtime
       → In UML 2.0: aggregation (isComposite=false)
         Graphically: nested box with dashed outline                    7
Capsule incarnation




   incarnate(capsuleRole as CapsuleRole)
   require capsuleRole.inst = null
   instance := new CapsuleInstance(...)
   createSubcapsuleRoles(instance)
   createPorts(instance)
   incarnateAllFixedRoles(instance)
   connectPorts(instance)
   capsuleRole.inst = instance
   if capsuleRole.kind = optional connectPorts(capsuleRole.parent,capsuleRole)

   In Rose RealTime, optional capsules can be incarnated on different
                                                                                 8
   execution threads.
Capsule importation




   import(instance as CapsuleInstance, pluginRole as CapsuleRole)
   require pluginRole.instance = null
   require instance <> null
   require compatibleCapsuleRoles(pluginRole, instance.capsuleClass)
   connectPorts(pluginRole.parent, pluginRole, instance)
   pluginRole.inst := instance
   add pluginRole to instance.importedIn

   Constraint: A port of the imported capsule instance cannot be
   simultaneously connected in two different plugin roles.
                                                                       9
Capsule deportation and destruction




     • Basically, ’undo’ of importation and incarnation

     • Deportation of capsule instance CI from capsule role CR:
        → remove all connectors to CI from CR.parent
        → remove CR from the set CI.importedIn

     • Destruction of a capsule role CR:
        → destroy connections to and in CR
        → recursively destroy all owned fixed and optional capsules roles
        → Semantic variation point: Destroy or keep the owned
           subcapsule instances that are imported in another capsule role
                                                                            10
Next steps



     • integrate the semantics of state machines and communication
       services (as supported by Rational Rose Realtime tool)
     • analysis of generated AsmL code using SpecExplorer
       (simulation, testing, model checking)
     • semantics for the UML 2.0 composite structures



                                               Thank you for attention!




                                                                          11

More Related Content

Viewers also liked

SiriusCon2016 - ASML's MDE Going Sirius
SiriusCon2016 - ASML's MDE Going SiriusSiriusCon2016 - ASML's MDE Going Sirius
SiriusCon2016 - ASML's MDE Going SiriusObeo
 
The Street Analysis- ASML
The Street Analysis- ASMLThe Street Analysis- ASML
The Street Analysis- ASMLCarson Fears
 
SiriusCon2016 - Modelling Spacecraft On-board Software with Sirius
SiriusCon2016 - Modelling Spacecraft On-board Software with SiriusSiriusCon2016 - Modelling Spacecraft On-board Software with Sirius
SiriusCon2016 - Modelling Spacecraft On-board Software with SiriusObeo
 
SiriusCon2016 - Une plateforme de modelisation support au PLM de l'ingenierie...
SiriusCon2016 - Une plateforme de modelisation support au PLM de l'ingenierie...SiriusCon2016 - Une plateforme de modelisation support au PLM de l'ingenierie...
SiriusCon2016 - Une plateforme de modelisation support au PLM de l'ingenierie...Obeo
 
the brain ,parts and functions
 the brain ,parts and functions the brain ,parts and functions
the brain ,parts and functionsEduc_Louie Tanaka
 
Production planning & control & Forecasting
Production planning & control & ForecastingProduction planning & control & Forecasting
Production planning & control & ForecastingJenıstön Delımä
 
The human brain presentation
The human brain presentationThe human brain presentation
The human brain presentationSilvia Borba
 
Production planning & control
Production planning & controlProduction planning & control
Production planning & controlamirthakarthi
 

Viewers also liked (15)

SiriusCon2016 - ASML's MDE Going Sirius
SiriusCon2016 - ASML's MDE Going SiriusSiriusCon2016 - ASML's MDE Going Sirius
SiriusCon2016 - ASML's MDE Going Sirius
 
The Street Analysis- ASML
The Street Analysis- ASMLThe Street Analysis- ASML
The Street Analysis- ASML
 
SiriusCon2016 - Modelling Spacecraft On-board Software with Sirius
SiriusCon2016 - Modelling Spacecraft On-board Software with SiriusSiriusCon2016 - Modelling Spacecraft On-board Software with Sirius
SiriusCon2016 - Modelling Spacecraft On-board Software with Sirius
 
SiriusCon2016 - Une plateforme de modelisation support au PLM de l'ingenierie...
SiriusCon2016 - Une plateforme de modelisation support au PLM de l'ingenierie...SiriusCon2016 - Une plateforme de modelisation support au PLM de l'ingenierie...
SiriusCon2016 - Une plateforme de modelisation support au PLM de l'ingenierie...
 
Digital in 2017: Central Asia
Digital in 2017: Central AsiaDigital in 2017: Central Asia
Digital in 2017: Central Asia
 
the brain ,parts and functions
 the brain ,parts and functions the brain ,parts and functions
the brain ,parts and functions
 
Production planning & control & Forecasting
Production planning & control & ForecastingProduction planning & control & Forecasting
Production planning & control & Forecasting
 
Digital in 2017: Western Asia
Digital in 2017: Western AsiaDigital in 2017: Western Asia
Digital in 2017: Western Asia
 
The human brain presentation
The human brain presentationThe human brain presentation
The human brain presentation
 
Digital in 2017: Eastern Asia
Digital in 2017: Eastern AsiaDigital in 2017: Eastern Asia
Digital in 2017: Eastern Asia
 
Production planning & control
Production planning & controlProduction planning & control
Production planning & control
 
2016 Digital Yearbook
2016 Digital Yearbook2016 Digital Yearbook
2016 Digital Yearbook
 
SAP Production Planning
SAP Production PlanningSAP Production Planning
SAP Production Planning
 
2017 Digital Yearbook
2017 Digital Yearbook2017 Digital Yearbook
2017 Digital Yearbook
 
Digital in 2017 Global Overview
Digital in 2017 Global OverviewDigital in 2017 Global Overview
Digital in 2017 Global Overview
 

Similar to Slides for a talk on UML Semantics in Genoa in 2006

Scala Days San Francisco
Scala Days San FranciscoScala Days San Francisco
Scala Days San FranciscoMartin Odersky
 
Oracle plsql and d2 k interview question1
Oracle plsql and d2 k interview question1Oracle plsql and d2 k interview question1
Oracle plsql and d2 k interview question1Arunkumar Gurav
 
Modular Mathematical Modelling of Biological Systems
Modular Mathematical Modelling of Biological SystemsModular Mathematical Modelling of Biological Systems
Modular Mathematical Modelling of Biological SystemsDaniele Gianni
 
Enriching EMF Models with Scala (quick overview)
Enriching EMF Models with Scala (quick overview)Enriching EMF Models with Scala (quick overview)
Enriching EMF Models with Scala (quick overview)Filip Krikava
 
Modelling and Simulation Concepts
Modelling and Simulation ConceptsModelling and Simulation Concepts
Modelling and Simulation Conceptsspicepark
 
Basics of kotlin ASJ
Basics of kotlin ASJBasics of kotlin ASJ
Basics of kotlin ASJDSCBVRITH
 
9054799 dzone-refcard267-kotlin
9054799 dzone-refcard267-kotlin9054799 dzone-refcard267-kotlin
9054799 dzone-refcard267-kotlinZoran Stanimirovic
 
Kotlin- Basic to Advance
Kotlin- Basic to Advance Kotlin- Basic to Advance
Kotlin- Basic to Advance Coder Tech
 
Oracle Objects And Transactions
Oracle Objects And TransactionsOracle Objects And Transactions
Oracle Objects And Transactionstepsum
 
Scala - The Simple Parts, SFScala presentation
Scala - The Simple Parts, SFScala presentationScala - The Simple Parts, SFScala presentation
Scala - The Simple Parts, SFScala presentationMartin Odersky
 
Code Generation 2014 - ALF, the Standard Programming Language for UML
Code Generation 2014  - ALF, the Standard Programming Language for UMLCode Generation 2014  - ALF, the Standard Programming Language for UML
Code Generation 2014 - ALF, the Standard Programming Language for UMLJürgen Mutschall
 
What's new in Scala and the Scala IDE for Eclipse for 2.8.0
What's new in Scala and the Scala IDE for Eclipse for 2.8.0What's new in Scala and the Scala IDE for Eclipse for 2.8.0
What's new in Scala and the Scala IDE for Eclipse for 2.8.0Miles Sabin
 
plsql tutorialhub....
plsql tutorialhub....plsql tutorialhub....
plsql tutorialhub....Abhiram Vijay
 
Martin Odersky - Evolution of Scala
Martin Odersky - Evolution of ScalaMartin Odersky - Evolution of Scala
Martin Odersky - Evolution of ScalaScala Italy
 
Drilling the Async Library
Drilling the Async LibraryDrilling the Async Library
Drilling the Async LibraryKnoldus Inc.
 
Exploring Kotlin language basics for Android App development
Exploring Kotlin language basics for Android App developmentExploring Kotlin language basics for Android App development
Exploring Kotlin language basics for Android App developmentJayaprakash R
 
Python coroutine
Python coroutinePython coroutine
Python coroutine경섭 심
 

Similar to Slides for a talk on UML Semantics in Genoa in 2006 (20)

Scala Days San Francisco
Scala Days San FranciscoScala Days San Francisco
Scala Days San Francisco
 
Oracle plsql and d2 k interview question1
Oracle plsql and d2 k interview question1Oracle plsql and d2 k interview question1
Oracle plsql and d2 k interview question1
 
Aligning OCL and UML
Aligning OCL and UMLAligning OCL and UML
Aligning OCL and UML
 
Modular Mathematical Modelling of Biological Systems
Modular Mathematical Modelling of Biological SystemsModular Mathematical Modelling of Biological Systems
Modular Mathematical Modelling of Biological Systems
 
Enriching EMF Models with Scala (quick overview)
Enriching EMF Models with Scala (quick overview)Enriching EMF Models with Scala (quick overview)
Enriching EMF Models with Scala (quick overview)
 
Modelling and Simulation Concepts
Modelling and Simulation ConceptsModelling and Simulation Concepts
Modelling and Simulation Concepts
 
Basics of kotlin ASJ
Basics of kotlin ASJBasics of kotlin ASJ
Basics of kotlin ASJ
 
Kubernetes
KubernetesKubernetes
Kubernetes
 
9054799 dzone-refcard267-kotlin
9054799 dzone-refcard267-kotlin9054799 dzone-refcard267-kotlin
9054799 dzone-refcard267-kotlin
 
Kotlin- Basic to Advance
Kotlin- Basic to Advance Kotlin- Basic to Advance
Kotlin- Basic to Advance
 
Oracle Objects And Transactions
Oracle Objects And TransactionsOracle Objects And Transactions
Oracle Objects And Transactions
 
Scala - The Simple Parts, SFScala presentation
Scala - The Simple Parts, SFScala presentationScala - The Simple Parts, SFScala presentation
Scala - The Simple Parts, SFScala presentation
 
Kotlin in action
Kotlin in actionKotlin in action
Kotlin in action
 
Code Generation 2014 - ALF, the Standard Programming Language for UML
Code Generation 2014  - ALF, the Standard Programming Language for UMLCode Generation 2014  - ALF, the Standard Programming Language for UML
Code Generation 2014 - ALF, the Standard Programming Language for UML
 
What's new in Scala and the Scala IDE for Eclipse for 2.8.0
What's new in Scala and the Scala IDE for Eclipse for 2.8.0What's new in Scala and the Scala IDE for Eclipse for 2.8.0
What's new in Scala and the Scala IDE for Eclipse for 2.8.0
 
plsql tutorialhub....
plsql tutorialhub....plsql tutorialhub....
plsql tutorialhub....
 
Martin Odersky - Evolution of Scala
Martin Odersky - Evolution of ScalaMartin Odersky - Evolution of Scala
Martin Odersky - Evolution of Scala
 
Drilling the Async Library
Drilling the Async LibraryDrilling the Async Library
Drilling the Async Library
 
Exploring Kotlin language basics for Android App development
Exploring Kotlin language basics for Android App developmentExploring Kotlin language basics for Android App development
Exploring Kotlin language basics for Android App development
 
Python coroutine
Python coroutinePython coroutine
Python coroutine
 

Recently uploaded

ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...
ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...
ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...JojoEDelaCruz
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Celine George
 
Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Seán Kennedy
 
Global Lehigh Strategic Initiatives (without descriptions)
Global Lehigh Strategic Initiatives (without descriptions)Global Lehigh Strategic Initiatives (without descriptions)
Global Lehigh Strategic Initiatives (without descriptions)cama23
 
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdfVirtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdfErwinPantujan2
 
How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17Celine George
 
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17Celine George
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatYousafMalik24
 
Transaction Management in Database Management System
Transaction Management in Database Management SystemTransaction Management in Database Management System
Transaction Management in Database Management SystemChristalin Nelson
 
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSGRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSJoshuaGantuangco2
 
Concurrency Control in Database Management system
Concurrency Control in Database Management systemConcurrency Control in Database Management system
Concurrency Control in Database Management systemChristalin Nelson
 
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxINTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxHumphrey A Beña
 
Activity 2-unit 2-update 2024. English translation
Activity 2-unit 2-update 2024. English translationActivity 2-unit 2-update 2024. English translation
Activity 2-unit 2-update 2024. English translationRosabel UA
 
ROLES IN A STAGE PRODUCTION in arts.pptx
ROLES IN A STAGE PRODUCTION in arts.pptxROLES IN A STAGE PRODUCTION in arts.pptx
ROLES IN A STAGE PRODUCTION in arts.pptxVanesaIglesias10
 
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITYISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITYKayeClaireEstoconing
 
Keynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designKeynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designMIPLM
 
Food processing presentation for bsc agriculture hons
Food processing presentation for bsc agriculture honsFood processing presentation for bsc agriculture hons
Food processing presentation for bsc agriculture honsManeerUddin
 

Recently uploaded (20)

ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...
ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...
ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17
 
Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...
 
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptxYOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
 
Global Lehigh Strategic Initiatives (without descriptions)
Global Lehigh Strategic Initiatives (without descriptions)Global Lehigh Strategic Initiatives (without descriptions)
Global Lehigh Strategic Initiatives (without descriptions)
 
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdfVirtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
 
How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17
 
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice great
 
Transaction Management in Database Management System
Transaction Management in Database Management SystemTransaction Management in Database Management System
Transaction Management in Database Management System
 
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSGRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
 
Concurrency Control in Database Management system
Concurrency Control in Database Management systemConcurrency Control in Database Management system
Concurrency Control in Database Management system
 
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptxINTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
INTRODUCTION TO CATHOLIC CHRISTOLOGY.pptx
 
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptxFINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
 
Activity 2-unit 2-update 2024. English translation
Activity 2-unit 2-update 2024. English translationActivity 2-unit 2-update 2024. English translation
Activity 2-unit 2-update 2024. English translation
 
ROLES IN A STAGE PRODUCTION in arts.pptx
ROLES IN A STAGE PRODUCTION in arts.pptxROLES IN A STAGE PRODUCTION in arts.pptx
ROLES IN A STAGE PRODUCTION in arts.pptx
 
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITYISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
 
Keynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designKeynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-design
 
Raw materials used in Herbal Cosmetics.pptx
Raw materials used in Herbal Cosmetics.pptxRaw materials used in Herbal Cosmetics.pptx
Raw materials used in Herbal Cosmetics.pptx
 
Food processing presentation for bsc agriculture hons
Food processing presentation for bsc agriculture honsFood processing presentation for bsc agriculture hons
Food processing presentation for bsc agriculture hons
 

Slides for a talk on UML Semantics in Genoa in 2006

  • 1. An AsmL Semantics for Dynamic Structures in UML-RT Stefan Leue, Alin Stef˘nescu, and Wei Wei ¸ a Software Engineering Group University of Konstanz 3–October–2006
  • 2. Motivation → Dynamic reconfigurations are inherent to many applications. → Capturing them at design time is not easy. • the UML-RT profile supports dynamic structures: – runtime creation of capsules optional capsules – multiple containment plugin capsules – dynamic connections unwired ports • a precise semantics of such concepts is needed for the formal analysis of UML-RT models We use the AsmL specification framework to give an executable semantics to dynamic structures in UML-RT. 2
  • 3. Abstract State Machines (ASM) and AsmL Abstract State Machines (ASM) used for the semantics • ASMs are transitions systems with → states described by sets with relations and functions → transitions described by update rules • AsmL is a specific implementation for ASMs → object-oriented concepts, strong type system, tool support An executable AsmL specification for UML-RT models: • semantics of UML-RT specified in AsmL • translation of a given UML-RT model into AsmL • analysis of the AsmL specification using the SpecExplorer tool (simulation, model-checking, testing) 3
  • 4. UML-RT and Rational Rose Real-Time ROOM (1994) & UML (1997) UML-RT (1998) supported by Rational Rose Real-Time In UML 2.0 Structured Classes that may have ports and internal structure (depicted by Composite Structures diagrams) 4
  • 5. Ports and connectors class Port class ConnectorEnd name as String capsuleRole as CapsuleRole or Null protocol as Protocol port as Port isRelay as Boolean isWired as Boolean class Connector isPublic as Boolean end1 as ConnectorEnd peerPort as Port or Null end2 as ConnectorEnd Only ports with compatible protocols can be connected. Rose RealTime supports dynamic connections of unwired ports. In UML 2.0 Ports and connectors were newly introduced in UML 2.0, but with a slightly more general semantics than in UML-RT. 5
  • 6. Capsules class CapsuleClass class CapsuleRole class CapsuleInstance name as String name as String name as String super as CapsuleClass capsuleClass as CapsuleClass capsuleClass as CapsuleClass subcapsuleRoles as Set of CapsuleRole parent as CapsuleRole or Null subcapsules as Set of CapsuleRole ports as Set of Port kind as CapsuleRoleKind ports as Set of Port connectors as Set of Connector isSubstitutable as Boolean importedIn as Set of CapsuleRole behaviour as StateMachine or Null inst as CapsuleInstance or Null state as State with CapsuleRoleKind = {fixed capsule, optional capsule, plugin capsule} 6
  • 7. Dynamic structures in UML-RT • fixed capsule role – incarnated at initialization time of parent → In UML 2.0: composition (isComposite=true) Graphically: nested box with solid outline • optional capsule role – incarnated/destroyed at runtime → In UML 2.0: composition with variable multiplicity for parts • plugin capsule role – filled in at runtime → In UML 2.0: aggregation (isComposite=false) Graphically: nested box with dashed outline 7
  • 8. Capsule incarnation incarnate(capsuleRole as CapsuleRole) require capsuleRole.inst = null instance := new CapsuleInstance(...) createSubcapsuleRoles(instance) createPorts(instance) incarnateAllFixedRoles(instance) connectPorts(instance) capsuleRole.inst = instance if capsuleRole.kind = optional connectPorts(capsuleRole.parent,capsuleRole) In Rose RealTime, optional capsules can be incarnated on different 8 execution threads.
  • 9. Capsule importation import(instance as CapsuleInstance, pluginRole as CapsuleRole) require pluginRole.instance = null require instance <> null require compatibleCapsuleRoles(pluginRole, instance.capsuleClass) connectPorts(pluginRole.parent, pluginRole, instance) pluginRole.inst := instance add pluginRole to instance.importedIn Constraint: A port of the imported capsule instance cannot be simultaneously connected in two different plugin roles. 9
  • 10. Capsule deportation and destruction • Basically, ’undo’ of importation and incarnation • Deportation of capsule instance CI from capsule role CR: → remove all connectors to CI from CR.parent → remove CR from the set CI.importedIn • Destruction of a capsule role CR: → destroy connections to and in CR → recursively destroy all owned fixed and optional capsules roles → Semantic variation point: Destroy or keep the owned subcapsule instances that are imported in another capsule role 10
  • 11. Next steps • integrate the semantics of state machines and communication services (as supported by Rational Rose Realtime tool) • analysis of generated AsmL code using SpecExplorer (simulation, testing, model checking) • semantics for the UML 2.0 composite structures Thank you for attention! 11