26
BSSE System and Software Engineering Mehr Effizienz Mehr Effizienz durch skalierbare und selbst-adaptierende durch skalierbare und selbst-adaptierende automatische automatische Softwareentwicklungsprozesse Softwareentwicklungsprozesse Rainer Gerlich BSSE System and Software Engineering 2. Raumfahrttechnologietage 2003 DLR, Bonn, 4.-5. November 2003 Dr. Rainer Gerlich Tel. +49/7545/91.12.58 Auf dem Ruhbühl 181 Fax +49/7545/91.12.40 88090 Immenstaad Mobil +49/171/80.20.659 Germany e-mail [email protected] © Copyright Dr. Rainer Gerlich BSSE System and Software Engineering 2003 All Rights Reserved

Mehr Effizienz durch skalierbare und selbst-adaptierende ... file7 BSSE System and Software Engineering Examples (PC-800MHz) distributed real-time systems two processor system (space),

Embed Size (px)

Citation preview

Page 1: Mehr Effizienz durch skalierbare und selbst-adaptierende ... file7 BSSE System and Software Engineering Examples (PC-800MHz) distributed real-time systems two processor system (space),

BSSE System and Software Engineering

Mehr EffizienzMehr Effizienz

durch skalierbare und selbst-adaptierendedurch skalierbare und selbst-adaptierendeautomatische automatische SoftwareentwicklungsprozesseSoftwareentwicklungsprozesse

Rainer GerlichBSSE System and Software Engineering

2. Raumfahrttechnologietage 2003DLR, Bonn, 4.-5. November 2003

Dr. Rainer Gerlich Tel. +49/7545/91.12.58Auf dem Ruhbühl 181 Fax +49/7545/91.12.4088090 Immenstaad Mobil +49/171/80.20.659Germany e-mail [email protected]

© Copyright Dr. Rainer Gerlich BSSE System and Software Engineering 2003 All Rights Reserved

Page 2: Mehr Effizienz durch skalierbare und selbst-adaptierende ... file7 BSSE System and Software Engineering Examples (PC-800MHz) distributed real-time systems two processor system (space),

2

BSSE System and Software Engineering

InhaltInhalt

� Automatische Software Produktion

� Prozessoptimierung

Page 3: Mehr Effizienz durch skalierbare und selbst-adaptierende ... file7 BSSE System and Software Engineering Examples (PC-800MHz) distributed real-time systems two processor system (space),

3

BSSE System and Software Engineering

Automatische Software ProduktionAutomatische Software Produktion

Page 4: Mehr Effizienz durch skalierbare und selbst-adaptierende ... file7 BSSE System and Software Engineering Examples (PC-800MHz) distributed real-time systems two processor system (space),

4

BSSE System and Software Engineering

Begriffsklärung Begriffsklärung “Automation”“Automation”� Teil- vs. Vollautomatisierung� Teilautomatisierung

� nur einzelne Schritte automatisiert, noch hoher manueller Aufwand� ~ 1:1 Umsetzung Grafik in Quellcode� Testausführung, aber keine Testfallerzeugung� V&V kaum abgedeckt

� Vollautomation� Umsetzung von systemtechnischen Anforderungen

in ausführbare Software mit Test, V&V ohne Softwarekenntnisse� automatische Testfallerzeugung und Testdurchführung

� → 10 .. 20 fache Produktivitätssteigerung� hohe und gleichbleibende Qualität (x100)� kurze Entwicklungszyklen

Page 5: Mehr Effizienz durch skalierbare und selbst-adaptierende ... file7 BSSE System and Software Engineering Examples (PC-800MHz) distributed real-time systems two processor system (space),

5

BSSE System and Software Engineering

ASaPASaP Improvements Improvements

� Automated Software Production and Test (ASaP)

� Productivity 1 PC-hour 16,000 .. 1,600,000 LOC

1 .. 100 man-years (my)1600 mh/my 10 LOC / mh

� Bug Rate ≈ 0 .. 10-5 / LOC

� State-Of-The-Art

� Productivity: 1 man-hour 0.1 .. 10 LOC

� Bug Rate typical: 10-2/ LOC

very good: 10-3/ LOC N.E.Fenton, 2000

Page 6: Mehr Effizienz durch skalierbare und selbst-adaptierende ... file7 BSSE System and Software Engineering Examples (PC-800MHz) distributed real-time systems two processor system (space),

6

BSSE System and Software Engineering

Ergebnisse bei Einsatz von Ergebnisse bei Einsatz von AutomationAutomation

� verteiltes Echtzeitsystem (Material Science Laboratory, ISS)

� innerhalb 5 Minuten Äquivalent von ca. 5 Mann-Jahren (MJ)

� 80,000 LOC (Gesamtgröße: 200,000 LOC)

� verteilte, synchronisierte Datenbank

� innerhalb 5 Minuten Äquivalent von etwa 1 MJ +

� 16,000 LOC und mehr

� Operationen auf Datentypen, Schnittstellen etc.

� innerhalb 1 Minute Äquivalent von etwa 2 MJ

ca. 100 MJ pro PC-Stunde

Page 7: Mehr Effizienz durch skalierbare und selbst-adaptierende ... file7 BSSE System and Software Engineering Examples (PC-800MHz) distributed real-time systems two processor system (space),

7

BSSE System and Software Engineering

Examples Examples (PC-800MHz)(PC-800MHz)

� distributed real-time systems� two processor system (space), 10 minutes� 16-processor system (nuclear power plant), 10 minutes

� data processing� distributed synchronised database, ~ 600 Items 10 minutes� telecommanding, data acquisition to telemetry frame generation

� interfaces� language adaption, ~600 functions, 3 minutes

stack alignment, parameter and type transformation� GUIs from type definitions some seconds to minutes

� complementary functionality� training facility for library, 600 functions, 4000 files, 3 minutes

� documentation� 1500 graphics, 500 pages, RTF, 10 minutes� automated merge with additional user descriptions

Page 8: Mehr Effizienz durch skalierbare und selbst-adaptierende ... file7 BSSE System and Software Engineering Examples (PC-800MHz) distributed real-time systems two processor system (space),

8

BSSE System and Software Engineering

Incremental System Development Cycle of ASaP

User InputsASaP Software

TemplatesUtilities

Source CodeHost/Target

Libraries

Executable Distributed Code

Automated Execution

Environment

Automated Reporting

Result Evaluation

Structural

Behavioural&

Refinements

FunctionalRefinements

Automated Distribution

Experience

Organsiation

User Interaction

Automation

+

Feedback

Automated Production

Visualisation of Properties

Page 9: Mehr Effizienz durch skalierbare und selbst-adaptierende ... file7 BSSE System and Software Engineering Examples (PC-800MHz) distributed real-time systems two processor system (space),

9

BSSE System and Software Engineering

HistorieHistorie� ESTEC Anforderungen 1992

� frühzeitige System- / Entwurfsvalidierung „embedded Systems“� Minimierung Entwicklungsrisiko für neue Architekturen� „deep space“ ....� funktional, Performance, Exception Handling

� Stufe 1: Übungsphase„Zuverlässigkeit“� TRP-Studien basierend auf Simulation und weitere Arbeiten� Ergebnis: Simulation nicht hilfreich bei dieser Art von Software� geringer Aufwand → nicht genügend repräsentativ� hoher Aufwand → repräsentativ, aber kein Vorteil

� Stufe 2: Optimierungsphase„Zuverlässigkeit und Wirtschaftlichkeit“� Einsatz in realen Projekten, Feedback, Benchmarking

Page 10: Mehr Effizienz durch skalierbare und selbst-adaptierende ... file7 BSSE System and Software Engineering Examples (PC-800MHz) distributed real-time systems two processor system (space),

10

BSSE System and Software Engineering

OptimierungsphaseOptimierungsphase

� Problem Technologieoptimierung� repräsentative Umgebung notwendig: Druck wie im realen Projekt� aber: Projektleiter scheuen Risiko für neue Technologie� fehlender Marktdruck: Einführung und Optimierung sehr schwierig

auch bei „Raumfahrt-Prime“

� BSSE Lösung� Kombination: Technologie und Projekte in einer Hand� kurze Innovationszyklen� großer Fortschritt durch kleine Schritte

� Technology Transfer Programme (TTP)� mehr Projekte als in Raumfahrt, Diversifizierung� sichtbarer Fortschritt� möglicherweise Rücktransfer in Raumfahrt

Page 11: Mehr Effizienz durch skalierbare und selbst-adaptierende ... file7 BSSE System and Software Engineering Examples (PC-800MHz) distributed real-time systems two processor system (space),

11

BSSE System and Software Engineering

AnwendungsbereicheAnwendungsbereiche� Anfang in Raumfahrt

� höhere Zuverlässigkeit� höhere Kosten akzeptiert� zusätzliche Entwicklungszeit akzeptiert� Erwartung: Einsparung durch weniger Fehlschläge

� aktueller Status� höhere Zuverlässigkeit� niedrigere Kosten� kürzere Entwicklungszeit

� Anwendungsbereiche� Anfang mit „embedded systems“� allmähliche Erschließung weiterer Bereiche� vollständige Testautomation für „legacy software“� automatische Portierung von legacy software� GUIs, Interfaceanpassungen, „Bridging“

Page 12: Mehr Effizienz durch skalierbare und selbst-adaptierende ... file7 BSSE System and Software Engineering Examples (PC-800MHz) distributed real-time systems two processor system (space),

12

BSSE System and Software Engineering

Abstraktion der VorgehensweiseAbstraktion der Vorgehensweise

� Automatische Software Produktion, Test, V&V„ASaP“� Umsetzung von systemtechnischen Anforderungen� Ergebnis: korrekte Software mit nachweisbaren Eigenschaften

� Abstraktion� Brücken bauen zwischen verschiedenen Welten� Welt des Anforderers (z.B. Systemingenieur)� Ziel des Anforderers (z.B. Software)� Anforderer kann Ziel erreichen, ohne Kenntnisse über

Umsetzung zu benötigen� Vorteile

� weniger Risiko� kurze Zyklen� höhere Qualität durch reproduzierbaren Produktionsprozess� geringere Kosten

Page 13: Mehr Effizienz durch skalierbare und selbst-adaptierende ... file7 BSSE System and Software Engineering Examples (PC-800MHz) distributed real-time systems two processor system (space),

13

BSSE System and Software Engineering

Anwendungsbeispiele Anwendungsbeispiele (1/2)(1/2)

� Embedded Systems� MSL / ISS: Material Science Laboratory

� CADIS: verteiltes, fehlertolerantes System (Telekommunikation)

� CS3: Energietechnik (KKW)

� Algorithmen� Typ-Hierarchiebaum

Template ⇒ alle benötigten Instanzen für alle Typen

� Adaptierung� Interpreter ⇔ C

� Funktionale Interfaces ⇔ Traningsumgebung

� Datenformate (Ground Segment)

� Benutzeroberflächen / GUIs

Page 14: Mehr Effizienz durch skalierbare und selbst-adaptierende ... file7 BSSE System and Software Engineering Examples (PC-800MHz) distributed real-time systems two processor system (space),

14

BSSE System and Software Engineering

Anwendungsbeispiele Anwendungsbeispiele (2/2)(2/2)

� Medizintechnik� Verifikationsverfahren (Testfallerzeugung, fault injection)� skalierbare Systeme

� Datenbanken� Abdeckung aller SQL-Komponenten + GUI

� Systemauslegung� Kleinserien: kundenspezifische Anforderungen umsetzen� kleine Betriebe: Auslegung komplexerer Systeme ermöglichen

� Portierung� PDP / PEARL ⇒ SPS oder C� Ada ⇒ C

Page 15: Mehr Effizienz durch skalierbare und selbst-adaptierende ... file7 BSSE System and Software Engineering Examples (PC-800MHz) distributed real-time systems two processor system (space),

15

BSSE System and Software Engineering

Inputs in User Notation and Derived Output (MSL Database)Inputs in User Notation and Derived Output (MSL Database)

Name of Signal Data Type Input Range Physical Range Acqui. Rate HW Module Calibration TypeCFDdrive_pot REAL32 0 - 10V 0 - 200 mm 100 ASM F1 FctASM1_StdCFDrot_pot1 REAL32 0 - 10V 0 - 360 ° 100 ASM F1 FctASM1_StdCFDrot_pot2 REAL32 0 - 10V 0 - 360 ° 100 ASM F1 FctASM1_StdCF_reg_v_pot REAL32 0 - 10V 0 - 270 ° 10 ASM F1 FctASM1_StdGS_press_low REAL32 0 - 10 V 0 - 2 bar abs. 10 ASM F1 FctASM1_StdCFVpenn_chamb REAL32 0 - 10 V 1.e-7 - 1000 mbar 1 ASM F1 FctASM1_PressureVGSpenning_ms REAL32 0 - 10 V 1.e-7 - 1000 mbar 1 ASM F1 FctASM1_Pressure

T_database_entry MSL_db_desc[]={{

/* address in DB */ (int*)&MSL_db.LRT_HK_A1.CFDdrive_pot,/* offset in DB */ (int)CFDdrive_potDBoff,/* #samples */ 100,/* size of data type */ sizeof(REAL32),/* id of type */ 7,/* copy DB data */ 0,/* calibration function */ {(int*)FctASM1_Std_CFDdrive_pot,/* supervision structure */ {/* SV function */ (int*)&limChckREAL32,/* limit definitions */ CFDdrive_pot_suarr,

}},

/* post-processing function */ {(int*)NULL}},

Page 16: Mehr Effizienz durch skalierbare und selbst-adaptierende ... file7 BSSE System and Software Engineering Examples (PC-800MHz) distributed real-time systems two processor system (space),

16

BSSE System and Software Engineering

Automated Generation of Database-Software (MSL/ISS)Automated Generation of Database-Software (MSL/ISS)

System Processing

LimitMonitoring

Post-Processing

Hardware Interface

Memory-Mapped I/O

Sensors Actuators

Boards and Modules

Firmware

Telemetry Handling

Ground Control

Data Acquisition

Calibration

Software fromSpreadsheet

Software fromSpreadsheet

Database

Telecommanding Softwarefrom Spreadsheet

Page 17: Mehr Effizienz durch skalierbare und selbst-adaptierende ... file7 BSSE System and Software Engineering Examples (PC-800MHz) distributed real-time systems two processor system (space),

17

BSSE System and Software Engineering

ProzessoptimierungProzessoptimierung

Page 18: Mehr Effizienz durch skalierbare und selbst-adaptierende ... file7 BSSE System and Software Engineering Examples (PC-800MHz) distributed real-time systems two processor system (space),

18

BSSE System and Software Engineering

Example: Distributed Real-Time System (MSL / ISS)Example: Distributed Real-Time System (MSL / ISS)

heaters

FCU

MIL-Bus

Seebeckmeasure.

unitPyrometerUltrasonic

DeviceWaterpump

package

MIL-Bus M-Mod.(RTU)

SPLC

PSU

5 xRS422

SPLC

MIL-BusM- Mod. on

Dig. I/O (BC)

MIL-bus

( RTU )

5 xRS422

analo

gu

e in

temp

. TC

indig

ital in/o

ut

MIL-bus

MassSpectromet

er

Magnet icField

Generator

TMP1 + 2Peripherals

2 x Sparc

embedded(ESA SPLC)

Page 19: Mehr Effizienz durch skalierbare und selbst-adaptierende ... file7 BSSE System and Software Engineering Examples (PC-800MHz) distributed real-time systems two processor system (space),

19

BSSE System and Software Engineering

Skalierbare ProduktionsprozesseSkalierbare Produktionsprozesse

� skalierbar in der Zeit� die Generierungszeit hängt nur von der Generierungsplattform ab

� Maß für den Grad der Automatisierung

� ASaP 2000: UltraSparc 140 ca. 2 Stunden

� ASaP 2003: PC-2.5GHz ca. 5 Minuten

� skalierbar in Menge und Komplexität� alle (Kunden-) Anforderungen können umgesetzt werden

� die Systemkomplexität erhöht sich

ggf. um mehrere Größenordnungen

� Aufwand und Komplexität für den Anwender wachsen nicht oder

nur gering

Page 20: Mehr Effizienz durch skalierbare und selbst-adaptierende ... file7 BSSE System and Software Engineering Examples (PC-800MHz) distributed real-time systems two processor system (space),

20

BSSE System and Software Engineering

Configuration Options: Distributed RT SystemConfiguration Options: Distributed RT System

data flow

Process1

behaviourfunctionalityperformance

Process2

behaviourfunctionalityperformance

messages

inter-processcommunication

intra-processcommunication

intra-processcommunication

Principal Configuration Options of a Distributed / Real-Time System

Intra-Process Activities

synchronous processing

asynchronous / sporadic processing

exception handling

time-out

Finite State Machines

Distribution

Topology

OS

Fault Tolerance

Communication ChannelsProcess - Processor

Mapping

Page 21: Mehr Effizienz durch skalierbare und selbst-adaptierende ... file7 BSSE System and Software Engineering Examples (PC-800MHz) distributed real-time systems two processor system (space),

21

BSSE System and Software Engineering

Complexity: No Problem!

within 10 minutes (code + documentation + V&V) from scratch / spreadsheet

Page 22: Mehr Effizienz durch skalierbare und selbst-adaptierende ... file7 BSSE System and Software Engineering Examples (PC-800MHz) distributed real-time systems two processor system (space),

22

BSSE System and Software Engineering

SelbstSelbst--Adaptierende ProduktionsprozesseAdaptierende Produktionsprozesse

� Umsetzung von Produktionsanforderungen

� Systemstruktur gemäß Anforderung

� Umsetzung anwenderdefinierter (unbestimmter) Mengen wie

Messages, Commands, States, Prozessen, Netzwerkstruktur

� Adaptierung der Test-, Verifikations- und

Validierungsumgebung

� Test- und Fehlerfälle generieren für kundenspezifische Konfiguration

� Berichte über Systemeigenschaften spezifisch erstellen

� spezifisches Endergebnis dokumentieren

� generische Verifikations- und Validierungsverfahren

Page 23: Mehr Effizienz durch skalierbare und selbst-adaptierende ... file7 BSSE System and Software Engineering Examples (PC-800MHz) distributed real-time systems two processor system (space),

23

BSSE System and Software Engineering

VerfahrensansatzVerfahrensansatz

� automatische Produktion als Ziel

� Organisation

� Produktionsprozess, Test, V&V

� Überwindung plattformspezifischer Hindernisse

� Systemcompiler

� Compiler höherer Abstraktion

� syntaktische Prüfungen

� semantische Prüfungen

� Instrumentierung

Page 24: Mehr Effizienz durch skalierbare und selbst-adaptierende ... file7 BSSE System and Software Engineering Examples (PC-800MHz) distributed real-time systems two processor system (space),

24

BSSE System and Software Engineering

ZusammenfassungZusammenfassung

� höhere und gleichbleibende Qualität bei niedrigen Kosten� ca. 100+ x niedrigere Fehlerrate

� ca. 10 x höhere Produktivität

� bis zu 1,000,000 LOC pro PC-h ≈ 50 Mann-Jahre in einer Stunde

� Skalierbarkeit und Anpassungsfähigkeit derProduktionsprozesse� kundenspezifische Produktionsanforderungen

� Verifikation und Validierung der Systemeigenschaften

� anpassungsfähig hinsichtlich Anwendungsbereichen� nutzbar in den verschiedensten Bereichen

Raumfahrt, Telekommunikation, Medizintechik, Energietechnik,

Automatisierungstechnik, Systemkomponenten

Page 25: Mehr Effizienz durch skalierbare und selbst-adaptierende ... file7 BSSE System and Software Engineering Examples (PC-800MHz) distributed real-time systems two processor system (space),

25

BSSE System and Software Engineering

Das Potenzial von ASaPDas Potenzial von ASaP

ASaP

Technologie

Know-how

Produkte

adaptierte Produkte

SystemeTestumgebungDokumentation

automatisch erstellt

automatisch getestet

sofort verfügbar

fehlertolerant

robust

Produktivität x 5 .. 10

Qualität x 100

Kundenanforderungen

KundensystemeKundensoftware

RisikenKostendruckTermindruck

Qualitätsmängel

Rationalisierungspotenziale

Page 26: Mehr Effizienz durch skalierbare und selbst-adaptierende ... file7 BSSE System and Software Engineering Examples (PC-800MHz) distributed real-time systems two processor system (space),

26

BSSE System and Software Engineering

AnsprechpartnerAnsprechpartner

Dr. Rainer Gerlich Tel. +49/7545/91.12.58Auf dem Ruhbühl 181 Fax +49/7545/91.12.4088090 Immenstaad Mobil +49/171/80.20.659Germany e-mail [email protected]

Status: February 2003

© Copyright Dr. Rainer Gerlich BSSE System and Software Engineering 2003 All Rights Reserved