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
2
BSSE System and Software Engineering
InhaltInhalt
� Automatische Software Produktion
� Prozessoptimierung
3
BSSE System and Software Engineering
Automatische Software ProduktionAutomatische Software Produktion
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
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
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
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
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
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
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
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“
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
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
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
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}},
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
17
BSSE System and Software Engineering
ProzessoptimierungProzessoptimierung
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)
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
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
21
BSSE System and Software Engineering
Complexity: No Problem!
within 10 minutes (code + documentation + V&V) from scratch / spreadsheet
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
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
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
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
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
Top Related