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
}
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
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);
}
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
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.
Thank you for your attention.
ARText
BMW Car IT
11/20/09
Page 21
Questions?
Editor's Notes
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.