-
1.
ARText.
ARText
BMW Car IT
11/20/09
Page 1
Driving developments with Xtext.
Sebastian.Benz@bmw-carit.de
Dana.Wong@bmw-carit.de
-
2.
AUTOSAR.
ARText
BMW Car IT
11/20/09
Page 2
Automotive Open Systems Architecture.
-
3.
AUTOSAR.
ARText
BMW Car IT
11/20/09
Page 3
Automotive Open Systems Architecture.
Application Application Application
Software Software Software
Component AUTOSAR Component Component
SOFTWARE
AUTOSAR AUTOSAR AUTOSAR
Interface Interface Interface
AUTOSAR Modeling Language
AUTOSAR Runtime Environment (RTE)
Basic Software
ECU-Hardware
-
4.
AUTOSAR.
ARText
BMW Car IT
11/20/09
Page 4
Modeling AUTOSAR Systems.
-
5.
Goal.
ARText
BMW Car IT
11/20/09
Page 5
A Textual Language for AUTOSAR.
package AUTOSAR.components
component atomic myComponent {
ports {
sender sPort provides mySRInterface
receiver rPort requires mySRInterface
}
}
composition System {
prototype myComponent comp1
prototype myComponent comp2
connect comp1.sPort to comp2.rPort
connect comp2.sPort to comp1.rPort
}
-
6.
AUTOSAR Textual Language.
ARText
BMW Car IT
11/20/09
Page 6
There is an Eclipse Project for that…
-
7.
AUTOSAR Textual Language.
ARText
BMW Car IT
11/20/09
Page 7
Challenges.
1. Performance
2. Workspace integration
3. Metamodel support
-
8.
Xtext.
ARText
BMW Car IT
11/20/09
Page 8
Performance.
Time for parsing a series model (1500 files):
oAW 240s
TMF 14s
-
9.
AUTOSAR Tool Platform.
ARText
BMW Car IT
11/20/09
Page 9
Integration into Artop.
Artop
Eclipse
-
10.
Artop.
ARText
BMW Car IT
11/20/09
Page 10
Workspace Integration.
On-the-fly model transformation
-
11.
Artop.
ARText
BMW Car IT
11/20/09
Page 11
Workspace Integration.
components.artext
components.arxml
-
12.
The AUTOSAR Dilemma.
ARText
BMW Car IT
11/20/09
Page 12
Handling different AUTOSAR Releases.
-
13.
The AUTOSAR Dilemma.
ARText
BMW Car IT
11/20/09
Page 13
Supporting different AUTOSAR Releases.
components.artext
components.arxml
AUTOSAR 2.1
AUTOSAR 3.x
AUTOSAR 4.0
-
14.
Supporting different AUTOSAR Releases.
ARText
BMW Car IT
11/20/09
Page 14
The Linking DSL.
-
15.
The AUTOSAR Dilemma.
ARText
BMW Car IT
11/20/09
Page 15
Metamodel Differences.
AUTOSAR 2.x
ARText 3.x
4.0
Release specific
Extensions
-
16.
Supporting different AUTOSAR Releases.
ARText
BMW Car IT
11/20/09
Page 16
Language Extensions.
TCompositionType:
'composition' name=ID '{'
(...|
extensionPoints += TExtensionPoint)*
'}'
;
TExtensionPoint:
keyword=ID (args+=TArg (',' args+=TArg)* )?;
TArg:
ListLiteral | BoolLiteral | StringLiteral |...;
-
17.
Supporting different AUTOSAR Releases.
ARText
BMW Car IT
11/20/09
Page 17
Language Extensions.
-
18.
Supporting different AUTOSAR Releases.
ARText
BMW Car IT
11/20/09
Page 18
Language Extensions.
@ArtextExtension(
artextElement = TCompositionType.class,
keyword = "checksum",
params = { "the checksum" }
)
public void execute(CompositionType container, String checksum){
i.setChecksum(theChecksum);
}
-
19.
Results.
ARText
BMW Car IT
11/20/09
Page 19
Modeling Efficiency.
# Mouse Clicks:
ARText
Commercial Tool
# Key presses:
ARText
Commercial Tool
Modeling time (min):
ARText
Commercial Tool
-
20.
Summary.
ARText
BMW Car IT
11/20/09
Page 20
Using Xtext in practice.
Scalable: handles large projects.
Extendable: thanks to Guice
non-trivial customizations are possible.
Efficent: short development time.
-
21.
Thank you for your attention.
ARText
BMW Car IT
11/20/09
Page 21
Questions?
Basic Software and Software Components are specified in an AUTOSAR modeling language.
The AUTOSAR metamodel is complex. Abstraction are required for efficient modeling.
A textual language is only as good as it‘s tooling => Goal is to create a language and a tool
The new xtext version is clearly able to handle large projects.
http://www.artop.org
From a tooling point of view, the code completion proposals must come from other artext files as well as other autosar resources. But the problem gets even worse...
AUTOSAR is not a one lane road, it is a three lane road. There are different revisions of the AUTOSAR standard: 2, 3 and the upcoming 4.0 which all must be supported by ARText. Our language must support different metamodel releases Reference to COPE
The information specified in the linking file is used for Scoping, Validation and Linking during transformation.