Automotive Systems and Software Engineering - Cheatsheet
Designmuster und deren Anwendung im Automobilbereich
Definition:
Wiederverwendbare Lösungsansätze für häufig auftretende Probleme in der Softwareentwicklung, speziell im Automobilbereich für Effizienz und Wartbarkeit.
Details:
- Strategie-Muster: Trennung von Algorithmen und deren Verwendung (z.B. verschiedene Fahrmodi)
- Beobachter-Muster: Benachrichtigung von Systemkomponenten bei Statusänderungen (z.B. Sensoren und Steuergeräte)
- Zustands-Muster: Verwaltung von Zustandsübergängen (z.B. Motorstart/Stopp)
- Singleton-Muster: Sicherstellung einer einzigen Instanz (z.B. zentrale Logiksteuerung)
- Adapter-Muster: Vereinheitlichung inkompatibler Schnittstellen (z.B. zwischen verschiedenen Bussystemen)
Echtzeit-Betriebssysteme und deren Funktionen
Definition:
Echtzeit-Betriebssysteme (RTOS) sind spezialisierte Betriebssysteme, die Systeme in Echtzeit steuern und überwachen. Sie müssen schnell und deterministisch auf Ereignisse reagieren können.
Details:
- Determinismus: Berechnungen müssen innerhalb einer vorhersehbaren Zeitspanne abgeschlossen sein.
- Prioritäten: Aufgaben mit höheren Prioritäten werden bevorzugt behandelt.
- Scheduling: Verwendung von Echtzeit-Scheduling-Algorithmen wie Rate Monotonic oder Earliest Deadline First (EDF).
- Interrupt-Handling: Schnelle und effiziente Bearbeitung von Hardware-Interrupts.
- Speicherverwaltung: Unterstützung für dynamische und statische Speicherzuweisung.
- Tasks und Threads: Management von parallelen Ausführungen, Synchronisation und Kommunikation.
- Sicherheit: Trennung und Schutz kritischer Aufgaben und Ressourcen.
Zeitplanung (Scheduling) und Prioritätsverwaltung in Echtzeitsystemen
Definition:
Zeitplanung in Echtzeitsystemen regelt die Reihenfolge und Zuweisung von Aufgaben basierend auf Zeit- und Prioritätsanforderungen.
Details:
- Echtzeitsysteme: erfordern deterministisches Verhalten
- Statische vs. dynamische Prioritäten
- Rate-Monotonic Scheduling (RMS): feste Prioritäten, kürzere Perioden = höhere Priorität
- Earliest Deadline First (EDF): dynamische Prioritäten, Nähe zur Deadline entscheidet
- Aufgaben: prämptiv vs. non-prämptiv
- Context Switches: Einfluss auf Leistung berücksichtigen
- Utilization Bound Test: Überprüfung auf planbare Systemauslastung
Automatische Codegenerierung aus Modellen
Definition:
Automatische Codegenerierung aus Modellen ermöglicht die direkte Umwandlung von Modellentwürfen in ausführbaren Programmcode.
Details:
- Verwendet oft modellbasierte Entwicklungsansätze wie UML oder Simulink.
- Ziel: Reduktion von Entwicklungszeit und Fehlerrate.
- Wichtig in der Automobilindustrie für Steuergeräte-Software.
- Erzeugter Code kann in Hochsprachen wie C oder C++ vorliegen.
- Wird häufig durch Werkzeuge wie MATLAB/Simulink, dSPACE oder IBM Rational unterstützt.
Relevante Normen und Vorschriften (z.B. ISO 26262)
Definition:
Relevante Normen und Vorschriften im Bereich Automotive Systems und Software Engineering, z.B. ISO 26262, regeln die funktionale Sicherheit und die Anforderungen an sicherheitsrelevante Systeme im Automobilbereich.
Details:
- ISO 26262: Industriestandard zur funktionalen Sicherheit von elektrischen/elektronischen Systemen in Straßenfahrzeugen
- ASIL: Automotive Safety Integrity Level, Klassifizierung von Risiken und Sicherheitsanforderungen
- V-Modell: Systementwicklungsprozess zur Sicherstellung der Einhaltung sicherheitsrelevanter Vorschriften
- Dokumentation: Umfassende Anforderungen an die Dokumentation des Entwicklungsprozesses und der Risikobewertung
- Tests und Validierung: Strenge Testverfahren und Validierung zur Gewährleistung der funktionalen Sicherheit
CAN (Controller Area Network) und LIN (Local Interconnect Network)
Definition:
CAN und LIN sind serielle Kommunikationsprotokolle zur Vernetzung von Steuergeräten in Fahrzeugen.
Details:
- CAN (Controller Area Network): Hochgeschwindigkeitskommunikation, robust gegen Störungen, ideal für kritische Systeme.
- LIN (Local Interconnect Network): Kostengünstig, einfach zu implementieren, niedrige Datenrate, geeignet für nicht-kritische Systeme.
- CAN-Formate: 11-Bit-ID (Standard) und 29-Bit-ID (Extended).
- CAN-Botschaften: bis zu 8 Byte Nutzdaten pro Nachricht.
- LIN: Bis zu 20 Kbit/s Übertragungsrate, Master-Slave-Architektur.
- CAN-Protokoll: CSMA/CR für Zugriffskontrolle.
- LIN-Protokoll: UART-basiert, geringere Anforderungen an die Hardware.
Architekturmetriken und deren Bewertung
Definition:
Architekturmetriken messen Qualität und Eigenschaften von Softwarearchitekturen
Details:
- Messgrößen wie Modularität, Komplexität, Kopplung, Kohäsion
- Wichtige Metriken: Lines of Code (LOC), Cyclomatic Complexity, Coupling Between Objects (CBO), Lack of Cohesion in Methods (LCOM)
- Bewertung erfolgt durch Soll-Ist-Vergleiche, Schwellenwertanalyse
- Ziel: Identifikation von Schwachstellen, Verbesserungsmöglichkeiten
- Werkzeuge: z.B. SonarQube, Apache JMeter
Sicherheitsanalysen und -bewertungen
Definition:
Analyse und Bewertung von Sicherheitsrisiken in automobilen Systemen und Software, um potenzielle Gefährdungen zu identifizieren und zu minimieren.
Details:
- Gefahrenanalyse: Identifikation von potenziellen Gefährdungen und deren Ursachen
- Risikoanalyse: Bewertung der Wahrscheinlichkeit und des Schweregrades von Risiken
- Funktionale Sicherheit gemäß ISO 26262
- Fehlermöglichkeits- und Einflussanalyse (FMEA)
- Fehlermöglichkeits- und Fehlerbaumanalyse (FTA)
- Sicherheitsrelevante Anforderungen und Maßnahmen
- Validierung und Verifikation von Sicherheitsmaßnahmen