Entwicklungswerkzeuge

Effiziente Software-Entwicklung mit Automate

27. Mai 2014, 11:44 Uhr | von Mike Pagel und Martin Thiede
Diesen Artikel anhören

Fortsetzung des Artikels von Teil 4

Generische Syntax

Durch den großen Umfang des Metamodells ist es nicht praktikabel, eine DSL für alle Aspekte des Modells von Hand zu definieren und zu pflegen. Automate verfolgt daher einen anderen Ansatz als bisherige textuelle Werkzeuge: Die DSLs werden mit einer generischen Syntax automatisch aus dem jeweiligen Metamodell abgeleitet. Dieses Vorgehen ermöglicht es u.a., neue Metamodellversionen umgehend und automatisch zu unterstützen.

Beispiel 1.1: Automate DSL

AUTOSAR {
  ARPackage Lights {
    ApplicationSwComponentType SwcLightController {
      PPortPrototype controlPort, providedInterface: /Lights/ILightControl
    }
  }
}

Beispiel 1.1 zeigt die Verwendung der Automate-DSL zur Definition einer Software-Komponente „SwcLightController” mit einem Port „controlPort” (AR 4.0.3). Jedes Modellelement wird dabei in einer eigenen Zeile definiert. Das erste Wort einer Zeile gibt die Art des Modellelements an, gefolgt von dessen Namen – soweit vorhanden. Danach folgen durch Komma getrennt weitere benannte Attribute. Im Beispiel verweist der PPortPrototype „controlPort” auf ein „providedInterface”, das an anderer Stelle definiert wird. Falls ein Modellelement weitere Elemente aggregiert, so werden diese innerhalb von geschweiften Klammern und jeweils in einer eigenen Zeile angegeben.
Die Struktur eines Modells in der textuellen Syntax von Automate ist damit sehr ähnlich zu ARXML, jedoch wesentlich kompakter und prägnanter und damit leichter zu lesen und zu bearbeiten.

Beispiel 1.2: ARXML

<AUTOSAR ... >
  <AR-PACKAGES>
    <AR-PACKAGE>
      <SHORT-NAME>Lights</SHORT-NAME>
      <ELEMENTS>
        <APPLICATION-SW-COMPONENT-TYPE>
          <SHORT-NAME>SwcLightController</SHORT-NAME>
          <PORTS>
            <P-PORT-PROTOTYPE>
              <SHORT-NAME>controlPort</SHORT-NAME>
              <PROVIDED-INTERFACE-TREF DEST=“CLIENT-SERVER-INTERFACE“>
/Lights/ILightControl</PROVIDED-INTERFACE-TREF>
            </P-PORT-PROTOTYPE>
          </PORTS>
        </APPLICATION-SW-COMPONENT-TYPE>
      </ELEMENTS>
    </AR-PACKAGE>
  </AR-PACKAGES>
</AUTOSAR>

Beispiel 1.2 zeigt zum Vergleich dasselbe Modellfragment in der ARXML-Repräsentation. Generell kann man sagen, dass die Darstellung mit der textuellen DSL nur etwa ein Drittel der Größe des ARXML aufweist, sowohl gemessen an der Anzahl der Zeilen als auch an der Anzahl der Zeichen (Bytes).


  1. Effiziente Software-Entwicklung mit Automate
  2. Autoren-Tools mit grafischer Oberfläche
  3. Autoren-Tools mit textueller Syntax
  4. Automate: Konzepte und Anwendung
  5. Generische Syntax
  6. ARXML/Text-Synchronisation
  7. Makros
  8. Editor-Support
  9. Checks und Automatisierung
  10. Ausblick
  11. Weiterentwicklung von Automate
  12. Die Autoren

Lesen Sie mehr zum Thema


Das könnte Sie auch interessieren

Jetzt kostenfreie Newsletter bestellen!

Weitere Artikel zu BMW AG