This document discusses ASML's use of the Sirius modeling tool and the Data, Control, and Algorithms (DCA) architectural pattern. It provides an overview of ASML and its Multi-Disciplinary System Engineering (MDSE) ecosystem. It then describes the development and current state of ASML's Software Modeling Environment (ASOME) which uses DSLs in Sirius to model different aspects of systems based on the DCA pattern. The document identifies some areas for potential improvement in Sirius's support for reuse and integration with textual editors.
5. Q4 2017
Slide 5
Public
ASML makes the machines for making those chips
• Lithography is the critical tool
for producing chips
• All of the world’s top chip
makers are our customers
• 2017 sales: €9 billion
• More than 19,000 employees
(FTE) worldwide
6. MDSE ecosystem: Multi Disciplinary System Engineering
30 April 2018
Public
Slide 6
Specification
• In terms of problem domain
• Expressive for concise
specification of large multi-
disciplinary systems
• ‘Look-and-feel’ primarily
determined by domain
experts
Crucial for adoption Analysis
• Questions to be answered
primarily determine the suitable
(COTS) analysis tools
• Extra-functionals discriminate
further between suitable tools,
e.g. performance,
interoperability of tools
Synthesis
• Property preserving
• Automated
8. Slide 8
Public
DCA introduction
A software component typically needs to:
• Decompose incoming requests into calculations and
requests that are served by others
• Ensure that the calculations and external requests
are done in the correct order
• Ensure that the calculations are external requests
are given the right data
• Perform the calculations
Data
Math
Ctrl
Communication
Communication
9. 2016-11-15
Slide 9
Public
DCA design in evolution
Data
Math
Ctrl
Communication
Communication
Math
Ctrl
Communication
Communication
Extracting the repositories
allows replacing transport of
data by exchanging
reference to data.
Minimizes copying of data
through layers.
10. Slide 10
Confidential
DCA: Data, Control & Algorithms
Architectural Pattern
Lot Wafer
Image
Domain
logic services
Control
Algorithms Data
responsive
consume
time &
resources
transactional
stateful &
reactive
stateless
or stateful
integrity &
persistence
CD
CRUD
E
Actions
Domain
data services
Armored data
adapter services
Armored data
adapter services
Data
adapter services
Protocol is
checked
New request arrives
Data is
checked
Data is
stored
11. Slide 11
Confidential
DCA: Data, Control & Algorithms
Architectural Pattern
Lot Wafer
Image
Domain
logic services
Control
Algorithms Data
responsive
consume
time &
resources
transactional
stateful &
reactive
stateless
or stateful
integrity &
persistence
CD
CRUD
E
Actions
Domain
data services
Armored data
adapter services
Armored data
adapter services
Data
adapter services
Protocol is
checked
New request arrives
Until algorithm or foreign
action is to be invoked
Request is
decomposed
And ordered And delegated
Data is
needed
Data is
prepared
Data is
read
12. Slide 12
Confidential
DCA: Data, Control & Algorithms
Architectural Pattern
Lot Wafer
Image
Domain
logic services
Control
Algorithms Data
responsive
consume
time &
resources
transactional
stateful &
reactive
stateless
or stateful
integrity &
persistence
CD
CRUD
E
Actions
Domain
data services
Armored data
adapter services
Armored data
adapter services
Data
adapter services
Protocol is
checked
New request arrives
Until algorithm or foreign
action is to be invoked
Request is
decomposed
And ordered And delegated
Data is
needed
Foreign action
is invoked
13. Slide 13
Confidential
DCA: Data, Control & Algorithms
Architectural Pattern
Lot Wafer
Image
Domain
logic services
Control
Algorithms Data
responsive
consume
time &
resources
transactional
stateful &
reactive
stateless
or stateful
integrity &
persistence
CD
CRUD
E
Actions
Domain
data services
Armored data
adapter services
Armored data
adapter services
Data
adapter services
Data is
checked
Data is
stored
Protocol is
checked
Results and/or
events arrive
14. Slide 14
Confidential
DCA: Data, Control & Algorithms
Architectural Pattern
Lot Wafer
Image
Domain
logic services
Control
Algorithms Data
responsive
consume
time &
resources
transactional
stateful &
reactive
stateless
or stateful
integrity &
persistence
CD
CRUD
E
Actions
Domain
data services
Armored data
adapter services
Armored data
adapter services
Data
adapter services
Retrieve data
and notify
Take further
action or notify
Further
action
Control is
notified
Protocol is
checked
Results and/or
events arrive
15. Slide 15
Confidential
DCA: Data, Control & Algorithms
Architectural Pattern
Lot Wafer
Image
Domain
logic services
Control
Algorithms Data
responsive
consume
time &
resources
transactional
stateful &
reactive
stateless
or stateful
integrity &
persistence
CD
CRUD
E
Actions
Domain
data services
Armored data
adapter services
Armored data
adapter services
Data
adapter services
Retrieve data
and notify
Take further
action or notify
Further
action
Control is
notified
Protocol is
checked
Data is
prepared
Data is
read
Results and/or
events arrive
16. Slide 16
Confidential
DCA: Data, Control & Algorithms
Architectural Pattern
Lot Wafer
Image
Domain
logic services
Control
Algorithms Data
responsive
consume
time &
resources
transactional
stateful &
reactive
stateless
or stateful
integrity &
persistence
CD
CRUD
E
Actions
Domain
data services
Armored data
adapter services
Armored data
adapter services
Data
adapter services
Retrieve data
and notify
Send notification
Take further
action or notify
Further
action
Control is
notified
Protocol is
checked
Results and/or
events arrive
17. 2016-11-15
Slide 17
Public
DCA, separation of Data Control and Algorithms
How it started:
• Started with modeling control; no data
• Then spotted opportunity to deal with data
• Build first prototype on Papyrus and Acceleo to demonstrate feasibility of
generating working code from model
• Users started to think UML’ish, to draw UML’ish, and to expect specific semantics
• Semantics ambiguous and unclear
• Even then, insufficient resources to implement all variants; less is more
18. 2016-11-15
Slide 18
Public
DCA, separation of Data Control and Algorithms
How it progressed:
• SW architects decided to limit amount of concepts
• Build Sirius based prototype within a week
• Only provide tools and representations for supported concepts
• Subsequent iterations within days up to weeks
19. 2016-11-15
Slide 19
Public
DCA Data editor
Entity
ValueObject
Persisted together with
(handwritten and generated)
source code.
Therefore textual storage
format (realized using Xtext).
Closely following
Domain Driven Design
(Evans)
20. Actually, the DSL
DSL editor was
one of my first
Sirius experiences
2016-11-15
Slide 20
Public
DCA data code generator
ASOME data models are generated into C++ using a generator model
Model to Text
using Acceleo
Generator model
editor by XText
Generator model
specifies details only
relevant for code
generator
21. 2016-11-15
Slide 21
Public
ASOME – ASML Software Modeling Environment
Goal:
• Environment that exploits DSL’s to describe each aspect in its most optimal
form while supporting integration of aspect specific models
Solution:
• A family of languages, supported by editors, analyzers and generators, to allow
specification of DCA models
28. 2016-11-15
Slide 28
Public
ASOME – ASML Software Modeling Environment
Likely to become a huge undertaking
Requires a roadmap
Obviously realized with a DSL and a Sirius based Roadmap editor
Another ‘How to learn Sirius’ project
29. 2016-11-15
Slide 29
Public
ASOME empowered by Sirius
Sirius supports ASOME’s development by
• Being easy to learn
• Allowing fast iterations, incremental delivery
• Sufficiently expressive/powerful
• Providing quick support for all kinds of questions in the fora
Is there really no disadvantage or room for improvement?
30. 2016-11-15
Slide 30
Public
ASOME empowered by Sirius
Improvement ideas
• Support ‘reuse’ within tools by a procedure call and definition like mechanism
• Also provide textual syntax for vsp definitions
All have more or less the same behavior,
currently realized by java service, would
have preferred a ‘callable’ AQL specification
31. 2016-11-15
Slide 31
Public
ASOME empowered by Sirius
Improvement ideas
• Support ‘reuse’ within tools by a procedure call and definition like mechanism
• Also provide textual syntax for vsp definitions
• Optimize integration with textual editing frameworks, not everything is a picture
(but a lot is)
Location of editor not always
‘usable’. Open in separate edit
window might also be nice.
32. 2016-11-15
Slide 32
Public
ASML empowered by Sirius
Improvement areas ok, but are we happy?
Yes we are!
We are looking forward to integrate xtext editing capabilities in the IDE
where text input is preferred
We hope to optimize the integration between the textual parts and the
graphical parts in our environment