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

08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
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
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
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
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
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
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 

Recently uploaded (20)

08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
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
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
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
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
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
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 

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/