SlideShare a Scribd company logo
1 of 32
Download to read offline
Yakindu SCT

Domain-Specific Statecharts
Alexander Nyßen, Axel Terfloth
itemis AG

Donnerstag, 29. März 12
YAKINDU
is a modular toolkit
for model-based development
(of embedded systems)

Donnerstag, 29. März 12
language workbenches

➡ Reuse of
• modeling language
• tools
Donnerstag, 29. März 12

CoMo

CReMa

• open & extendable
• composable to (domain-specific)

Damos (Blocks)

• independent and self-contained
• not bound to a specific methodology
• usable on their own

SCT (Statecharts)

YAKINDU Modules

Eclipse Platform
YAKINDU Statechart Tools (SCT)
Editing

Validation

Simulation

Code Generation

Donnerstag, 29. März 12
YAKINDU Statechart
• Formalism

similar to state machines as defined by
David Harel, but:
• self-contained
• with

with a well defined interface

a cycle-based execution semantics
•

•

event-driven behavior can
be defined on top

•

Donnerstag, 29. März 12

allows processing
concurrent events

time control is delegated
to the environment
Yakindu SCT - Editing

Donnerstag, 29. März 12
Yakindu SCT - Editing
Editor

SGraph
SText

Donnerstag, 29. März 12

Integrated
Graphical & Textual
Modeling
Yakindu SCT - Simulation

Donnerstag, 29. März 12
Yakindu SCT - Simulation
Editor

SGraph
SText

Donnerstag, 29. März 12

Easy adoptable
simulation

SExec

Simulator
Yakindu SCT - Code Generation
• Yakindu
• All

comprises code generators for Java, C, C++

generators can be „customized“ by a generator model

• Custom

generators based on Xpand & Xtend2/Java can be
easily integrated

Donnerstag, 29. März 12
Yakindu SCT - Code Generation
• Yakindu
• All

comprises code generators for Java, C, C++

generators can be „customized“Flexible
by a generator model
Editor
Code Generation

SGraph

• Custom

SExec

Simulator

SGen

CodeGenerators

generators based on Xpand & Xtend2/Java can be
easily integrated

SText

Donnerstag, 29. März 12
DEMO

Donnerstag, 29. März 12
Yakindu SCT - Extensibility
•

Recap: different models are used around the Statechart formalism

•

SGraph (EMF): specification of graphical structures

•

SText (Xtext): textual specification of declarations & expressions

•

SExec (EMF): sequentialized statechart execution

•

SGen (Xtext): code generator parameterization

Donnerstag, 29. März 12
Built-In Extensibility
• Restriction

of structural concepts (SGraph)

• Customization

of declarations & expressions (SText)

• Adoption

of the execution semantics (SExec)

• Adoption

of existing or integration of custom code generators

• Integration

of custom type system, augmentation by
application types

• Integration

Donnerstag, 29. März 12

of additional validation constraints
The Statechart Application Gap

Donnerstag, 29. März 12
The Statechart Application Gap
State-based modeling
is useful
in many domains

Donnerstag, 29. März 12
The Statechart Application Gap
State-based modeling
is useful
in many domains

Donnerstag, 29. März 12

Typically, statecharts
are independent
of any domain
The Statechart Application Gap
State-based modeling
is useful
in many domains

Typically, statecharts
are independent
of any domain

• How

can statecharts be adopted to a specific domain?

• How

can tools support this adoption?

Donnerstag, 29. März 12
Example: Domain Concepts - HMI

Donnerstag, 29. März 12
Domain Specific Statecharts
• Improving

expressiveness and semantic integration by
adopting domain concepts:
• Refer

to domain concepts within declarations (events,
variables) and expressions (feature-calls)

• Concepts

from HMI domain: widget (button, label, etc.),
scene, popup, animation, button-click, intro, outro,...

Donnerstag, 29. März 12
Integration of HMI Concepts

Donnerstag, 29. März 12
DEMO

Donnerstag, 29. März 12
Domain-Specific Statechart Approach

Donnerstag, 29. März 12
Domain-Specific Statechart Approach

Structural Concepts
(SGraph)
Generic
Donnerstag, 29. März 12
Domain-Specific Statechart Approach

grammar org.yakindu.sct.model.stext.SText with org.eclipse.xtext.common.Terminals
/* ---- root rules ----

Structural Concepts
(SGraph)

Declarations &
Expressions
(SText)

These root rules are not relevant for the grammar integration
into a single grammar.
*/

extends

Root:
	

(roots+=DefRoot)*;

DefRoot:
	

StatechartRoot | StateRoot | TransitionRoot;

Scope returns sct::Scope:
	
(SimpleScope | StatechartScope);

	
// a SimpleScope is used for states and regions
SimpleScope returns sct::Scope:
	
	

{SimpleScope} (declarations+=Declaration)*;
// defines the poosible scopes for statecharts

StatechartScope returns sct::Scope:
	
InterfaceScope | InternalScope;
InterfaceScope returns sct::Scope:

Generic
Donnerstag, 29. März 12
Domain-Specific Statechart Approach
Domain-Specific

HMI Meta Model

grammar org.yakindu.sct.model.stext.SText with org.eclipse.xtext.common.Terminals
/* ---- root rules ----

Structural Concepts
(SGraph)

Declarations &
Expressions
(SText)

These root rules are not relevant for the grammar integration
into a single grammar.
*/

extends

Root:
	

(roots+=DefRoot)*;

DefRoot:
	

StatechartRoot | StateRoot | TransitionRoot;

Scope returns sct::Scope:
	
(SimpleScope | StatechartScope);

	
// a SimpleScope is used for states and regions
SimpleScope returns sct::Scope:
	
	

{SimpleScope} (declarations+=Declaration)*;
// defines the poosible scopes for statecharts

StatechartScope returns sct::Scope:
	
InterfaceScope | InternalScope;
InterfaceScope returns sct::Scope:

Generic
Donnerstag, 29. März 12
Domain-Specific Statechart Approach
Domain-Specific

specialization

HMI Meta Model

grammar org.yakindu.sct.model.stext.SText with org.eclipse.xtext.common.Terminals
/* ---- root rules ----

Structural Concepts
(SGraph)

Declarations &
Expressions
(SText)

These root rules are not relevant for the grammar integration
into a single grammar.
*/

extends

Root:
	

(roots+=DefRoot)*;

DefRoot:
	

StatechartRoot | StateRoot | TransitionRoot;

Scope returns sct::Scope:
	
(SimpleScope | StatechartScope);

	
// a SimpleScope is used for states and regions
SimpleScope returns sct::Scope:
	
	

{SimpleScope} (declarations+=Declaration)*;
// defines the poosible scopes for statecharts

StatechartScope returns sct::Scope:
	
InterfaceScope | InternalScope;
InterfaceScope returns sct::Scope:

Generic
Donnerstag, 29. März 12
Domain-Specific Statechart Approach
Domain-Specific

grammar com.yakindu.hmi.sctmodel.HMIText with

org.yakindu.sct.model.stext.SText

/* ---- root rules ---These root rules are not relevant for the
into a single grammar.
*/
Root:
	

HMI Meta Model

(roots+=DefRoot)*;

HMI Declarations

Declaration returns sct::Declaration:
	
EventDefinition | VariableDefinition | Clock | Operation

| LocalReaction | Entrypoint | Exitpoint | HMIDeclaration;

HMIDeclaration:
	
HmiScene | HmiPopup | HmiAnimation | HmiTransition;
HmiScene:
	
'scene' scene=[contract::Scene|QID];

specialization

HmiPopup:
	
'popup' popup=[contract::Popup|QID];
HmiAnimation:
	
'animation' animation=[contract::Animation|QID];

grammar org.yakindu.sct.model.stext.SText with org.eclipse.xtext.common.Terminals
/* ---- root rules ----

Structural Concepts
(SGraph)

Declarations &
Expressions
(SText)

These root rules are not relevant for the grammar integration
into a single grammar.
*/

extends

Root:
	

(roots+=DefRoot)*;

DefRoot:
	

StatechartRoot | StateRoot | TransitionRoot;

Scope returns sct::Scope:
	
(SimpleScope | StatechartScope);

	
// a SimpleScope is used for states and regions
SimpleScope returns sct::Scope:
	
	

{SimpleScope} (declarations+=Declaration)*;
// defines the poosible scopes for statecharts

StatechartScope returns sct::Scope:
	
InterfaceScope | InternalScope;
InterfaceScope returns sct::Scope:

Generic
Donnerstag, 29. März 12
Domain-Specific Statechart Approach
Domain-Specific

grammar com.yakindu.hmi.sctmodel.HMIText with

org.yakindu.sct.model.stext.SText

/* ---- root rules ---These root rules are not relevant for the
into a single grammar.
*/
Root:
	

HMI Meta Model

(roots+=DefRoot)*;

HMI Declarations

Declaration returns sct::Declaration:
	
EventDefinition | VariableDefinition | Clock | Operation

| LocalReaction | Entrypoint | Exitpoint | HMIDeclaration;

references

HMIDeclaration:
	
HmiScene | HmiPopup | HmiAnimation | HmiTransition;
HmiScene:
	
'scene' scene=[contract::Scene|QID];

HmiAnimation:
	
'animation' animation=[contract::Animation|QID];

extends

specialization

HmiPopup:
	
'popup' popup=[contract::Popup|QID];

grammar org.yakindu.sct.model.stext.SText with org.eclipse.xtext.common.Terminals
/* ---- root rules ----

Structural Concepts
(SGraph)

Declarations &
Expressions
(SText)

These root rules are not relevant for the grammar integration
into a single grammar.
*/

extends

Root:
	

(roots+=DefRoot)*;

DefRoot:
	

StatechartRoot | StateRoot | TransitionRoot;

Scope returns sct::Scope:
	
(SimpleScope | StatechartScope);

	
// a SimpleScope is used for states and regions
SimpleScope returns sct::Scope:
	
	

{SimpleScope} (declarations+=Declaration)*;
// defines the poosible scopes for statecharts

StatechartScope returns sct::Scope:
	
InterfaceScope | InternalScope;
InterfaceScope returns sct::Scope:

Generic
Donnerstag, 29. März 12
Domain-Specific Statechart Approach
Domain-Specific

grammar com.yakindu.hmi.sctmodel.HMIText with

org.yakindu.sct.model.stext.SText

/* ---- root rules ---These root rules are not relevant for the
into a single grammar.
*/
Root:
	

HMI Meta Model

(roots+=DefRoot)*;

HMI Declarations

Declaration returns sct::Declaration:
	
EventDefinition | VariableDefinition | Clock | Operation

| LocalReaction | Entrypoint | Exitpoint | HMIDeclaration;

references

HMIDeclaration:
	
HmiScene | HmiPopup | HmiAnimation | HmiTransition;
HmiScene:
	
'scene' scene=[contract::Scene|QID];

HmiAnimation:
	
'animation' animation=[contract::Animation|QID];

Domain Specific
Statechart
extends

specialization

HmiPopup:
	
'popup' popup=[contract::Popup|QID];

grammar org.yakindu.sct.model.stext.SText with org.eclipse.xtext.common.Terminals
/* ---- root rules ----

Structural Concepts
(SGraph)

Declarations &
Expressions
(SText)

These root rules are not relevant for the grammar integration
into a single grammar.
*/

extends

Root:
	

(roots+=DefRoot)*;

DefRoot:
	

StatechartRoot | StateRoot | TransitionRoot;

Scope returns sct::Scope:
	
(SimpleScope | StatechartScope);

	
// a SimpleScope is used for states and regions
SimpleScope returns sct::Scope:
	
	

{SimpleScope} (declarations+=Declaration)*;
// defines the poosible scopes for statecharts

StatechartScope returns sct::Scope:
	
InterfaceScope | InternalScope;
InterfaceScope returns sct::Scope:

Generic
Donnerstag, 29. März 12
Yakindu SCT
• Open

Source / EPL

• Hosted

at EclipseLabs

• Eclipse-Proposal
• Interested

• Important

planned for 2012

parties welcome!

Links:

• Project

Site: http://yakindu.org

• Eclipse

Labs Site: http://code.google.com/a/eclipselabs.org/p/yakindu/

• Update
Donnerstag, 29. März 12

Site: http://updates.yakindu.com/indigo/milestones/
Thank You! Questions?

Donnerstag, 29. März 12

More Related Content

Similar to Yakindu SCT - Domain-Specific Statecharts

Efficient and Advanced Omniscient Debugging for xDSMLs (SLE 2015)
Efficient and Advanced Omniscient Debugging for xDSMLs (SLE 2015)Efficient and Advanced Omniscient Debugging for xDSMLs (SLE 2015)
Efficient and Advanced Omniscient Debugging for xDSMLs (SLE 2015)Benoit Combemale
 
VEDAViz for ETSAP partners
VEDAViz for ETSAP partnersVEDAViz for ETSAP partners
VEDAViz for ETSAP partnersIEA-ETSAP
 
2014 IEEE JAVA DATA MINING PROJECT Xs path navigation on xml schemas made easy
2014 IEEE JAVA DATA MINING PROJECT Xs path navigation on xml schemas made easy2014 IEEE JAVA DATA MINING PROJECT Xs path navigation on xml schemas made easy
2014 IEEE JAVA DATA MINING PROJECT Xs path navigation on xml schemas made easyIEEEMEMTECHSTUDENTSPROJECTS
 
IEEE 2014 JAVA DATA MINING PROJECTS Xs path navigation on xml schemas made easy
IEEE 2014 JAVA DATA MINING PROJECTS Xs path navigation on xml schemas made easyIEEE 2014 JAVA DATA MINING PROJECTS Xs path navigation on xml schemas made easy
IEEE 2014 JAVA DATA MINING PROJECTS Xs path navigation on xml schemas made easyIEEEFINALYEARSTUDENTPROJECTS
 
Summarizing Software API Usage Examples Using Clustering Techniques
Summarizing Software API Usage Examples Using Clustering TechniquesSummarizing Software API Usage Examples Using Clustering Techniques
Summarizing Software API Usage Examples Using Clustering TechniquesNikos Katirtzis
 
HSA-4123, HSA Memory Model, by Ben Gaster
HSA-4123, HSA Memory Model, by Ben GasterHSA-4123, HSA Memory Model, by Ben Gaster
HSA-4123, HSA Memory Model, by Ben GasterAMD Developer Central
 
Database & Technology 1 _ Tom Kyte _ Efficient PL SQL - Why and How to Use.pdf
Database & Technology 1 _ Tom Kyte _ Efficient PL SQL - Why and How to Use.pdfDatabase & Technology 1 _ Tom Kyte _ Efficient PL SQL - Why and How to Use.pdf
Database & Technology 1 _ Tom Kyte _ Efficient PL SQL - Why and How to Use.pdfInSync2011
 
Software development effort reduction with Co-op
Software development effort reduction with Co-opSoftware development effort reduction with Co-op
Software development effort reduction with Co-oplbergmans
 
Automated engineering of domain-specific metamorphic testing environments
Automated engineering of domain-specific metamorphic testing environmentsAutomated engineering of domain-specific metamorphic testing environments
Automated engineering of domain-specific metamorphic testing environmentsPablo Gómez Abajo
 
Oo Design And Patterns
Oo Design And PatternsOo Design And Patterns
Oo Design And PatternsAnil Bapat
 
DDS Advanced Tutorial - OMG June 2013 Berlin Meeting
DDS Advanced Tutorial - OMG June 2013 Berlin MeetingDDS Advanced Tutorial - OMG June 2013 Berlin Meeting
DDS Advanced Tutorial - OMG June 2013 Berlin MeetingJaime Martin Losa
 
SYNTHESIS OPTIMIZATION FOR FINITE STATE MACHINE DESIGN IN FPGAS
SYNTHESIS OPTIMIZATION FOR FINITE STATE MACHINE DESIGN IN FPGASSYNTHESIS OPTIMIZATION FOR FINITE STATE MACHINE DESIGN IN FPGAS
SYNTHESIS OPTIMIZATION FOR FINITE STATE MACHINE DESIGN IN FPGASVLSICS Design
 
Data processing platforms with SMACK: Spark and Mesos internals
Data processing platforms with SMACK:  Spark and Mesos internalsData processing platforms with SMACK:  Spark and Mesos internals
Data processing platforms with SMACK: Spark and Mesos internalsAnton Kirillov
 
Generic Synchronization Policies in C++
Generic Synchronization Policies in C++Generic Synchronization Policies in C++
Generic Synchronization Policies in C++Ciaran McHale
 
advancedzplmacroprogramming_081820.pptx
advancedzplmacroprogramming_081820.pptxadvancedzplmacroprogramming_081820.pptx
advancedzplmacroprogramming_081820.pptxssuser6a1dbf
 

Similar to Yakindu SCT - Domain-Specific Statecharts (20)

MDE in Practice
MDE in PracticeMDE in Practice
MDE in Practice
 
Efficient and Advanced Omniscient Debugging for xDSMLs (SLE 2015)
Efficient and Advanced Omniscient Debugging for xDSMLs (SLE 2015)Efficient and Advanced Omniscient Debugging for xDSMLs (SLE 2015)
Efficient and Advanced Omniscient Debugging for xDSMLs (SLE 2015)
 
VEDAViz for ETSAP partners
VEDAViz for ETSAP partnersVEDAViz for ETSAP partners
VEDAViz for ETSAP partners
 
VLSI
VLSIVLSI
VLSI
 
2014 IEEE JAVA DATA MINING PROJECT Xs path navigation on xml schemas made easy
2014 IEEE JAVA DATA MINING PROJECT Xs path navigation on xml schemas made easy2014 IEEE JAVA DATA MINING PROJECT Xs path navigation on xml schemas made easy
2014 IEEE JAVA DATA MINING PROJECT Xs path navigation on xml schemas made easy
 
IEEE 2014 JAVA DATA MINING PROJECTS Xs path navigation on xml schemas made easy
IEEE 2014 JAVA DATA MINING PROJECTS Xs path navigation on xml schemas made easyIEEE 2014 JAVA DATA MINING PROJECTS Xs path navigation on xml schemas made easy
IEEE 2014 JAVA DATA MINING PROJECTS Xs path navigation on xml schemas made easy
 
Summarizing Software API Usage Examples Using Clustering Techniques
Summarizing Software API Usage Examples Using Clustering TechniquesSummarizing Software API Usage Examples Using Clustering Techniques
Summarizing Software API Usage Examples Using Clustering Techniques
 
VLSI
VLSIVLSI
VLSI
 
HSA-4123, HSA Memory Model, by Ben Gaster
HSA-4123, HSA Memory Model, by Ben GasterHSA-4123, HSA Memory Model, by Ben Gaster
HSA-4123, HSA Memory Model, by Ben Gaster
 
Rock Overview
Rock OverviewRock Overview
Rock Overview
 
Database & Technology 1 _ Tom Kyte _ Efficient PL SQL - Why and How to Use.pdf
Database & Technology 1 _ Tom Kyte _ Efficient PL SQL - Why and How to Use.pdfDatabase & Technology 1 _ Tom Kyte _ Efficient PL SQL - Why and How to Use.pdf
Database & Technology 1 _ Tom Kyte _ Efficient PL SQL - Why and How to Use.pdf
 
Software development effort reduction with Co-op
Software development effort reduction with Co-opSoftware development effort reduction with Co-op
Software development effort reduction with Co-op
 
Automated engineering of domain-specific metamorphic testing environments
Automated engineering of domain-specific metamorphic testing environmentsAutomated engineering of domain-specific metamorphic testing environments
Automated engineering of domain-specific metamorphic testing environments
 
Oo Design And Patterns
Oo Design And PatternsOo Design And Patterns
Oo Design And Patterns
 
DDS Advanced Tutorial - OMG June 2013 Berlin Meeting
DDS Advanced Tutorial - OMG June 2013 Berlin MeetingDDS Advanced Tutorial - OMG June 2013 Berlin Meeting
DDS Advanced Tutorial - OMG June 2013 Berlin Meeting
 
01 oracle architecture
01 oracle architecture01 oracle architecture
01 oracle architecture
 
SYNTHESIS OPTIMIZATION FOR FINITE STATE MACHINE DESIGN IN FPGAS
SYNTHESIS OPTIMIZATION FOR FINITE STATE MACHINE DESIGN IN FPGASSYNTHESIS OPTIMIZATION FOR FINITE STATE MACHINE DESIGN IN FPGAS
SYNTHESIS OPTIMIZATION FOR FINITE STATE MACHINE DESIGN IN FPGAS
 
Data processing platforms with SMACK: Spark and Mesos internals
Data processing platforms with SMACK:  Spark and Mesos internalsData processing platforms with SMACK:  Spark and Mesos internals
Data processing platforms with SMACK: Spark and Mesos internals
 
Generic Synchronization Policies in C++
Generic Synchronization Policies in C++Generic Synchronization Policies in C++
Generic Synchronization Policies in C++
 
advancedzplmacroprogramming_081820.pptx
advancedzplmacroprogramming_081820.pptxadvancedzplmacroprogramming_081820.pptx
advancedzplmacroprogramming_081820.pptx
 

More from itemis AG

YAKINDU Statechart Tools Training (look-inside)
YAKINDU Statechart Tools Training (look-inside)YAKINDU Statechart Tools Training (look-inside)
YAKINDU Statechart Tools Training (look-inside)itemis AG
 
Migration einer Oracle Forms Anwendung - Rhenus Freight Network GmbH
Migration einer Oracle Forms Anwendung - Rhenus Freight Network GmbHMigration einer Oracle Forms Anwendung - Rhenus Freight Network GmbH
Migration einer Oracle Forms Anwendung - Rhenus Freight Network GmbHitemis AG
 
Zukunftsfähige Softwarearchitekturen
Zukunftsfähige SoftwarearchitekturenZukunftsfähige Softwarearchitekturen
Zukunftsfähige Softwarearchitekturenitemis AG
 
Modernisierung von Altanwendungen
Modernisierung von AltanwendungenModernisierung von Altanwendungen
Modernisierung von Altanwendungenitemis AG
 
YAKINDU Traceability
YAKINDU TraceabilityYAKINDU Traceability
YAKINDU Traceabilityitemis AG
 
GEF Past, present, future
GEF Past, present, futureGEF Past, present, future
GEF Past, present, futureitemis AG
 
Model-based Automotive Software Development
Model-based Automotive Software DevelopmentModel-based Automotive Software Development
Model-based Automotive Software Developmentitemis AG
 
Personas als Methode des Usability Engineerings
Personas als Methode des Usability EngineeringsPersonas als Methode des Usability Engineerings
Personas als Methode des Usability Engineeringsitemis AG
 
Entwicklung in Spielen als Innovationstreiber für Usability
Entwicklung in Spielen als Innovationstreiber für UsabilityEntwicklung in Spielen als Innovationstreiber für Usability
Entwicklung in Spielen als Innovationstreiber für Usabilityitemis AG
 
Gemeinsam kreativ für bessere Software - Vortragsreihe Dortmund
Gemeinsam kreativ für bessere Software - Vortragsreihe DortmundGemeinsam kreativ für bessere Software - Vortragsreihe Dortmund
Gemeinsam kreativ für bessere Software - Vortragsreihe Dortmunditemis AG
 
Von der Nutzungsanforderung zur formalen Softwarespezifikation
Von der Nutzungsanforderung zur formalen SoftwarespezifikationVon der Nutzungsanforderung zur formalen Softwarespezifikation
Von der Nutzungsanforderung zur formalen Softwarespezifikationitemis AG
 
Usability und agile Softwareentwicklung
Usability und agile SoftwareentwicklungUsability und agile Softwareentwicklung
Usability und agile Softwareentwicklungitemis AG
 
Scrum Portfolio itemis
Scrum Portfolio itemisScrum Portfolio itemis
Scrum Portfolio itemisitemis AG
 
Warum macht Usability Engineering Sinn? Was kann ich tun?
Warum macht Usability Engineering Sinn? Was kann ich tun?Warum macht Usability Engineering Sinn? Was kann ich tun?
Warum macht Usability Engineering Sinn? Was kann ich tun?itemis AG
 
itemis Unternehmenspräsentation
itemis Unternehmenspräsentationitemis Unternehmenspräsentation
itemis Unternehmenspräsentationitemis AG
 

More from itemis AG (15)

YAKINDU Statechart Tools Training (look-inside)
YAKINDU Statechart Tools Training (look-inside)YAKINDU Statechart Tools Training (look-inside)
YAKINDU Statechart Tools Training (look-inside)
 
Migration einer Oracle Forms Anwendung - Rhenus Freight Network GmbH
Migration einer Oracle Forms Anwendung - Rhenus Freight Network GmbHMigration einer Oracle Forms Anwendung - Rhenus Freight Network GmbH
Migration einer Oracle Forms Anwendung - Rhenus Freight Network GmbH
 
Zukunftsfähige Softwarearchitekturen
Zukunftsfähige SoftwarearchitekturenZukunftsfähige Softwarearchitekturen
Zukunftsfähige Softwarearchitekturen
 
Modernisierung von Altanwendungen
Modernisierung von AltanwendungenModernisierung von Altanwendungen
Modernisierung von Altanwendungen
 
YAKINDU Traceability
YAKINDU TraceabilityYAKINDU Traceability
YAKINDU Traceability
 
GEF Past, present, future
GEF Past, present, futureGEF Past, present, future
GEF Past, present, future
 
Model-based Automotive Software Development
Model-based Automotive Software DevelopmentModel-based Automotive Software Development
Model-based Automotive Software Development
 
Personas als Methode des Usability Engineerings
Personas als Methode des Usability EngineeringsPersonas als Methode des Usability Engineerings
Personas als Methode des Usability Engineerings
 
Entwicklung in Spielen als Innovationstreiber für Usability
Entwicklung in Spielen als Innovationstreiber für UsabilityEntwicklung in Spielen als Innovationstreiber für Usability
Entwicklung in Spielen als Innovationstreiber für Usability
 
Gemeinsam kreativ für bessere Software - Vortragsreihe Dortmund
Gemeinsam kreativ für bessere Software - Vortragsreihe DortmundGemeinsam kreativ für bessere Software - Vortragsreihe Dortmund
Gemeinsam kreativ für bessere Software - Vortragsreihe Dortmund
 
Von der Nutzungsanforderung zur formalen Softwarespezifikation
Von der Nutzungsanforderung zur formalen SoftwarespezifikationVon der Nutzungsanforderung zur formalen Softwarespezifikation
Von der Nutzungsanforderung zur formalen Softwarespezifikation
 
Usability und agile Softwareentwicklung
Usability und agile SoftwareentwicklungUsability und agile Softwareentwicklung
Usability und agile Softwareentwicklung
 
Scrum Portfolio itemis
Scrum Portfolio itemisScrum Portfolio itemis
Scrum Portfolio itemis
 
Warum macht Usability Engineering Sinn? Was kann ich tun?
Warum macht Usability Engineering Sinn? Was kann ich tun?Warum macht Usability Engineering Sinn? Was kann ich tun?
Warum macht Usability Engineering Sinn? Was kann ich tun?
 
itemis Unternehmenspräsentation
itemis Unternehmenspräsentationitemis Unternehmenspräsentation
itemis Unternehmenspräsentation
 

Recently uploaded

SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 

Recently uploaded (20)

SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 

Yakindu SCT - Domain-Specific Statecharts

  • 1. Yakindu SCT Domain-Specific Statecharts Alexander Nyßen, Axel Terfloth itemis AG Donnerstag, 29. März 12
  • 2. YAKINDU is a modular toolkit for model-based development (of embedded systems) Donnerstag, 29. März 12
  • 3. language workbenches ➡ Reuse of • modeling language • tools Donnerstag, 29. März 12 CoMo CReMa • open & extendable • composable to (domain-specific) Damos (Blocks) • independent and self-contained • not bound to a specific methodology • usable on their own SCT (Statecharts) YAKINDU Modules Eclipse Platform
  • 4. YAKINDU Statechart Tools (SCT) Editing Validation Simulation Code Generation Donnerstag, 29. März 12
  • 5. YAKINDU Statechart • Formalism similar to state machines as defined by David Harel, but: • self-contained • with with a well defined interface a cycle-based execution semantics • • event-driven behavior can be defined on top • Donnerstag, 29. März 12 allows processing concurrent events time control is delegated to the environment
  • 6. Yakindu SCT - Editing Donnerstag, 29. März 12
  • 7. Yakindu SCT - Editing Editor SGraph SText Donnerstag, 29. März 12 Integrated Graphical & Textual Modeling
  • 8. Yakindu SCT - Simulation Donnerstag, 29. März 12
  • 9. Yakindu SCT - Simulation Editor SGraph SText Donnerstag, 29. März 12 Easy adoptable simulation SExec Simulator
  • 10. Yakindu SCT - Code Generation • Yakindu • All comprises code generators for Java, C, C++ generators can be „customized“ by a generator model • Custom generators based on Xpand & Xtend2/Java can be easily integrated Donnerstag, 29. März 12
  • 11. Yakindu SCT - Code Generation • Yakindu • All comprises code generators for Java, C, C++ generators can be „customized“Flexible by a generator model Editor Code Generation SGraph • Custom SExec Simulator SGen CodeGenerators generators based on Xpand & Xtend2/Java can be easily integrated SText Donnerstag, 29. März 12
  • 13. Yakindu SCT - Extensibility • Recap: different models are used around the Statechart formalism • SGraph (EMF): specification of graphical structures • SText (Xtext): textual specification of declarations & expressions • SExec (EMF): sequentialized statechart execution • SGen (Xtext): code generator parameterization Donnerstag, 29. März 12
  • 14. Built-In Extensibility • Restriction of structural concepts (SGraph) • Customization of declarations & expressions (SText) • Adoption of the execution semantics (SExec) • Adoption of existing or integration of custom code generators • Integration of custom type system, augmentation by application types • Integration Donnerstag, 29. März 12 of additional validation constraints
  • 15. The Statechart Application Gap Donnerstag, 29. März 12
  • 16. The Statechart Application Gap State-based modeling is useful in many domains Donnerstag, 29. März 12
  • 17. The Statechart Application Gap State-based modeling is useful in many domains Donnerstag, 29. März 12 Typically, statecharts are independent of any domain
  • 18. The Statechart Application Gap State-based modeling is useful in many domains Typically, statecharts are independent of any domain • How can statecharts be adopted to a specific domain? • How can tools support this adoption? Donnerstag, 29. März 12
  • 19. Example: Domain Concepts - HMI Donnerstag, 29. März 12
  • 20. Domain Specific Statecharts • Improving expressiveness and semantic integration by adopting domain concepts: • Refer to domain concepts within declarations (events, variables) and expressions (feature-calls) • Concepts from HMI domain: widget (button, label, etc.), scene, popup, animation, button-click, intro, outro,... Donnerstag, 29. März 12
  • 21. Integration of HMI Concepts Donnerstag, 29. März 12
  • 24. Domain-Specific Statechart Approach Structural Concepts (SGraph) Generic Donnerstag, 29. März 12
  • 25. Domain-Specific Statechart Approach grammar org.yakindu.sct.model.stext.SText with org.eclipse.xtext.common.Terminals /* ---- root rules ---- Structural Concepts (SGraph) Declarations & Expressions (SText) These root rules are not relevant for the grammar integration into a single grammar. */ extends Root: (roots+=DefRoot)*; DefRoot: StatechartRoot | StateRoot | TransitionRoot; Scope returns sct::Scope: (SimpleScope | StatechartScope); // a SimpleScope is used for states and regions SimpleScope returns sct::Scope: {SimpleScope} (declarations+=Declaration)*; // defines the poosible scopes for statecharts StatechartScope returns sct::Scope: InterfaceScope | InternalScope; InterfaceScope returns sct::Scope: Generic Donnerstag, 29. März 12
  • 26. Domain-Specific Statechart Approach Domain-Specific HMI Meta Model grammar org.yakindu.sct.model.stext.SText with org.eclipse.xtext.common.Terminals /* ---- root rules ---- Structural Concepts (SGraph) Declarations & Expressions (SText) These root rules are not relevant for the grammar integration into a single grammar. */ extends Root: (roots+=DefRoot)*; DefRoot: StatechartRoot | StateRoot | TransitionRoot; Scope returns sct::Scope: (SimpleScope | StatechartScope); // a SimpleScope is used for states and regions SimpleScope returns sct::Scope: {SimpleScope} (declarations+=Declaration)*; // defines the poosible scopes for statecharts StatechartScope returns sct::Scope: InterfaceScope | InternalScope; InterfaceScope returns sct::Scope: Generic Donnerstag, 29. März 12
  • 27. Domain-Specific Statechart Approach Domain-Specific specialization HMI Meta Model grammar org.yakindu.sct.model.stext.SText with org.eclipse.xtext.common.Terminals /* ---- root rules ---- Structural Concepts (SGraph) Declarations & Expressions (SText) These root rules are not relevant for the grammar integration into a single grammar. */ extends Root: (roots+=DefRoot)*; DefRoot: StatechartRoot | StateRoot | TransitionRoot; Scope returns sct::Scope: (SimpleScope | StatechartScope); // a SimpleScope is used for states and regions SimpleScope returns sct::Scope: {SimpleScope} (declarations+=Declaration)*; // defines the poosible scopes for statecharts StatechartScope returns sct::Scope: InterfaceScope | InternalScope; InterfaceScope returns sct::Scope: Generic Donnerstag, 29. März 12
  • 28. Domain-Specific Statechart Approach Domain-Specific grammar com.yakindu.hmi.sctmodel.HMIText with org.yakindu.sct.model.stext.SText /* ---- root rules ---These root rules are not relevant for the into a single grammar. */ Root: HMI Meta Model (roots+=DefRoot)*; HMI Declarations Declaration returns sct::Declaration: EventDefinition | VariableDefinition | Clock | Operation | LocalReaction | Entrypoint | Exitpoint | HMIDeclaration; HMIDeclaration: HmiScene | HmiPopup | HmiAnimation | HmiTransition; HmiScene: 'scene' scene=[contract::Scene|QID]; specialization HmiPopup: 'popup' popup=[contract::Popup|QID]; HmiAnimation: 'animation' animation=[contract::Animation|QID]; grammar org.yakindu.sct.model.stext.SText with org.eclipse.xtext.common.Terminals /* ---- root rules ---- Structural Concepts (SGraph) Declarations & Expressions (SText) These root rules are not relevant for the grammar integration into a single grammar. */ extends Root: (roots+=DefRoot)*; DefRoot: StatechartRoot | StateRoot | TransitionRoot; Scope returns sct::Scope: (SimpleScope | StatechartScope); // a SimpleScope is used for states and regions SimpleScope returns sct::Scope: {SimpleScope} (declarations+=Declaration)*; // defines the poosible scopes for statecharts StatechartScope returns sct::Scope: InterfaceScope | InternalScope; InterfaceScope returns sct::Scope: Generic Donnerstag, 29. März 12
  • 29. Domain-Specific Statechart Approach Domain-Specific grammar com.yakindu.hmi.sctmodel.HMIText with org.yakindu.sct.model.stext.SText /* ---- root rules ---These root rules are not relevant for the into a single grammar. */ Root: HMI Meta Model (roots+=DefRoot)*; HMI Declarations Declaration returns sct::Declaration: EventDefinition | VariableDefinition | Clock | Operation | LocalReaction | Entrypoint | Exitpoint | HMIDeclaration; references HMIDeclaration: HmiScene | HmiPopup | HmiAnimation | HmiTransition; HmiScene: 'scene' scene=[contract::Scene|QID]; HmiAnimation: 'animation' animation=[contract::Animation|QID]; extends specialization HmiPopup: 'popup' popup=[contract::Popup|QID]; grammar org.yakindu.sct.model.stext.SText with org.eclipse.xtext.common.Terminals /* ---- root rules ---- Structural Concepts (SGraph) Declarations & Expressions (SText) These root rules are not relevant for the grammar integration into a single grammar. */ extends Root: (roots+=DefRoot)*; DefRoot: StatechartRoot | StateRoot | TransitionRoot; Scope returns sct::Scope: (SimpleScope | StatechartScope); // a SimpleScope is used for states and regions SimpleScope returns sct::Scope: {SimpleScope} (declarations+=Declaration)*; // defines the poosible scopes for statecharts StatechartScope returns sct::Scope: InterfaceScope | InternalScope; InterfaceScope returns sct::Scope: Generic Donnerstag, 29. März 12
  • 30. Domain-Specific Statechart Approach Domain-Specific grammar com.yakindu.hmi.sctmodel.HMIText with org.yakindu.sct.model.stext.SText /* ---- root rules ---These root rules are not relevant for the into a single grammar. */ Root: HMI Meta Model (roots+=DefRoot)*; HMI Declarations Declaration returns sct::Declaration: EventDefinition | VariableDefinition | Clock | Operation | LocalReaction | Entrypoint | Exitpoint | HMIDeclaration; references HMIDeclaration: HmiScene | HmiPopup | HmiAnimation | HmiTransition; HmiScene: 'scene' scene=[contract::Scene|QID]; HmiAnimation: 'animation' animation=[contract::Animation|QID]; Domain Specific Statechart extends specialization HmiPopup: 'popup' popup=[contract::Popup|QID]; grammar org.yakindu.sct.model.stext.SText with org.eclipse.xtext.common.Terminals /* ---- root rules ---- Structural Concepts (SGraph) Declarations & Expressions (SText) These root rules are not relevant for the grammar integration into a single grammar. */ extends Root: (roots+=DefRoot)*; DefRoot: StatechartRoot | StateRoot | TransitionRoot; Scope returns sct::Scope: (SimpleScope | StatechartScope); // a SimpleScope is used for states and regions SimpleScope returns sct::Scope: {SimpleScope} (declarations+=Declaration)*; // defines the poosible scopes for statecharts StatechartScope returns sct::Scope: InterfaceScope | InternalScope; InterfaceScope returns sct::Scope: Generic Donnerstag, 29. März 12
  • 31. Yakindu SCT • Open Source / EPL • Hosted at EclipseLabs • Eclipse-Proposal • Interested • Important planned for 2012 parties welcome! Links: • Project Site: http://yakindu.org • Eclipse Labs Site: http://code.google.com/a/eclipselabs.org/p/yakindu/ • Update Donnerstag, 29. März 12 Site: http://updates.yakindu.com/indigo/milestones/