60
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

Modellbasierte Entwicklung und Test sicherheitskritischer ...€¦ · Grafischer Editor Datenmodellierung (Strukturen, Arrays, Aufzählungstypen) Datenfluss- (Block-) Diagramme Safe

  • Upload
    others

  • View
    13

  • Download
    0

Embed Size (px)

Citation preview

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

INFORMATIK ▪ CONSULTING ▪ SYSTEMS AG

Kurzvorstellung ICS AG

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

INFORMATIK ▪ CONSULTING ▪ SYSTEMS AG

Modellbasierte Entwicklung mit SCADE

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

14

Implementierung mit SCADE

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

INFORMATIK ▪ CONSULTING ▪ SYSTEMS AG

Referenzfallstudie Bahnübergang

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

24

Erzeugtes Code-Fragment

INFORMATIK ▪ CONSULTING ▪ SYSTEMS AG

Praxisdemo

Bild: [Frey2008]

INFORMATIK ▪ CONSULTING ▪ SYSTEMS AG

Modellbasiertes Testen von Systemen mit SYMTES ®

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

42

SYMTES: Scenario Manager

� Organisation von Testkampagnen

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

INFORMATIK ▪ CONSULTING ▪ SYSTEMS AG

Entwicklung eines sicheren digitalen Übertragungssystems

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

INFORMATIK ▪ CONSULTING ▪ SYSTEMS AG

Herzlichen Dank für Ihre Aufmerksamkeit!