de_DEen_USes_ESfa_IRfr_FRhi_INid_IDjapl_PLpt_PTru_RU

Der vollständige Leitfaden für die Objekt-Beschränkungs-Sprache (OCL) und künstliche-intelligenz-gestütztes UML-Modellieren mit Visual Paradigm

Eine umfassende Ressource für Software-Architekten, Produktmanager und Systemingenieure, die daran interessiert sind, formale Spezifikationen und moderne visuelle Modellierungspraktiken zu meistern.

Einführung in die Objekt-Beschränkungs-Sprache (OCL)

Die Objekt-Beschränkungs-Sprache (OCL) ist eine formale, seitenwirkungslos deklarative Sprache, die vom Object Management Group (OMG) standardisiert wurde und innerhalb des Unified Modeling Language (UML)-Frameworks eingesetzt wird. OCL ermöglicht Modellierern, präzise Beschränkungen, Abfragen und Verhaltensregeln zu spezifizieren, die allein durch grafische Notation nicht ausreichend ausgedrückt werden können.

Visual Paradigm: OCL- AI Powered UMK Modeling
Visual Paradigm: OCL – KI-gestütztes UML-Modellieren

Warum OCL wichtig ist

UML constraint example

Während UML-Diagramme leistungsstarke visuelle Abstraktionen für Systemstruktur und -verhalten bieten, fehlt ihnen inhärent die Genauigkeit, die erforderlich ist für:

  • Mathematische Verifikation der Modellkorrektheit

  • Automatisierte Codeerzeugung mit garantiertem semantischen Fidelity

  • Zweirichtungsingenieurwesen zwischen Modellen und Implementierung

  • Formale Validierung von Geschäftsregeln und Domänenbeschränkungen

OCL schließt diese Lücke, indem sie eine streng definierte Syntax und Semantik für die Ausdruckslogischer Bedingungen bereitstellt, die innerhalb eines Modells erfüllt sein müssen.


Grundlegende Konzepte und Syntax

Grundlegende Prinzipien

Prinzip Beschreibung
Deklarativ OCL beschreibt was wahr sein muss, nicht wieum es zu berechnen
seitenwirkungslos Ausdrücke ändern den Systemzustand nicht; sie stellen lediglich Abfragen oder Einschränkungen dar
Typsicher Starke Typisierung verhindert ungültige Navigation und Operationen
Sammlungsorientiert Umfangreiche Unterstützung für Mengen, Taschen, Folgen und geordnete Sammlungen

Grundlegende Ausdruckstypen

-- Invariante: Der Kontostand darf niemals negativ sein
kontext Konto
inv nichtNegativerSaldo: self.saldo >= 0

-- Voraussetzung: Der Abhebungsbetrag darf den Saldo nicht überschreiten
kontext Konto::abheben(betrag: Real)
vor ausreichendesGuthaben: betrag <= self.saldo

-- Nachbedingung: Der Saldo verringert sich um den abgehobenen Betrag
nach saldoAktualisiert: self.saldo = self.saldo@vor - betrag

-- Abfrage: Mitarbeiter mit Führungspositionen auswählen
unternehmen.mitarbeiter->select(titel = "Leiter")

Navigation und Sammlungsoperationen

OCL stellt leistungsstarke Operatoren zur Durchquerung von Modellbeziehungen bereit:

-- Navigation über Assoziationen
kunde.bestellungen->groesse()

-- Sammlungsoperationen
bestellungen->select(betrag > 100)->sammeln(produkt)

-- Iteration mit Einschränkungen
mitarbeiter->forAll(e | e.gehalt > minimallohn)

Primäre Rollen von OCL in der UML-Modellierung

1. Spezifizieren von Einschränkungen

OCL ist die Branchenstandard für die Definition vonboolesche Ausdrückedie die Modellintegrität validieren:

Invarianten

Bedingungen, die immer für Instanzen einer Klasse immer gelten müssen:

kontext Bankkonto
inv gueltigeKontonummer: 
  self.kontonummer.enthaelt('[0-9]{10}') und
  self.kontonummer <> ''

Vorbedingungen

Anforderungen, die erfüllt sein müssen vor einer Operation ausgeführt wird:

kontext Einkaufswagen::checkout(bezahlung: Zahlung)
vor wagenNichtLeer: self.artikel->groesse() > 0
vor zahlungGueltig: zahlung.istGueltig()

Nachbedingungen

Zusicherungen über den Systemzustand nach Operation abgeschlossen:

kontext Bestellung::abbrechen()
post orderAbgebrochen: self.status = Bestellstatus::ABGEBROCHEN
post inventarWiederhergestellt: 
  self.bestellpositionen->forAll(li | 
    li.produkt.lagerbestand = li.produkt.lagerbestand@vorher + li.menge)

2. Bereitstellung von Präzision und Strenge

Wenn Modelle dienen als:

  • Formale Spezifikationen für sicherheitskritische Systeme

  • Verträge zwischen Entwicklerteams

  • Eingaben für die automatisierte Codeerzeugung

OCL beseitigt die inhärente Mehrdeutigkeit in natürlicher Sprache dokumentierten Spezifikationen und ermöglicht mathematisches Schließen bezüglich Korrektheit und Konsistenz.

3. Definition von Verhaltensregeln

OCL-Ausdrücke steuern dynamische Modellkomponenten:

Element OCL-Anwendung
Zustandsmaschinen-Guards Boolesche Bedingungen, die das Auslösen von Übergängen steuern
Entscheidungen im Aktivitätsdiagramm Verzweigungslogik basierend auf Objektzustand
Interaktionsbeschränkungen Nachrichtenreihenfolge und Parameterüberprüfung
Erweiterungen von Anwendungsfällen Bedingungen, die alternative Abläufe auslösen

4. Modellnavigation und Abfragen

OCL fungiert als eine Abfragesprache zum Gewinnen von Erkenntnissen aus Modellen:

-- Finde alle Premium-Kunden mit überfälligen Bestellungen
Kunde.allInstances()->select(
  status = 'PREMIUM' und 
  bestellungen->exists(o | o.fälligkeitsdatum < Datum::heute() und o.status = 'OFFEN')
)

-- Berechne den durchschnittlichen Bestellwert pro Region
Region.allInstances()->collect(r | 
  r.kunden.bestellungen->average(betrag)
)

5. Definition des UML-Metamodells

Kritisch ist, dass die UML-Spezifikation selbst verwendet OCL, um Gültigkeitsregeln für ihr eigenes Metamodell zu definieren. Diese selbstbezügliche Anwendung stellt sicher:

  • Konsistente Interpretation von Modellierungskonstrukten

  • Validierung der Diagramm-Semantik

  • Interoperabilität zwischen Modellierungswerkzeugen


OCL im Vergleich zu Programmiersprachen: Wichtige Unterschiede

Aspekt OCL Programmiersprache
Zweck Spezifikation und Validierung Implementierung und Ausführung
Paradigma Deklarativ Imperativ/objektorientiert
Seitenwirkungen Verboten Häufig und erwartet
Ausführung Von Werkzeugen/Validatoren bewertet Zur Laufzeit kompiliert/interpretiert
Ausgabe Boolescher Wahrheitswert oder Abfrageergebnis Berechnete Daten, Zustandsänderungen
Zielgruppe Modellierer, Architekten, Validatoren Entwickler, Laufzeit-Systeme

⚠️ Wichtig: OCL istkein ausführbarer Code. Es beschreibt Einschränkungen, die Implementierungen erfüllen müssen, gibt jedoch nicht vor, wie diese erfüllt werden sollen.


Visual Paradigm: Professionelle UML-Modellierungsplattform

Visual Paradigm bietet eine umfassende, professionelle Modellierungsplattform, die den UML 2.x-Standard vollständig unterstützt und nun durch ein künstliche-intelligenz-gestütztes Ökosystem für die automatisierte Diagrammerstellung und architektonische Analyse erweitert wurde.

Plattformübersicht

Visual Paradigm dient als einheitliche Plattform für:

  • Visuelle Modellierung: Vollständige Unterstützung für UML, SysML, BPMN und ArchiMate

  • Code-Engineering: Bidirektionales Round-Trip-Engineering für mehrere Sprachen

  • Agiles Management: Integration von Benutzerstories, Backlogs und Sprint-Planung

  • Unternehmensarchitektur: Unterstützung der Frameworks TOGAF, Zachman und DoDAF

  • KI-Unterstützung: Generative KI für die Erstellung und Analyse von Diagrammen


Unterstützung durch UML-Modellierungstools

Die Plattform unterstützt alle14 Standard-UML-Diagramme, wodurch die Lücke zwischen Anforderungen und Implementierung geschlossen wird.

Unterstützte Standard-Diagramme

✅ Klassendiagramme
✅ Use-Case-Diagramme
✅ Sequenzdiagramme
✅ Aktivitätsdiagramme
✅ Zustandsmaschinen-Diagramme
✅ Komponentendiagramme
✅ Bereitstellungsdiagramme
✅ Paketdiagramme
✅ Objektdiagramme
✅ Zusammengesetzte Strukturdiagramme
✅ Zeitdiagramme
✅ Interaktionsübersichtsdiagramme
✅ Kommunikationsdiagramme
✅ Profildiagramme

Erweiterte Ingenieurfähigkeiten

Code-Ingenieurwesen

  • Bidirektionales Round-Trip-Ingenieurwesen: Generieren von Quellcode (Java, C++, PHP, Python, C#, usw.) aus Diagrammen oder Rückwärtsingenieurwesen bestehenden Codes in UML-Modelle

  • Echtzeit-Synchronisierung: Änderungen im Code aktualisieren Diagramme automatisch und umgekehrt

  • Mehrsprachiger Support: Nahtlose Integration über verschiedene Technologie-Stacks hinweg

Datenbankgestaltung

  • ERD-Synchronisierung: Automatische Synchronisierung von Klassendiagrammen mit Entitätsbeziehungsdiagrammen

  • ORM-Zuordnung: Generieren von Hibernate-, JPA- und anderen ORM-Zuordnungskonfigurationen

  • Generierung von Datenbank-Skripten: Erzeugen von DDL-Skripten für mehrere Datenbank-Engines

IDE-Integration

Direkte Nutzung innerhalb beliebter Entwicklungsumgebungen:

  • Eclipse

  • IntelliJ IDEA

  • NetBeans

  • Visual Studio

  • Android Studio

Nachvollziehbarkeit und Verknüpfung

  • Modell-Transitor: Modell-Elemente über verschiedene Diagrammtypen hinweg verknüpfen, um eine end-to-end-Verfolgbarkeit zu gewährleisten

  • Unterdiagramme: Hierarchische Modellentwicklung mit Eltern-Kind-Beziehungen erstellen

  • Anforderungsverfolgung: Geschäftsanforderungen mit Design-Elementen und Testfällen verknüpfen

Teamzusammenarbeit

  • Gleichzeitiges Bearbeiten: Mehrere Teammitglieder können gleichzeitig an derselben Modellarbeit arbeiten

  • Integration von Versionskontrolle: Automatische Konfliktlösung und Verfolgung der Änderungshistorie

  • PostMania: Cloud-basiertes Kommentar- und Überprüfungs-Tool für Stakeholder-Feedback


KI-gestützte Modellierungsfunktionen

Die integrierte KI-Engine fungiert als„kreativer Co-Pilot,“der textbasierte Anforderungen in umsetzbare Designs verwandelt.

Sofortige Diagrammerstellung

Verwenden Sie natürliche Sprache, um sofort professionelle Diagramme zu erstellen:

Prompt: "Erstellen Sie ein Klassendiagramm für ein E-Commerce-System mit den Klassen Customer, Product, Order und Payment, wobei Assoziationen und Vielfachheiten angezeigt werden"

Ergebnis: Vollständig ausgeformtes UML-Klassendiagramm mit:
- Klassen mit Attributen und Operationen
- Assoziationen mit Vielfachheiten
- Vererbungsbeziehungen, wo angebracht
- Korrekter UML-Schreibweise und Gestaltung

Unterstützte Diagrammtypen für die KI-Erstellung:

  • Klassendiagramme

  • Sequenzdiagramme

  • Zustandsmaschinen-Diagramme

  • Use-Case-Diagramme

  • Komponentendiagramme

  • Bereitstellungsdiagramme

  • Aktivitätsdiagramme

Konversationelles Bearbeiten

Bestehende Modelle über natürliche Sprache-Befehle bearbeiten:

Befehl Aktion
"Füge eine PaymentGateway-Klasse hinzu" Erstellt eine neue Klasse mit Standardstruktur
"Refaktorisiere Student in eine Oberklasse" Wendet Muster zur Vererbungsrefaktorisierung an
"Füge Validierung zum E-Mail-Attribut hinzu" Fügt OCL-Beschränkungen oder Notizen ein
"Zeige die Sequenz für die Benutzeranmeldung an" Generiert oder aktualisiert das Sequenzdiagramm

Architekturanalyse und Kritik

Die KI führt automatisierte Qualitätsbewertungen durch:

🔍 Erkennung von Gestaltungsfehlern

  • Enge Kopplung zwischen Modulen

  • Zyklische Abhängigkeiten

  • Verstöße gegen SOLID-Prinzipien

  • Fehlende Fehlerbehandlungswege

📊 Analyseberichte

  • Komplexitätsmetriken

  • Kohäsions-/Kopplungswerte

  • Wartbarkeitsindizes

  • Vorschläge zu Sicherheitsanfälligkeiten

„Fragen Sie Ihr Diagramm“-Funktion

Abfragen Sie Ihre visuellen Modelle als interaktives Wissenssystem:

Frage: "Was sind die Hauptnutzungsfälle für die Admin-Rolle?"
Antwort: [Generierter Zusammenfassung basierend auf Use-Case-Diagrammelementen]

Frage: "Erstelle ein technisches Spezifikationsdokument für diese Komponente"
Antwort: [Formatiertes Markdown/PDF mit Komponentenschnittstellen, Abhängigkeiten und Einschränkungen]

Beherrschung von Gestaltungsmustern

Weisen Sie die KI an, etablierte architektonische Muster automatisch anzuwenden:

Prompt: "Wende das Beobachtermuster an, um das Inventar zu benachrichtigen, wenn sich der Bestellstatus ändert"

Ergebnis:
- Beobachter- und Subjekt-Schnittstellen hinzugefügt
- Die Order-Klasse implementiert Subjekt
- Die Inventory-Klasse implementiert Beobachter
- Benachrichtigungsmechanismus im Sequenzdiagramm definiert
- Relevante OCL-Beschränkungen für Zustandskonsistenz

Unterstützte Muster umfassen:

  • Erzeugungsmuster: Singleton, Factory, Builder, Prototype

  • Strukturelle Muster: Adapter, Decorator, Facade, Proxy

  • Verhaltensmuster: Observer, Strategy, Command, State

  • Architektonische Muster: MVC, Schichtenarchitektur, Mikrodienste, C4-Modell


Praktischer Umsetzungsführer

Erste Schritte mit OCL in Visual Paradigm

  1. OCL-Unterstützung aktivieren

    • Öffnen Sie Ihr UML-Projekt in Visual Paradigm

    • Navigieren Sie zu Projekt > Eigenschaften > OCL

    • OCL-Beschränkungsüberprüfung aktivieren

  2. Beschränkungen zu Modellelementen hinzufügen

    • Klicken Sie mit der rechten Maustaste auf eine beliebige Klasse, ein Attribut oder eine Operation

    • Wählen Sie Hinzufügen > OCL-Beschränkung

    • Wählen Sie den Beschränkungstyp: Invariante, Voraussetzung oder Nachbedingung

    • Geben Sie Ihren OCL-Ausdruck im Editor mit Syntaxhervorhebung ein

  3. Validieren Sie Ihr Modell

    • Ausführen Werkzeuge > Modell mit OCL validieren

    • Überprüfen Sie alle Verstöße gegen Beschränkungen in der Problems-Ansicht

    • Passen Sie Ausdrücke oder die Modellstruktur bei Bedarf an

  4. Dokumentation generieren

    • Verwenden Sie Projekt > Veröffentlichen > Dokumentation

    • Schließen Sie OCL-Beschränkungen in die generierten HTML/PDF-Berichte ein

    • Genaue Spezifikationen mit Entwicklerteams teilen

Beispiel für einen KI-unterstützten Arbeitsablauf

Szenario: Gestaltung eines Bibliotheksverwaltungssystems

Schritt 1: Anfangs-Prompt
"Erstellen Sie ein Use-Case-Diagramm für ein Bibliotheks-System mit Mitgliedern, 
Bibliothekaren, Buchausleihe und Reservierungsfunktionen"

Schritt 2: Verbesserungsbefehle
"Fügen Sie ein 'Überfälliger Hinweis'-Use-Case hinzu, das ausgelöst wird, wenn das Rückgabedatum überschritten ist"
"Zeigen Sie die Sequenz für den 'Buch reservieren'-Szenario an"
"Fügen Sie eine OCL-Beschränkung hinzu: Mitglied darf nicht mehr als 5 Bücher ausleihen"

Schritt 3: Analyse-Anfrage
"Überprüfen Sie auf zirkuläre Abhängigkeiten im Klassendiagramm"
"Generieren Sie ein Projektvorschlagsdokument aus diesem Modell"

Schritt 4: Exportieren & Zusammenarbeiten
"Exportieren Sie nach Visual Paradigm Desktop zur Team-Überprüfung"
"Teilen Sie über PostMania zur Rückmeldung von Stakeholdern"

Best Practices für OCL-Ausdrücke

✅ Machen Sie:

  • Halten Sie Ausdrücke knapp und konzentrieren Sie sich auf eine einzelne Fragestellung

  • Verwenden Sie sinnvolle Kontextdeklarationen

  • Nutzen Sie Sammlungsoperationen zur Klarheit

  • Dokumentieren Sie komplexe Ausdrücke mit Kommentaren

❌ Vermeiden Sie:

  • Übermäßig komplexe verschachtelte Ausdrücke (aufteilen in mehrere Beschränkungen)

  • Navigation über optionale Assoziationen ohne Null-Prüfung

  • Annahme einer Ausführungsreihenfolge (OCL ist deklarativ)

  • Verknüpfen von Spezifikationsaspekten mit Implementierungsdetails


Best Practices und Empfehlungen

Für Modellierer, die OCL verwenden

  1. Beginnen Sie einfach: Beginnen Sie mit einfachen Invarianten, bevor Sie komplexe Vor- und Nachbedingungen hinzufügen

  2. Iterieren Sie mit Stakeholdern: Überprüfen Sie Beschränkungen mit Fachexperten, um die Genauigkeit der Geschäftsregeln zu gewährleisten

  3. Testen Sie Beschränkungen: Verwenden Sie Beispiel-Daten, um OCL-Ausdrücke vor der Bereitstellung zu validieren

  4. Dokumentieren Sie die Absicht: Fügen Sie Kommentare hinzu, die die geschäftliche Begründung hinter komplexen Beschränkungen erklären

  5. Versionskontrolle: Verfolgen Sie OCL-Ausdrücke gemeinsam mit Modelländerungen zur Nachvollziehbarkeit

Für Teams, die künstliche Intelligenz-gestütztes Modellieren übernehmen

  1. Behandeln Sie KI als Co-Pilot: Überprüfen und verfeinern Sie AI-generierten Inhalt; akzeptieren Sie nichts blind

  2. Richten Sie Richtlinien für Eingabeparameter ein: Erstellen Sie Teamstandards für effektive Anweisungen in natürlicher Sprache

  3. Überprüfen Sie generierte Modelle: Wenden Sie traditionelle Modellüberprüfungen auf AI-unterstützte Ausgaben an

  4. Kombinieren Sie Stärken: Verwenden Sie KI für schnelle Prototypen, menschliches Fachwissen für architektonische Entscheidungen

  5. Sichern Sie Ihre Daten: Verstehen Sie die Richtlinien zur Datenverarbeitung, wenn Sie cloudbasierte KI-Funktionen nutzen

Integrationsstrategie

Phase Aktivitäten Werkzeuge/Funktionen
Entdeckung Anforderungserhebung, Domänenmodellierung KI-Diagrammerzeugung, textuelle Analyse
Entwurf Detaillierter Architekturentwurf, Spezifikation von Einschränkungen OCL-Editor, Musteranwendung, Überprüfung
Implementierung Codegenerierung, Round-Trip-Engineering IDE-Integration, ORM-Zuordnung, Skriptgenerierung
Validierung Modellprüfung, Überprüfung von Einschränkungen OCL-Validierer, KI-basierte architektonische Kritik
Dokumentation Kommunikation mit Stakeholdern, Wissensweitergabe „Fragen Sie Ihr Diagramm“, Berichtserstellung, PostMania

Referenz

  1. Visual Paradigm-Startseite: Umfassende Plattform für visuelles Modellieren, Code-Engineering, agile Management und Unternehmensarchitektur, nun mit generativen KI-Funktionen zur automatisierten Erstellung und Analyse von Diagrammen verbessert.
  2. UML-Tool-Funktionen: Detaillierter Überblick über die preisgekrönte UML-Software von Visual Paradigm, die alle 14 Standard-UML-Diagramme unterstützt, mit künstlicher Intelligenz gestützter Erzeugung, Code-Engineering und Team-Kooperationsfunktionen.
  3. Lösungsseite für UML-Tool: Branchenorientierte Darstellung der UML-Modellierungsfunktionen, die den Brückenschlag zwischen Anforderungen und Implementierung durch intelligentes visuelles Modellieren betont.
  4. Benutzerhandbuch für UML-Modellierung: Offizielle Dokumentation, die die Erstellung von UML-Diagrammen, Modellverwaltung, Einschränkungsdefinition und fortgeschrittene Modellierungstechniken innerhalb von Visual Paradigm abdeckt.
  5. UML-Tool – Lösungsseite für China: Lokalisierte Ressource, die UML-Modellierungslösungen für deutschsprachige Unternehmen beschreibt, einschließlich Fallstudien und Implementierungsanleitungen.
  6. Visual Paradigm-Editionen: Vergleich der Community-, Standard-, Professional- und Enterprise-Editionen, mit Darstellung der Funktionsverfügbarkeit, Lizenzoptionen und Upgrade-Pfade für unterschiedliche Teamgrößen und Projektanforderungen.
  7. UML-Tool – Zusätzliche Lösungsressource: Ergänzende Materialien zu UML-Best-Practices, Integrationsstrategien und branchenspezifischen Modellierungsmustern.
  8. KI-Chatbot-Plattform: Einstiegspunkt zur künstlich-intelligenten conversationalen Schnittstelle von Visual Paradigm für die Erzeugung von Diagrammen aus natürlicher Sprache, Modellbearbeitung und architektonischer Analyse.
  9. Leitfaden zur KI-gestützten Erzeugung von UML-Diagrammen: Tutorials-Ressource, die erklärt, wie man wirksame Eingaben erstellt, KI-Ausgaben verfeinert und generatives Modellieren in professionelle Arbeitsabläufe integriert.
  10. KI-Chatbot-Funktionen: Überblick über conversationale KI-Funktionen, darunter sofortige Diagrammerzeugung, kommando-basierte Bearbeitung, Abfragen mit „Frage dein Diagramm“ und automatisierte Dokumentation.
  11. KI-Diagrammerzeugungs-Funktionen: Spezialseite, die die Text-zu-Diagramm-Funktion, unterstützte Diagrammtypen und Anwendungsfälle für die Beschleunigung visueller Modellierungsaufgaben vorstellt.
  12. AI-Demo-Video von Visual Paradigm: Video-Demonstration der KI-gestützten Modellierungsfunktionen in Aktion, einschließlich Prompt-Beispiele, Verfeinerungsabläufe und Exportoptionen.
  13. KI-Leitfaden: UML-Klassendiagramm-Modellierung: Umfassender Leitfaden zur Nutzung von KI für die Erstellung von Klassendiagrammen, der die Erkennung von Entitäten, die Abbildung von Beziehungen, die Spezifikation von Einschränkungen und die Anwendung von Mustern abdeckt.
  14. KI-unterstütztes Werkzeug zur Generierung von Klassendiagrammen: Direkter Zugriff auf das spezialisierte KI-Werkzeug zur Erzeugung von UML-Klassendiagrammen aus textlichen Beschreibungen, mit Anpassungs- und Exportoptionen.
  15. KI-gestützte Erzeugung von Komponentendiagrammen: Ressource, die sich auf die Nutzung von KI zur Erstellung von UML-Komponentendiagrammen konzentriert, einschließlich Schnittstellendefinition, Abhängigkeitsverwaltung und Bereitstellungsmapping.

💡 Pro-Tipp: Kombinieren Sie die formale Präzision von OCL mit der KI-Unterstützung von Visual Paradigm für maximale Wirkung. Verwenden Sie KI, um Modellstrukturen schnell zu prototypisieren, und wenden Sie dann OCL-Beschränkungen an, um Geschäftsregeln rigoros zu definieren. Dieser hybride Ansatz beschleunigt die Gestaltung, während die semantische Strenge für komplexe Systeme erhalten bleibt.

Der Artikel ist auch in English, Español, فارسی, Français, English, Bahasa Indonesia, 日本語, Polski, Portuguese and Ру́сский verfügbar.