szoftverfejlesztés a repülőgépiparban

27
Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek 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 Ákos BME-MIT

Upload: akos-horvath

Post on 15-Feb-2017

240 views

Category:

Software


1 download

TRANSCRIPT

Page 1: Szoftverfejlesztés a repülőgépiparban

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

Page 2: Szoftverfejlesztés a repülőgépiparban

Motiváció

Page 3: Szoftverfejlesztés a repülőgépiparban

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

Page 4: Szoftverfejlesztés a repülőgépiparban

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

Page 5: Szoftverfejlesztés a repülőgépiparban

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

Page 6: Szoftverfejlesztés a repülőgépiparban

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)

Page 7: Szoftverfejlesztés a repülőgépiparban

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)

Page 8: Szoftverfejlesztés a repülőgépiparban

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)

Page 9: Szoftverfejlesztés a repülőgépiparban

Szoftverfejlesztés DO-178B

Page 10: Szoftverfejlesztés a repülőgépiparban

Verifikációs és validáció DO-178B

Nyomonkövethetőség

Verifikáció és Validáció

Page 11: Szoftverfejlesztés a repülőgépiparban

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

Page 12: Szoftverfejlesztés a repülőgépiparban

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

Page 13: Szoftverfejlesztés a repülőgépiparban

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ó

Page 14: Szoftverfejlesztés a repülőgépiparban

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

Page 15: Szoftverfejlesztés a repülőgépiparban

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

Page 16: Szoftverfejlesztés a repülőgépiparban

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

Page 17: Szoftverfejlesztés a repülőgépiparban

Modellvezérelt fejlesztés a repülőgépiparban

A Hibatűrő Rendszerek Kutatócsoport projektjeiben

© DIANA, CERTIMOT, TRANS-IMA, SecureChange

Page 18: Szoftverfejlesztés a repülőgépiparban

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

Page 19: Szoftverfejlesztés a repülőgépiparban

Modellek a Fejlesztésben

Air Conditioning Management

Required Temperature

Cabine Temperature

Heater

UI Feedback

InOut

OutOut

Heater Controller

Terminator

In

In

Out

Out

In

Page 20: Szoftverfejlesztés a repülőgépiparban

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

Page 21: Szoftverfejlesztés a repülőgépiparban

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

Page 22: Szoftverfejlesztés a repülőgépiparban

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

Page 23: Szoftverfejlesztés a repülőgépiparban

TRANS-IMA: Embraer BME-MIT kooperáció

Page 24: Szoftverfejlesztés a repülőgépiparban

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

Page 25: Szoftverfejlesztés a repülőgépiparban

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)

Page 26: Szoftverfejlesztés a repülőgépiparban

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

Page 27: Szoftverfejlesztés a repülőgépiparban

Ö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