ARText - Driving Developments with Xtext

3,200 views

Published on

Published in: Technology, Sports
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,200
On SlideShare
0
From Embeds
0
Number of Embeds
144
Actions
Shares
0
Downloads
0
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide
  • 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.
  • ARText - Driving Developments with Xtext

    1. 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. 2. AUTOSAR. ARText BMW Car IT 11/20/09 Page 2 Automotive Open Systems Architecture.
    3. 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. 4. AUTOSAR. ARText BMW Car IT 11/20/09 Page 4 Modeling AUTOSAR Systems.
    5. 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. 6. AUTOSAR Textual Language. ARText BMW Car IT 11/20/09 Page 6 There is an Eclipse Project for that…
    7. 7. AUTOSAR Textual Language. ARText BMW Car IT 11/20/09 Page 7 Challenges. 1.  Performance 2. Workspace integration 3. Metamodel support
    8. 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. 9. AUTOSAR Tool Platform. ARText BMW Car IT 11/20/09 Page 9 Integration into Artop. Artop Eclipse
    10. 10. Artop. ARText BMW Car IT 11/20/09 Page 10 Workspace Integration. On-the-fly model transformation
    11. 11. Artop. ARText BMW Car IT 11/20/09 Page 11 Workspace Integration. components.artext components.arxml
    12. 12. The AUTOSAR Dilemma. ARText BMW Car IT 11/20/09 Page 12 Handling different AUTOSAR Releases.
    13. 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. 14. Supporting different AUTOSAR Releases. ARText BMW Car IT 11/20/09 Page 14 The Linking DSL.
    15. 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. 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. 17. Supporting different AUTOSAR Releases. ARText BMW Car IT 11/20/09 Page 17 Language Extensions.
    18. 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. 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. 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. 21. Thank you for your attention. ARText BMW Car IT 11/20/09 Page 21 Questions?

    ×