Modellbasierte Entwicklung und Test sicherheitskritischer ...€¦ · Grafischer Editor...
Transcript of Modellbasierte Entwicklung und Test sicherheitskritischer ...€¦ · Grafischer Editor...
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
2
Agenda
─ Kurzvorstellung ICS AG
─ Modellbasierte Entwicklung mit SCADE
─ Demo: Referenzfallstudie Bahnübergang
─ Modellbasiertes Testen von Systemen mit SYMTES
─ Projektvorstellung: Entwicklung eines digitalen Übe rtragungssystems
�
4
Standorte
Hauptsitz Stuttgart
Sonnenbergstraße 1370184 StuttgartTel.: +49 711 21037 - 00Fax: +49 711 21037 - 53
Geschäftsstelle Berlin
Rother Straße 1810245 BerlinTel.: +49 30 20687 - 262Fax: +49 30 20687 - 375
Geschäftsstelle Leipzig
Marschnerstraße 304109 LeipzigTel.: +49 341 98250 - 10Fax: +49 341 98250 - 11
Geschäftsstelle Ulm
Sedanstraße 14 89077 Ulm Tel.: +49 731 93579 - 325 Fax: +49 731 93579 - 327
Geschäftsstelle Braunschweig
Salzdahlumer Straße 19638126 BraunschweigTel.: +49 531 26306 - 33Fax: +49 531 28503 - 46
Geschäftsstelle Immenstaad
Ziegelei 588090 ImmenstadTel.: +49 7545 94996 - 0Fax: +49 7545 94996 - 29
Geschäftsstelle München
Lise-Meitner-Straße 138126 UnterschleißheimTel.: +49 89 203504 - 70Fax: +49 89 203504 - 69
5
Philosophie
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
Betreuen
� Maintenance von Software und Systemen
Partner für den gesamten Produkt Life Cycle
SystemTest
SystemTest
SystemTest
SystemTest
SystemTest
SystemTest
SystemTest
SystemTest
SystemTest
6
Aerospace & Defence
Onboard Systems
� Missionsplanungs- und Managementsysteme
� Aufklärungssysteme
� Selbstschutzsysteme
� Steuerungssysteme
� Radarsysteme
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
7
Industrial Solutions
Competence Centers
FertigungslogistikInfrastructure
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
8
Transportation
Competence Centers
Systems EngineeringSoftware Development
Verification & TestValidation
RAMSAssessment
Applikationen:
� Leit- und Sicherungstechnik
� Schienenfahrzeugtechnik
Engineering
� Systems & Safety Engineering
� Software Design und Development
Verification & Validation
� Analytische Verifikation
� Testmanagement und -processing
� Testautomatisierung, Test-Tools
� Soft- und Hardware-Validierung
RAM und Safety Management
� RAMS und funktionale Sicherheit
� System- und Fehleranalysen (FMEA, FTA, HAZOP)
� Sicherheitsnachweise, Cross Acceptance
� Kunden- und Realisierungsprojekte (Customer Order Fulfillment)
Assessment
� Systembegutachtung
� Beratung und Unterstützung bei Zulassungsfragen
� Schnittstelle zur Zulassungsbehörde
9
Methods-Processes-Tools (MPT)
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
Werkzeuge und Methoden:
� Tool-Evaluierung (Anwendbarkeit, Performance)
� Software Engineering (z. B. Modellbasierte Entwicklung)
� Statische Codeanalysen
� Simulation & Test (z.B. anforderungsbasiertes Testen,
Testautomatisierung)
Projektmanagement:
� Projektplanung, -steuerung und -fortschrittskontrolle
� Aufwandsabschätzungen
� Risikomanagement
� Auswertungen und Reports
� Tooleinsatz wie MS-Project, Primavera
� Coaching der Stakeholder
11
� 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
SCADE Suite
12
SCADE
� Zyklisches Ausführungsmodell
loopWait clock/eventRead sensorsCompute outputsWrite actuators
end loop
13
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
15
V-Modell nach EN 50128
System-anforderungen
System-validierung
System-architektur
Implemen-tierung
Software-anforderungen
Software-architektur
Modul-design
System-integration
Software-validierung
Integrations-test (+HW)
Modultests
16
Entwicklungsprozess mit SCADE
System-anforderungen
System-validierung
Modell-validierung
SCADE Design Verifier
SCADE Editor
„Coding“
SCADE Qualified Code Generator
SCADE Model Test Coverage
Modell-tests
System-integration
System-architektur
Software-anforderungen
Software-architektur
Modell-design
Correct-by-construction
17
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)
18
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
20
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
21
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
22
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
23
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)
Wrapper (C)
BÜ-Modell (C)
GUI / Testszenario
Funktionsaufruf
SCADE-Compiler
Status
Kommando
TCP-Verbindung
27
Ü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
� verteilten, heterogenen Systemen / Systemkomponenten
� mit nachrichtenbasierter Kommunikation
� Basis
� Anwendungsunabhängige Modellierungssprache „SSL“
� SSL-Compiler und Laufzeitsystem
� Diverse Hilfsmittel
(Konverter, Editorunterstützung, Scenario Manager)
28
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
29
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
30
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)
31
SYMTES im V-Modell
(Sub-) Systemtest
SRS
Software Design
Software ModulDesign
Software Requirements
Software Implementation
System Design
Validation
System Test
Subsystem Test
Integration Test
Modul Test
32
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
33
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
34
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?
35
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
36
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
37
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: (…)…
)
connectionsCTR <-> IOC via: TCP type: Message
distributeCTR on "localhost"IOC on "198.20.14.10"
38
SSL Beispiel – Systemverhalten
-- SSL scenario: successful connect sequence
object IOC = extern -- Object under Test
object CTRreceive (SeqNumber@, CONNECTREQ, _) from IOC
=> send (0, CONNECTACK, (SeqNumber, …)) to IOC
IOC CTR
CONNECT(SeqNr)
CONNACK(0, SeqNr)
IOC CTR
CONNECT(SeqNr)
CONNACK(0, SeqNr)
39
SSL Beispiel – Testausführungs-Protokoll
11:40:14.972 ************************************************************11:40:14.972 Starting scenario "connect" on "localhost" (Windows_NT) for objects CTR11: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 successfully11:40:15.536 ************************************************************
40
Szenario (Ada)
Ada-Compiler
KernelSzenario (Ada)
Szenario (Exe)
Szenario (Log)
Ada-Compiler
Szenario (Exe)
Szenario (Log)
Rechner 1 Rechner n
...
SYMTES: Infrastruktur
SSL-Editor
SSL-Compiler
Objekte (SSL) Konfiguration (SSL)Bibliothek (SSL)
Szenario (SSL)
41
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
43
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
45
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
46
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
47
Projektübersicht
Zielsetzung: Softwareentwicklung für ein sicheres Übertragungssystem für Stellwerkssignale (SIL 4)
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 …
Mod
em
Mod
em
8
z.B
.Rel
ais
ISDN8
8
8
8
z.B
.Rel
ais
8
8
80..30 km
Systemgrenzen
48
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
Detail design “wrapper” Konventionelle Entwicklung
von von “Wrapper”-Modulenin C
Module test “wrapper”
Coding “wrapper”
Model design “application”
Model test“application”
Code generation
Modellbasierte Entwicklungvon “Anwendungs”-Modulenmit SCADE
SW Architecture
SW Requirements
Integration test
SW system test
49
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!
50
Testarchitektur
SRS
SCADEsimulator
Error2Error1
Signal_Relays_Out_B
EC_Out
Diagnostic_Out
Signal_Relay s_Out_A
Erase_Error_Log
Set_Dynamic_Signal
Reset_HW_Watchdog
Trigger_Read_Inputs_Interrupt
2t_IDs
22
111
t_IDs
Signal_Relay s_Out_Read_BackSignal_Relay s_Out_Read_Back
FBY
1NO_SERIAL_MESSAGE
FBY
1NO_CAN_MESSAGE
FBY
1NO_SERIAL_MESSAGE
FBY
1NO_CAN_M
ESSAGE
LED3_Out
LED2_Out
LED1_Out
Diagnostic_In
HW_Watchdog_Interrupt
Diagnostic_In
HW_Watchdog_Interrupt
Error_Log_Is_EmptyError_Log_Is_Empty
f alsetrue
Test_Peripheries_Error
EC_In
Test_HW_Error
Signal_Relay s_In
EC_In
Test_Peripheries_Error
Test_HW_Error
Signal_Relay s_In
5
Channel
4
Channel
TCL scenarios
SSL scenarios
SCADE Code-Generator
Report
Report
I/O-Controller code (C)
I/O-Wrapper (C)
Modelltest
Integrations- & Systemtest
51
Modelltest
� TCL Szenarios
� automatisierte Testdurchführung
und -auswertung
� Nachbarkanalkommunikation
� Simulation aufwendig
� Definiere Controller-Knoten durch
Rückkopplung zweier Channel-
Instanzen
reset "life tick seqNr after reconnect"source TL_Go_Operational.tclcyclecheckVars Msg_Out [Create_Connect 0]for {set i 1} {$i <= 2} {incr i} {
cycle 50checkVars Msg_Out [Create_Connect $i]
}cycle 20setForNextCycle Msg_In [Create_ConnAck 1 2]cycle 3checkVars Msg_Out [Create_Indication 3 ...]
52
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
53
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
54
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
55
� 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!
Ergebnisse
� 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
conventionalapproach model based
development
Design
Test
0
5
10
15
20
25
30
35
40
45
50
conventional approach model-based
approach
module design and realization
module test
50
25
0
���� System zugelassen vom Eisenbahnbundesamt!
56
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
57
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
58
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
59
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