INFORMATIK CONSULTING SYSTEMS AG Modellbasierte Entwicklung und Test sicherheitskritischer Software mit SCADE und SYMTES am Beispiel eines sicheren digitalen Übertragungssystems im Bahnumfeld Bernd Holzmüller ICS AG Vortrag beim Braunschweiger Verkehrskolloquium am 7. Mai 2009
Agenda Kurzvorstellung ICS AG Modellbasierte Entwicklung mit SCADE Demo: Referenzfallstudie Bahnübergang Modellbasiertes Testen von Systemen mit SYMTES Projektvorstellung: Entwicklung eines digitalen Übertragungssystems 2
INFORMATIK CONSULTING SYSTEMS AG Kurzvorstellung ICS AG
Standorte Geschäftsstelle Braunschweig Salzdahlumer Straße 196 38126 Braunschweig Tel.: +49 531 26306-33 Fax: +49 531 28503-46 Geschäftsstelle Berlin Rother Straße 18 10245 Berlin Tel.: +49 30 20687-262 Fax: +49 30 20687-375 Hauptsitz Stuttgart Sonnenbergstraße 13 70184 Stuttgart Tel.: +49 711 21037-00 Fax: +49 711 21037-53 Geschäftsstelle Leipzig Marschnerstraße 3 04109 Leipzig Tel.: +49 341 98250-10 Fax: +49 341 98250-11 Geschäftsstelle Immenstaad Ziegelei 5 88090 Immenstad Tel.: +49 7545 94996-0 Fax: +49 7545 94996-29 Geschäftsstelle Ulm Sedanstraße 14 89077 Ulm Tel.: +49 731 93579-325 Fax: +49 731 93579-327 Geschäftsstelle München Lise-Meitner-Straße 1 38126 Unterschleißheim Tel.: +49 89 203504-70 Fax: +49 89 203504-69 4
Philosophie Partner für den gesamten Produkt Life Cycle Vordenken Machbarkeitsstudien, Evaluierungen Beraten Technologien Methoden Werkzeuge Standards Prozesse Umsetzen Systems und Safety Engineering Produkt Design und Entwicklung Kapazitäts- und Kompetenzergänzung Test und Validierung RAM und Safety Management Assessment System Test System Test System Test System Test System Test System Test System Test System Test System Test Betreuen Maintenance von Software und Systemen 5
Aerospace & Defence Competence Centers Systems Engineering Software Architecture Software Engineering Verification & Validation Operation Support Systems Bodenstationen Betriebs-Überwachungssysteme Simulatorsysteme Führungs- und Führungseinsatzsysteme digitale Kartensysteme Auswertesysteme Flugsicherungssysteme Onboard Systems Missionsplanungs- und Managementsysteme Aufklärungssysteme Selbstschutzsysteme Steuerungssysteme Radarsysteme 6
Industrial Solutions Competence Centers Fertigungslogistik Infrastructure ERP Supply-Chain-Management Beschaffungslogistik Produktionslogistik Lagerlogistik Containermanagement Zollabwicklung IT-Infrastruktur Maintenance (Betriebsbereitschaft 7*24) mobile Datenfunksysteme ERP-Systeme Entwicklung und Integration von branchen- und kundenspezifischen Lösungen Definition und Implementierung von Systemschnittstellen 7
Transportation Competence Centers Applikationen: Leit- und Sicherungstechnik Schienenfahrzeugtechnik Engineering Systems Engineering Software Development Verification & Test Validation RAMS Assessment Systems & Safety Engineering Software Design und Development RAM und Safety Management RAMS und funktionale Sicherheit System- und Fehleranalysen (FMEA, FTA, HAZOP) Sicherheitsnachweise, Cross Acceptance Kunden- und Realisierungsprojekte (Customer Order Fulfillment) Verification & Validation Analytische Verifikation Testmanagement und -processing Testautomatisierung, Test-Tools Soft- und Hardware-Validierung Assessment Systembegutachtung Beratung und Unterstützung bei Zulassungsfragen Schnittstelle zur Zulassungsbehörde 8
Methods-Processes-Tools (MPT) Werkzeuge und Methoden: Tool-Evaluierung (Anwendbarkeit, Performance) Software Engineering (z. B. Modellbasierte Entwicklung) Statische Codeanalysen Simulation & Test (z.b. anforderungsbasiertes Testen, Testautomatisierung) Prozesse: Prozessentwicklung von Teilprozess- und Gesamtprozess für softwareintensive und sicherheitskritische Systeme (IEC 61508, EN 50126, CD 26262, Do 128B) Prozesseinführung und -optimierung Schwachstellenanalyse nach SPICE, CMMI, ISO 9001 Entwicklung von Aktionsplänen Projektmanagement: Projektplanung, -steuerung und -fortschrittskontrolle Aufwandsabschätzungen Risikomanagement Auswertungen und Reports Tooleinsatz wie MS-Project, Primavera Coaching der Stakeholder 9
INFORMATIK CONSULTING SYSTEMS AG Modellbasierte Entwicklung mit SCADE
SCADE Suite Kommerzielles modellbasierters Werkzeug Ursprung: Luftfahrt (Airbus) Seit 2001 durch die frz. Fa. Esterel Technologies weiterentwickelt und vertrieben Basisnotation: synchrone Datenflusssprache Lustre formal definiert streng typisiert Logischer Zeitbegriff ("tick") Variablen = Sequenzen von Werten (Funktion der Zeit) Datenflussgleichungen definieren Abhängigkeiten zwischen Variablen (auch rekursiv) nat: int; nat = 1 -> (pre(nat) + 1); deterministische Semantik 11
SCADE Zyklisches Ausführungsmodell loop Wait clock/event Read sensors Compute outputs Write actuators end loop 12
SCADE Suite Grafischer Editor Datenmodellierung (Strukturen, Arrays, Aufzählungstypen) Datenfluss- (Block-) Diagramme Safe State Machines (Harel State Machines mit Einschränkungen) Seit Version 6 sind beide grafische Notationen homogen integriert Codegenerator erzeugt aus SCADE-Modell effizienten und portablen C-Code erzeugte C-Funktionen flexibel einsetzbar (mit / ohne Betriebssystem, zeit-/ereignisgetrieben) qualifiziert / zertifiziert gemäß DO-178B / IEC 61508 / EN50128, jeweils höchste Sicherheitsstufe Modellsimulation Model Test Coverage (MTC) Design Verifier Formaler Nachweis von (Sicherheits-) Aussagen im Modell Plugin der Fa. Prover Technologies Statische WCET-Analyse Plugin der Fa. AbsInt 13
14 Implementierung mit SCADE
V-Modell nach EN 50128 Systemanforderungen Systemvalidierung Moduldesign Systemintegration Softwarevalidierung Integrationstest (+HW) Implementierung Softwareanforderungen Softwarearchitektur Modul tests Sys temarchitektur 15
Entwicklungsprozess mit SCADE Systemanforderungen Systemvalidierung Systemintegration Systemarchitektur Softwareanforderungen Correct-by-construction Modellvalidierung SCADE Design Verifier Modelltests SCADE Model Test Coverage SCADE Editor Softwarearchitektur Modelldesign Coding SCADE Qualified Code Generator 16
Einsparpotenziale bei Verwendung von SCADE (1) Einsparungen bei Verifikationsaktivitäten verschiedene Abstraktionsebenen (Designstufen, Code) stimmen stets überein (Schnittstellenkonformität, durch Werkzeug erzwungen) vor allem auch nach Änderungen! Design enthält in sich keine Widersprüche (vgl. Design mit UML oder Text!) formale Notation (eindeutige Semantik) Designdokumentation und Design stimmen stets überein Einsatz des Design Verifiers (z.b. für Sicherheitseigenschaften) erspart u.u. erhebliche Testaufwände soweit durch vorgegebene Normen unterstützt frühe Verifizierung durch Simulation ("Entwicklertests") Keine Modultests nötig ("low level testing activities") SCADE-Modelltests setzen auf dem gesamten Modell auf (Stimulation des Modells durch Eingaben in den Hauptknoten) Testen von Knoten der unter(st)en Ebene nur als Entwicklertests Kein aufwändiges Stubbing nötig (SCADE-Knoten viel leichter isolierbar und einzeln testbar) 17
Einsparpotenziale bei Verwendung von SCADE (2) Einsparungen bei Dokumentation Weitgehende Generierung von Designdokumenten aus annotiertem Designmodell Einfacher Nachweis der Traceability (Design -> Code) Einsparungen bei Codierung von nebenläufigem Verhalten Keine Aufwände für Synchronisierung Keine Probleme mit "race conditions", Nichtdeterminismus, Verhungern von Threads 18
INFORMATIK CONSULTING SYSTEMS AG Referenzfallstudie Bahnübergang
Referenzfallstudie Bahnübergang L. Jansen, E. Schnieder: Referenzfallstudie Verkehrsleittechnik: funkbasierte Bahnübergangssteuerung. Juli 2000 erstellt innerhalb des DFG-Schwerpunktprogramms "Integration von Techniken der SW- Spezifikation für ingenieurwissenschaftliche Anwendungen" basiert z.t. auf Lastenheft des funkbasierten Betriebsverfahrens FFB Kernfunktionen dezentrale Steuerung eines Bahnübergangs bei eingleisiger Eisenbahnstrecke Kommunikation über Mobilfunk (mit möglichen Latenzen und Nachrichtenverlust) Sicherung des BÜs durch Halbschranken und Lichtzeichen (gelb und rot) Überwachung einer maximal zulässigen Sperrzeit 20
Referenzfallstudie Bahnübergang Komponenten Zug mit Fahrzeugsteuerung Eigenortung Streckenatlas mit Positionen von Gefahrenpunkten Geschwindigkeitsüberwachung mit Bremskurve Bahnübergang mit Bahnübergangssicherungsanlage (BSA) Lichtzeichen (gelb und rot) Halbschranken Fahrzeugsensor Betriebszentrale 21
Referenzfallstudie Bahnübergang Reguläre Funktionsweise (Regelszenario) 1. Zug sendet Einschaltbefehl an BSA, BSA quittiert Empfang 2. BSA sichert BÜ (t=0: gelb, t=3s: rot, t=9s: Schranken schließen, t=15s: geschlossen) 3. Zug sendet Statusabfrage an BSA, BSA sendet Zustandsmeldung 4. Auslösung des Fahrzeugsensors hinter dem BÜ => Schranken öffnen, Lichtzeichen aus zu betrachtende Störungen Ausfall der gelben oder roten Lichtzeichen Ausfall der Halbschranken Ausfall des Fahrzeugsensors Verzögerung oder Verlust von Funktelegrammen 22
Modellierung mit SCADE SCADE-Modell Modellierung der Funktionalität durch Datenflüsse und Zustandsautomaten Simulation in SCADE-Umgebung möglich Generierung von effizientem C-Code durch SCADE-Codegenerator Modell-Ansteuerung kleiner C-Wrapper zum Aufruf des Modells und TCP-Verbindung zur Steuerung a) Steuerung durch GUI (mit oder ohne gleichzeitiger SCADE-Simulation) b) Steuerung durch Testszenario (z.b. mit Testwerkzeug SYMTES) BÜ-Modell (C) SCADE- Compiler Funktionsaufruf Wrapper (C) Status TCP-Verbindung Kommando GUI / Testszenario 23
24 Erzeugtes Code-Fragment
INFORMATIK CONSULTING SYSTEMS AG Praxisdemo Bild: [Frey2008]
INFORMATIK CONSULTING SYSTEMS AG Modellbasiertes Testen von Systemen mit SYMTES
Über SYMTES Produkt der ICS AG Start Entwicklung: 2000 SYMTES = SYstem-Modellierung und -TESt Modellierung, Simulation, Test Vollständig automatische Durchführung und Auswertung von Tests Simulation und Test von Basis verteilten, heterogenen Systemen / Systemkomponenten mit nachrichtenbasierter Kommunikation Anwendungsunabhängige Modellierungssprache SSL SSL-Compiler und Laufzeitsystem Diverse Hilfsmittel (Konverter, Editorunterstützung, Scenario Manager) 27
Motivation Besonderheiten verteilter Systeme Mehrere nebenläufige Prozesse Zeitabhängiges Verhalten ( race conditions, deadlocks ) Synchrone / Asynchrone Kommunikation Nachrichtenübermittlung Adressierung innerhalb verschiedener Bussysteme Marshalling - Bitgenaue Darstellung komplexer Typen Endianness - Reihenfolge der Bits und Bytes Protokolle Link Layer Transport Layer Application Layer(s) Datensicherheit Erkennen unberechtigter Datenmanipulationen Korrektur von Datenverfälschungen 28
SYMTES: Einsatzszenarien (1) Simulation Ablauffähiges Modell mit wesentlichem Funktionsumfang Schnittstellenexploration Erkunden des Verhaltens einer Systemkomponente Interaktiv oder automatisiert Interaktive Simulation / Test Interaktives Eingreifen in Simulation oder Test durch Benutzer z.b. willkürliches Einstreuen von Verfälschungen Funktionale Tests Eine oder einige wenige logisch abhängige Abläufe Klar definierte Randbedingungen Robustheitstests funktionale Tests mit unzulässigen Werten 29
SYMTES: Einsatzszenarien (2) Performance-Tests Reaktion auf Stimuli in vorgeschriebener Zeit Dauertests Wiederholter Test einzelner / weniger funktionaler Tests über einen längeren Zeitraum hinweg Lasttests Erzeugen von hoher Kommunikationslast Verteilte Testumgebung Rechner-HW unterstützt nicht alle Schnittstellen Ein Rechner kann Last nicht ausreichend produzieren Realitätsgetreue Verteilung (z.b. für Latenzzeiten) 30
SYMTES im V-Modell SRS Validation System Design System Test Software Requirements Subsystem Test Software Design Integration Test (Sub-) Systemtest Software Modul Design Modul Test Software Implementation 31
System Specification Language (SSL) Einordnung Streng typisierte Spezialsprache zur formalen Modellierung von Systemen und Systemteilen Fokus Simulation und Test Beschreibung der Struktur (Architektur) von Systemen Beschreibung reaktiver Verhaltensmuster Logisch asynchrone Kommunikation auf der Basis von Nachrichtenaustausch 32
System Specification Language (SSL) Grundbegriffe System Menge interagierender Objekte Objekt autonome, aktive logische Einheit Kommunikation zwischen Objekten über definierte Schnittstellen durch Nachrichtenaustausch Objekt1 Objekt3 Objekt2 Objekt4 33
System Specification Language (SSL) Beschreibung der Systemstruktur Verbindung logische Kommunikationsbeziehung zwischen zwei Objekten Protokoll (TCP, UDP, CAN, CORBA,...) Nachrichtentyp (Format auszutauschender Nachrichten) Ports (abhängig vom Protokoll) Angaben zur automatischen Verbindungssteuerung Distribution welche logischen Objekte sollen zu einem Prozess zusammengefasst werden? auf welcher Rechnereinheit soll dieser Prozess ausgeführt werden? 34
System Specification Language (SSL) Beschreibung des Systemverhaltens Definition des Verhaltens der Systemobjekte Alternativ als Sequenz von Aktionen > ablauffähiges Szenario extern > nicht simuliertes, reales Objekt operator > Objektverhalten interaktiv durch Benutzer (GUI) Beschreibungsmittel Zustände Ereignisse Empfang von Nachrichten (Musterbasiert) Änderung von Verbindungszuständen Zeitliche Ereignisse (Timeouts) Logische Verknüpfung Aktionen Versenden von Nachrichten Zustandswechsel Timer starten 35
SSL: Highlights Einfache, anwendungsnahe Syntax Leicht erlernbar Strenge Typisierung Eindeutige Datenbeschreibung, keine Mehrdeutigkeiten Umfangreiche Konsistenzprüfungen Offenbarung vieler Skriptfehler bereits durch den SSL-Compiler Systemstruktur (Statik) flexibel modellierbar Anwendungsnahe Datenmodellierung (Typdefinitionen in SSL) Einfache Beschreibung von Verbindungen zu externen Systemen einfache Anpassung an unterschiedlichste Kommunikationsprotokolle (TCP, CAN, Seriell, ) ohne Änderung der Verhaltensbeschreibung Import von Strukturbeschreibungen Definition verteilter Testumgebung / Simulation 36
SSL Beispiel Systemarchitektur type Code_T = {CONNECTREQ = 0x01, CONNECTACK = 0x81, } type Message = ( SeqNo: Byte, Code : Code_T, case Code of CONNECTREQ => ConnectReq_Data: (ISeq: Byte, ) CONNECTACK => ConnectAck_Data: ( ) ) connections CTR <-> IOC via: TCP type: Message distribute CTR on "localhost" IOC on "198.20.14.10" 37
SSL Beispiel Systemverhalten IOC CTR CONNECT(SeqNr) CONNACK(0, SeqNr) -- SSL scenario: successful connect sequence object IOC = extern -- Object under Test object CTR receive (SeqNumber@, CONNECTREQ, _) from IOC => send (0, CONNECTACK, (SeqNumber, )) to IOC 38
SSL Beispiel Testausführungs-Protokoll 11:40:14.972 ************************************************************ 11:40:14.972 Starting scenario "connect" on "localhost" (Windows_NT) for objects CTR 11:40:14.972 ************************************************************ 11:40:15.394 CTR: received (SeqNo => 123, Code => CONNECTREQ, ConnectReq_Data => (Station => 2, PID => 3, AID => 16, RID1 => 65, RID2 => 130, RID3 => 195))::Message from IOC 11:40:15.405 CTR: sending (SeqNo => 0, Code => CONNECTACK, ConnectAck_Data => (ISeq => 123, Err => 0, RID1 => 1, RID2 => 2, RID3 => 3))::Message to IOC 11:40:15.493 CTR: object terminating 11:40:15.520 ************************************************************ 11:40:15.520 08.06.2006: Stopping scenario "connect" 11:40:15.520 ************************************************************ 11:40:15.536 ************************************************************ 11:40:15.536 08.06.2006: Scenario "connect" on "localhost" terminated successfully 11:40:15.536 ************************************************************ 39
SYMTES: Infrastruktur SSL-Editor Szenario (SSL) Objekte (SSL) Bibliothek (SSL) Konfiguration (SSL) Rechner 1 SSL-Compiler Rechner n Szenario (Ada) Kernel Szenario (Ada) Ada-Compiler Szenario (Exe)... Ada-Compiler Szenario (Exe) Szenario (Log) Szenario (Log) 40
SYMTES: Komponenten System Specification Language Modellierungs- und Testsprache Runtime Kernel für Linux und Windows Standard-Adapter für Seriell (RS232), TCP, UDP, IP-Sniffing IO-Adapter Zusätzliche Adapter für CAN und Digital-IO Middleware-Adapter für CORBA Kundenspezifische Adapter Testmanager Scenario Manager für Testkampagnen Konverter SSL Import aus IDL, Ada SSL Export in UML und grafische Formate 41
SYMTES: Scenario Manager Organisation von Testkampagnen 42
SYMTES: Zusammenfassung Modellierung Ablauffähiges Modell / Simulation in sehr kurzer Zeit Schnittstellen Aktuell unterstützt: Seriell, TCP, UDP, CAN, IPM, CORBA, Digital-IO Automatische Serialisierung / Deserialisierung Leicht erweiterbar Protokollierung Automatisch, konfigurierbar, dynamisch anpassbar Generierter Code Effizient (Echtzeit-Verhalten, Stresstests) Portabel (getestet unter Windows, Linux) Anwendbarkeit Anwendungsunabhängig Nachrichtenbasierte Anwendungen mit klaren Schnittstellen zwischen Komponenten Spezifikation der funktionalen Tests in SSL auf der Basis der Anwenderforderungen Simulation / Systematischer Test von ganzen Systemen, Subsystemen oder einzelnen Systemkomponenten 43
INFORMATIK CONSULTING SYSTEMS AG Entwicklung eines sicheren digitalen Übertragungssystems
Projektdefinition Digitales Übertragungssystem zur Übertragung sicherheitsrelevanter Daten der Leit- und Sicherungstechnik (LST) gemäß Lastenheft DB Aufgaben ICS Erstellung Planungsdokumente gemäß EN 50128 Durchführung von RAMS-Aktivitäten Modellbasierte SW-Entwicklung (SCADE 5.1) auf Basis der vom Kunden gelieferten Spezifikationen SW / HW Integration Modellverifikation (MTC) Produkttest für das gesamte Produkt gegen die Systemanforderungen Validierung des Systems entsprechend der EN 50128 und EN 50129 Begutachtung der Software auf Basis der EN 50128 Zulassungsunterstützung für die Zulassung durch EBA 45
Einsatz von SCADE möglichst großen Anteil der Software mit SCADE entwickeln Nutzung des zertifizierten SCADE-Codegenerators Spart Kosten im SW Lifecycle ein, da die Verifikation bei einem zugelassenen Codegenerator auf Modellebene erfolgen kann und nicht auf Codeebene erfolgen muss Ausgerichtet auf die Entwicklung sicherheitskritischer Systeme Codebezogene Dokumentation und Prüfungen für Modell entfallen Beseitigung der größten Fehlerquelle (Coding) Design, Code und Dokumentation sind immer konsistent Schnelle Erstellung eines funktionsfähigen Modells Frühe Verifikation im Modell mit durchgängigem Werkzeug Keine offensichtlichen Risiken Ziele bezüglich SCADE-Einsatz Verkürzung der Entwicklungszeit Höhere Software-Qualität 46
Projektübersicht Zielsetzung: Softwareentwicklung für ein sicheres Übertragungssystem für Stellwerkssignale (SIL 4) Systemgrenzen z.b. Relais 8 8 8 8 Modem ISDN 0..30 km Modem 8 8 8 8 z.b. Relais Systemarchitektur 2 verbundene Einheiten (Duplexübertragung) Jede Einheit mit 1..4 redundanten Subsystemen 16 bit Mikrocontroller Software Functionality Sichere Übertragung zw. verbundenen Einheiten Sichere Übertragung zw. Subsystemen jeder Einheit und µcs jedes Subsystems Zyklische HW-Überwachung inkl. Online- Tests von CPU, RAM, ROM 47
Ansatz zur Anpassung des Entwicklungsprozesses Zielsetzung: Modellbasierte Entwicklung mit SCADE 5.1 Einschränkung: handgeschriebene Basisfunktionen ( Wrapper ) benötigt (kein Betriebssystem verwendet!) Ansatz: V-Modell aufteilen in modellbasierten Zweig und konventionellen Zweig SW Requirements SW Architecture SW system test Integration test Model design application Code generation Model test application Modellbasierte Entwicklung von Anwendungs -Modulen mit SCADE Detail design wrapper Coding wrapper Module test wrapper Konventionelle Entwicklung von von Wrapper -Modulen in C 48
Anpassung des Entwicklungsprozesses Features SW-Entwicklung: Modellentwurf der Anwendung mit SCADE (kein Coding!) SW-Funktionalität: ~80% modellbasierte Module, ~20% Wrappermodule SW-Verifikation: Modellbasierte Techniken für Anwendungsmodule Testen des Modells in SCADE Simulationsumgebung MTC (Model Test Coverage) als Testüberdeckungskriterium Statische Analyse der Modellkonsistenz Review auf Übereinstimmung mit definierten Modellierungsregeln Aber: Wrapper- und Integrationstests konventionell Unterstützende Prozesse: Verwendung etablierter Prozesse Projektmanagement, CM, DM, Validation, QAM, RAMS, Assessment Basis: Klare Abgrenzung zwischen modellbasierter und konventioneller Entwicklung! 49
4 1 1 1 1 NO_CAN_M ESSAGE NO_SERIAL _MESSAGE 5 Testarchitektur Report FBY NO_CAN_ MESSAGE FBY NO_SERIAL _MESSAGE Signal_Relay s_in Signal_Relay s_out_a Signal_Relay s_in Signal_Relays_Out_B Test_HW_Error Diagnostic_Out Test_HW_Error TCL scenarios SCADE simulator Test_Peripheries_Error EC_In Diagnostic_In Channel FBY FBY LED1_Out LED2_Out LED3_Out EC_Out Test_Peripheries_Error EC_In Diagnostic_In Channel HW_Watchdog_Interrupt Trigger_Read_Inputs_Interrupt HW_Watchdog_Interrupt Modelltest Error_Log_Is_Empty true Signal_Relay s_out_read_back Error1 Reset_HW_Watchdog Set_Dynamic_Signal Error_Log_Is_Empty f alse Signal_Relay s_out_read_back Error2 1 1 1 t_ids Erase_Error_Log 2 2 t_ids 2 SRS Integrations- & Systemtest SCADE Code-Generator SSL scenarios I/O-Controller code (C) Report I/O-Wrapper (C) 50
Modelltest TCL Szenarios automatisierte Testdurchführung und -auswertung reset "life tick seqnr after reconnect" source TL_Go_Operational.tcl cycle checkvars Msg_Out [Create_Connect 0] for {set i 1} {$i <= 2} {incr i} { cycle 50 checkvars Msg_Out [Create_Connect $i] } cycle 20 setfornextcycle Msg_In [Create_ConnAck 1 2] cycle 3 checkvars Msg_Out [Create_Indication 3...] Nachbarkanalkommunikation Simulation aufwendig Definiere Controller-Knoten durch Rückkopplung zweier Channel- Instanzen 51
Integrations- / Systemtest Anforderungsbasierter Black-Box-Test Schnittstellen: 2 x Seriell, 4 x Digital-I/O, 8 x CAN Einsatz von SYMTES / SSL Integrationstests in mehreren Stufen (Bottom-Up) Automatisierte Ausführung und Auswertung der SSL-Szenarien Regressionstests Einsatz des Scenario Managers 52
Probleme (1) Nachträgliches Auslagern performancekritischer Teile Unterschiedliche Anforderungen an Antwortzeitverhalten / Zykluszeit In Summe wurden 5 SCADE Modelle und 7 Wrapper-Teile implementiert CRC Berechnung war nicht optimierbar: einige 100 Variablen im Stack benötigt CRC Berechnung wurde in Wrapper ausgelagert Beim Sortieren der CAN-Frames in SCADE werden Variablen kopiert, statt Zeiger zu versetzen Sortierung wurde in Wrapper ausgelagert SCADE wurde nur zum Dekodieren benutzt 53
Probleme (2) Einschränkungen in SCADE 5 Verwendung von Arrays umständlich keine dynamische Indizierung, kein Slicing Codegenerierung für Zustandsautomaten in Version 5 nicht zertifiziert Modellierung durch Datenflüsse etwas umständlicher besondere Aufwände für Modellierung mit SCADE Datenflussansatz erfordert Umdenken grafische Modellierung z.t. umständlicher als textuelle Programmierung Ausdrücke (x*y + 3 > z) Layout SCADE 6 wäre hilfreich gewesen 54
Ergebnisse Weniger Aufwand und höhere Qualität für Modulentwicklung Trotz Neuheit des Entwicklungsansatzes Effizienz von Modellierung und Modelltest > Effizienz von Feinentwurf + Coding + Modultest Modulentwicklung ist aber nur eine Phase von vielen! 50 50 45 40 35 30 25 25 20 15 10 5 0 0 conventional conventional approach approach model-based development approach Test module test Design module design and realization Weniger Aufwand für Modultests und Verifikation des Quellcodes Hoher Automatisierungsgrad bei Modelltests und -analyse Bemerkung: Modelltestspezifikation anspruchsvoller als Modultestspezifikation Bemerkung: Klare Abgrenzung zwischen modellbasiert und konventionell entwickelten Anteilen essenziell für Verifikationsstrategie System zugelassen vom Eisenbahnbundesamt! 55
Lessons Learned (1) Gute Wartbarkeit Re- und Umstrukturierungen einfacher als bei konventionellem Vorgehen Bei neuen Anforderungen / Change Requests können Änderungen leichter zugeordnet werden Threads / Scheduling Analysen der zeitlichen Vorhersagbarkeit SCADE generiert C-Funktionen ohne Threads Sequenzialisierung der Datenflüsse deterministischer Programmcode Worst-Case Übertragungszeit für Gesamtsystem einfach(er) berechenbar im Vergleich zu Prozess / Thread orientiertem Entwurf mit Scheduler Geringerer Testaufwand in der Validierung Maximale Zykluszeit nur empirisch ermittelbar 56
Lessons Learned (2) Erzielte Produktqualität sehr hoch Hohe Qualität der modellbasiert entwickelten Software erhöht die Projekteffizienz Sehr niedrige Software-Fehlerrate während Systemtest und Feldtest sehr niedrige Zahl kostenaufwändiger Fehlerkorrekturen Testansatz nicht optimal Redundante Arbeiten für Modell- und Systemtest TCL-basierter Modelltest ist zeitaufwändig und änderungsintensiv (z.b. erwartete Reaktionen zu genau definierten Zyklen) Lösungsansatz: Testfallgenerierung aus Testmodell 57
Zusammenfassung SCADE ist ausgereiftes Werkzeug Schnelle Einarbeitung Intuitive Bedienbarkeit Gute Stabilität Guter Support Eignung auch im µc-umfeld schlankes Code-Image einfache Handhabung, da kein Multithreading im generierten C-Code Einsparpotenziale Schnelle Erstellung eines funktionsfähigen Modells Codebezogene Dokumentation und Prüfungen entfallen Frühe Verifikation im Modell mit durchgängigem Werkzeug Frühe Validation auf Modellebene Schnelle, zuverlässige Korrekturzyklen Design, Code und Dokumentation sind immer konsistent kein Bruch zwischen Anforderungen, Design und Coding 58
Ausblick Mit Einsatz von SCADE ist eine signifikante Aufwandsreduzierung erzielbar Entwicklungsaufwand reduzierbar um bis zu 30% Testaufwand (Modelltest / Modultest + SW-Integration) reduzierbar um bis zu 60% Entsprechende Erfahrung in Anwendung von SCADE notwendig, um Einsparpotentiale voll auszuschöpfen Für die ICS als Engineering-Company entwickelt sich SCADE zur kleinen Erfolgsgeschichte im Bahnbereich Akuelle Projekte mit SCADE 6 laufen, Entwicklungsmethode scheint sich zu etablieren 59
INFORMATIK CONSULTING SYSTEMS AG Herzlichen Dank für Ihre Aufmerksamkeit!