szoftverfejlesztés a repülőgépiparban
TRANSCRIPT
Budapesti Műszaki és Gazdaságtudományi EgyetemMéréstechnika és Információs Rendszerek Tanszék
Szoftverfejlesztés a repülőgépiparban
Azaz miért nem kell félnünk a szoftverhibáktól repülés közben
Horváth ÁkosBME-MIT
Motiváció
Repülőgép szoftverek története
MIPS LOC Mbyte/10 Digital links0
50
100
150
200
250
300
350
400A-310 (1983)
A-320 (1988)
A-340 (1993)
Exponenciális növekedés
Mind az A380 és a B 787 több mint 100 millió LOC
~ 100 Mbyte
Ref: Subra de Salafa and Paquier
Fejlesztési folyamat jellemzőiEgyedi fejlesztési folyamat(jellemzően a V modellre épülve)
Repülőgép szoftverfejlesztésre jellemzők Szigorú tanúsítványozási folyamat
o DO-178B (és C) hogy bebizonyítsa
o tanúsítványozással a rendszer mentes a hibáktól
o teljesíti a követelményeket nyomonkövethetőség a követelményektől egészen a bináris kódig!
Copyright© CERTIMOT ERC-HU Project
Tanúsítványozás – DO-178B (C) DO-178B - Software Considerations in Airborne Systems and
Equipment Certification „DO-178B (and DO-278) are used to assure safety of avionics software. These documents provide guidance in the areas of SW development, configuration management, verification and the interface to approval authorities”
Az RTCA szabványa (Európán belül ED-12B) Teljes civil repülőgépipar által elfogadott szabvány biztonságkritikus
szoftverek fejlesztéséreo ajánlások
1992 (új verzió 178C 2013) ~120 oldalas dokumentum
Szoftver szintek DO-178B
Level A&Bo Fly-by-wire vezérléso Autópilótao Adat megjelenítési rétego Radaro Hajtómű vezérléso Fekete doboz
Level C&Do Telemetriao Küldetés tervezése és
nyomonkövetéseo Rendszer életjel figyelési alrendszereko Valós-idejű adatrögzítés és kiértékelés
(szenzor)
Előírások (Objectives) eloszlása a DO-178B
Planning Dev. Verif. CM QA Cert.0
5
10
15
20
25
30
35
40
45Level A (66)
Level B (65)
Level C (57)
Level D (28)
Előírások (Objectives) eloszlása a DO-178B
Planning Dev. Verif. CM QA Cert.0
5
10
15
20
25
30
35
40
45Level A (66)
Level B (65)
Level C (57)
Level D (28)
Szoftverfejlesztés DO-178B
Verifikációs és validáció DO-178B
Nyomonkövethetőség
Verifikáció és Validáció
Szoftver Verifikáció teszteléssel DO-178B
# A B C Foo Executed1 0 0 0 NO2 0 0 1 NO3 0 1 0 NO4 0 1 1 YES5 1 0 0 NO6 1 0 1 YES7 1 1 0 NO8 1 1 1 YES
Coverage Type
Minimum # of Test Cases Possible Combinations
Statement 1 4 or 6 or 8
IF(C AND( A OR B))THEN Foo(); Statement Coverage (SC)
Level CoMinden kifejezést egyszer
végre kell hajtani
kifejezés
Szoftver Verifikáció teszteléssel DO-178B
# A B C Foo Executed1 0 0 0 NO2 0 0 1 NO3 0 1 0 NO4 0 1 1 YES5 1 0 0 NO6 1 0 1 YES7 1 1 0 NO8 1 1 1 YES
Coverage Type
Minimum # of Test Cases Possible Combinations
Statement 1 4 or 6 or 8
Decision 2 4 or 6 or 8 + Any NO
IF(C AND( A OR B))THEN Foo(); Decision Condition
Coverage (DC) Level BoMinden feltétel minden
kimenetét végre kell hajtanioMinden ki és bemeneti
pontot végre kell hajtani
feltétel
Szoftver Verifikáció teszteléssel DO-178B
# A B C Foo Executed1 0 0 0 NO2 0 0 1 NO3 0 1 0 NO4 0 1 1 YES5 1 0 0 NO6 1 0 1 YES7 1 1 0 NO8 1 1 1 YES
Coverage Type
Minimum # of Test Cases Possible Combinations
Statement 1 4 or 6 or 8
Decision 2 4 or 6 or 8 + Any NO
MCDC 42,3,4, and 6 OR 2,4,5
and 6
IF(C AND( A OR B))THEN Foo(); Modified Decision Condition Coverage
(MCDC) Level Ao Minden feltétel minden kimenetét végre
kell hajtanio Minden kondíció minden állapotát le kell
tesztelnio Minden ki és bemeneti pontot végre kell
hajtanio Minden kondícióra be kell látni, hogy
befolyásolja a tartalmazó feltételének a döntését
kondíció
Nyomonkövethetőség DO-178B Teljes fejlesztési és üzemeltetési
(30+ év) életcikluson keresztül! Követelményektől akár a byte
kódig (Level A) Visszakövethetőség biztosítása Karbantarthatóság biztosítása Hibák visszavezetése
(tervezés/implementáció) Jellemezően használt eszközök
o Excel o Rational RequisitePro o Rational Doors
REQ_HLR_SAFE_4_3_2_12: The take-off angle cannot be more than 55°
REQ_LLR_TOM_3_67: in the eps_line method the calculated s1 variable represents the angle of attack
Nyom
onkövethetőség
Fejlesztő eszközök tanúsítványozása (DO-178B) Szoftver fejlesztő eszközök
o Hibákat injektálhat a végső rendszerbeo Ugyan azon követelmények mint a fejlesztési folyamatra
ugyan azon szintre kell verifikálni mint a fejlesztendő rendszert!o Pl., Scade Suite, Matlab Stateflow,
Wind River Diab compiler
Fejlesztő Eszköz
Verifikációs eszközök tanúsítványozás (DO-178B)
Szoftver verifikációs eszközöko Egyes hibákat nem detektálo Normál működési határok között (pl., bemeneti
paraméterek) kell hibamentes működést biztosítanio Pl., statikus kód analízis eszközök ASTRÉE, CAVEAT
Fejlesztő Eszköz
Modellvezérelt fejlesztés a repülőgépiparban
A Hibatűrő Rendszerek Kutatócsoport projektjeiben
© DIANA, CERTIMOT, TRANS-IMA, SecureChange
Modellvezérelt fejlesztés biztonságkritikus rendszerekhez
Tradicionális V-Modell Modellvezérelt Fejlesztés
MDE ötletek DO-178C• rendszermodellek korai validációja• automatikus kódgenerálás Csökkentett fejlesztési költségek
Modellek a Fejlesztésben
Air Conditioning Management
Required Temperature
Cabine Temperature
Heater
UI Feedback
InOut
OutOut
Heater Controller
Terminator
In
In
Out
Out
In
Rendszermodell
(Tervezés)
Architektúramodell
(Tervezés)
Komponens modell
(Tervezés)
Finomítás
Finomítás
Tervezés és verifikációs dokumentumok
(Forráskód, konfigurációs táblák, tesztesetek, hibafák, hibadetektorok)
Kódgenerálás Tesztgenerálás
Vertikális modelltranszform
ációk
Komponens Modell(V&V)
Architektúra modell (V&V)
Rendszer modell (V&V)
Modellgenerálás
Visszavetítés
Modellgenerálás
VisszavetítésModellgenerálás
Visszavetítés
Horizontális modelltranszformációk
Formális módszerek
Formális módszerek
Modelltranszformációk a szoftverfejlesztésben
Modelltranszformációk• tudás transzfer• elméleti eredményekből a gyakorlatba
DIANA (EU): ARINC 653 RTOS konfigurációs leíróinak generálásaEmbraer: HW-SW allokáció és szimuláció
Tervezési szabályok
Tervezési szabályok
Tervezési szabályok
Modell alapú analízis – formális módszerek
Rendszer modell
Rendszer modellezés
Matematikai modell
Modell generálás
Matematikai analízis
Ellentmondások listája Analízis
(pl., model checker)
Hiba javítása
Step 9:
-- System Variables (assigments) –vystem_safety_receive16 = falsevar_system_safety[Temp] = sensorFailed
Modell alapú analízis – formális módszerek
Rendszer modell
Rendszer modellezés
Mathematicalmodel
Modell generálás
Matematikai analízis
Ellentmondások listája Analysis
(e.g model checker)
Hiba javítása
Step 9:
-- System Variables (assigments) –vystem_safety_receive16 = falsevar_system_safety[Temp] = sensorFailed
Program kód helyesség bizonyítása Model checking Szimbolikus futtatás Hibafa analízis Időzített automaták
DO-178C elfogadott verifikációs bizonyítékok
TRANS-IMA: Embraer BME-MIT kooperáció
Friss levegő szabályozó
Meleg levegő szabályozó
Hőmérséklet monitorozásHőmérsékelt
beállítása
TRANS-IMA: HW-SW allokáció
PackController
ZoneController
SW funkciók (kritikus + nem kritikus)
3
System Display
AirCondPanel
3
Redundancia
Aft Zone
ForwardZone
Flight DeckAir
Conditioning panel
System Display
Zone Controller
Pack Controller
Pack
Pack
Pack Controller
FederáltRTOS
TRANS-IMA: Funkciók allokálása
PackController
ZoneController Aft Zone
ForwardZone
Flight DeckAir
Conditioning panel
System Display
Zone Controller
Pack Controller
Pack
Pack
Pack Controller
3
System Display
AirCondPanel
3
1
3 2
7
példányok
4
5 6
8
Partíciók
ARINC 653RTOS
Kényszerek
Kritikus és nem kritikus funkciók nem mixelhetőekKritikus funkciók
példányai nem mixelhetőek
2
5
5
4
9
8
8
8Memória igény+
kényszerek
További kényszerek• WCET,• ütemezés, etc.• interfészek• adattípusok
SW funkciók (kritikus + nem kritikus)
TRANS-IMA: Kommunikációs utak allokálása
1
2
3
7
4
5
6
8
Communication channels
Hőmérséklet
Nyomás
PáraAft Zone
ForwardZone
Flight DeckAir
Conditioning panel
System Display
Zone Controller
Pack Controller
Pack
Pack
Pack Controller
PackController
ZoneController
3
System Display
AirCondPanel
3
SW funkciók (kritikus + nem kritikus)
~300-500 funkció Komplex hardver architektúra Automatizált lépések
Szimulálás Simulinkben Teljes tool-chain megvalósítása
Összefoglaló MDE = Modern fejlesztési módszer a repülőgépiparban
o Megbízható szoftver tervezéséhez• Szigorú külső tanúsítványozást lehetővé tesz
o Korai hibadetektáláso Automatikus kódgeneráláso Nyomonkövethetőség
Repülőgépipar, mint szoftvermérnöki munkao Lassan változó területo Emberekben/tudásban van az értéko Hosszú távon is stabil iparo Cégek közötti átjárhatóság „támogatott