Szoftver architektúra tervek ellenőrzése

Hasonló dokumentumok
Architektúra tervek ellenőrzése

Architektúra tervek ellenőrzése

Architektúra tervek ellenőrzése

Veszély analízis. Rendszertervezés és -integráció előadás dr. Majzik István

A fejlesztési szabványok szerepe a szoftverellenőrzésben

Hibatűrés. Majzik István Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Biztonságkritikus rendszerek Gyakorlat: Architektúrák

A kockázatelemzés menete

Veszély analízis. Rendszertervezés és -integráció előadás dr. Majzik István

Biztonságkritikus rendszerek

Autóipari beágyazott rendszerek. Komponens és rendszer integráció

Fejlesztés kockázati alapokon 2.

A szolgáltatásbiztonság alapfogalmai

A szolgáltatásbiztonság analízise

Szoftverminőségbiztosítás

Szoftver karbantartás

A szolgáltatásbiztonság alapfogalmai

A szolgáltatásbiztonság alapfogalmai

Szoftver értékelés és karbantartás

Biztonsági folyamatirányító. rendszerek szoftvere

Megbízhatósági analízis

Nagy bonyolultságú rendszerek fejlesztőeszközei

Verifikáció és validáció Általános bevezető

Biztonságkritikus rendszerek architektúrája (2. rész)

Autóipari beágyazott rendszerek. Kockázatelemzés

Architektúra tervezési példák: Architektúrák biztonságkritikus rendszerekben

Biztonságkritikus rendszerek Gyakorlat: Megbízhatósági analízis

Folyamatmodellezés és eszközei. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Hibatűrés. Majzik István Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Biztosítóberendezések biztonságának értékelése

Miskolci Egyetem Alkalmazott Informatikai Intézeti Tanszék A minőségbiztosítás informatikája. Készítette: Urbán Norbert

Folyamatmodellezés és eszközei. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Szolgáltatásbiztonság verifikációja: Megbízhatósági analízis

Hibatűrés. Majzik István Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

A BIZTONSÁGINTEGRITÁS ÉS A BIZTONSÁGORIENTÁLT ALKALMAZÁSI FELTÉTELEK TELJESÍTÉSE A VASÚTI BIZTOSÍTÓBERENDEZÉSEK TERVEZÉSE ÉS LÉTREHOZÁSA SORÁN

Részletes szoftver tervek ellenőrzése

Szoftverminőségbiztosítás

Szoftverminőségbiztosítás

Modell alapú tesztelés mobil környezetben

KÖFOP VEKOP A jó kormányzást megalapozó közszolgálat-fejlesztés

Szoftvertechnológia ellenőrző kérdések 2005

IRÁNYÍTÓ RENDSZER IRÁNYÍTANDÓ FOLYAMAT. Biztonsági funkciók Biztonsági integritás. Normál működés. Hibák elleni védettség Saját (belső) biztonság

Számítógép-rendszerek fontos jellemzői (Hardver és Szoftver):

DW 9. előadás DW tervezése, DW-projekt

Hibatűrés. Majzik István Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Vállalati információs rendszerek I, MIN5B6IN, 5 kredit, K. 4. A meghirdetés ideje (mintatanterv szerint vagy keresztfélében):

Rendszermodellezés. Modellellenőrzés. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Bokor Péter. DECOS Nemzeti Nap október 15. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

OpenCL alapú eszközök verifikációja és validációja a gyakorlatban

Szoftver újrafelhasználás

UML (Unified Modelling Language)

Integrációs mellékhatások és gyógymódok a felhőben. Géczy Viktor Üzletfejlesztési igazgató

Hálózati szolgáltatások biztosításának felügyeleti elemei

Információ menedzsment

IATF 16949:2016 szabvány fontos kapcsolódó kézikönyvei (5 Core Tools):

Szoftverminőségbiztosítás

Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék. Folyamatmodellezés

Használati alapú és modell alapú tesztelés kombinálása szolgáltatásorientált architektúrák teszteléséhez az ipari gyakorlatban

Informatikai rendszertervezés

Üzletmenet folytonosság menedzsment [BCM]

Modellellenőrzés a vasút automatikai rendszerek fejlesztésében. XIX. Közlekedésfejlesztési és beruházási konferencia Bükfürdő

IBM felhő menedzsment

biztonságkritikus rendszerek

Informatikai rendszertervezés

Szoftver-mérés. Szoftver metrikák. Szoftver mérés

Felhasználók hitelesítése adatbiztonság szállításkor. Felhasználóknak szeparálása

Ellátási lánc optimalizálás P-gráf módszertan alkalmazásával mennyiségi és min ségi paraméterek gyelembevételével

Biztonságkritikus rendszerek

S01-7 Komponens alapú szoftverfejlesztés 1

Informatikai rendszertervezés (VIMIAC01) VIZSGA MINTA Név: NEPTUN:

A TESZTELÉS ALAPJAI MIÉRT SZÜKSÉGES A TESZTELÉS? MI A TESZTELÉS? ÁLTALÁNOS TESZTELÉSI ALAPELVEK

A modellellenőrzés érdekes alkalmazása: Tesztgenerálás modellellenőrzővel

A hálózattervezés alapvető ismeretei

Architektúra, megszakítási rendszerek

Formális módszerek GM_IN003_1 Bevezetés

Közlekedési automatika Biztonsági architektúrák

Méréselmélet MI BSc 1

A modellellenőrzés érdekes alkalmazása: Tesztgenerálás modellellenőrzővel

A cloud szolgáltatási modell a közigazgatásban

Mintapélda: Rendszertesztelés a SAFEDMI projektben

Programrendszerek tanúsítása szoftverminőség mérése

ÁRAMKÖRÖK SZIMULÁCIÓJA

Közlekedési automatika Biztonsági folyamatirányító rendszerek szoftvere

A hibakezelés tesztelése: Hibainjektálás

Név: Neptun kód: Pontszám:

Autóipari beágyazott rendszerek. Funkcionális biztonságossági koncepció

Építsünk IP telefont!

Szolgáltatás Orientált Architektúra a MAVIR-nál

Specifikáció alapú teszttervezési módszerek

Hogyan lesz adatbányából aranybánya?

Specifikáció alapú teszttervezési módszerek

Szoftver-technológia II. Architektúrák dokumentálása UML-lel. Irodalom. Szoftver-technológia II.

Fejlesztés kockázati alapokon

Történet John Little (1970) (Management Science cikk)

Üzleti architektúra menedzsment, a digitális integrált irányítási rendszer

Modellezési alapismeretek

Beágyazott információs rendszerek

A szoftverfejlesztés eszközei

Részletes tervek ellenőrzése

TESZTMENEDZSMENT TESZTELŐ SZERVEZET TESZTTERVEZÉS ÉS BECSLÉS

Átírás:

Szoftver architektúra tervek ellenőrzése Majzik István Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék http://www.mit.bme.hu/~majzik/ Tartalomjegyzék A fázis ki- és bemenetei Az architektúra tervek elkészítése A komponensek azonosítása Mit határoz meg az architektúra? Ellenőrzési feladatok Követelményeknek való megfelelőség, követhetőség Hibahatások vizsgálata Extra-funkcionális követelmények vizsgálata Teszt tervezés

Kimenetek és bemenetek Szoftverkövetelményspecifikáció Rendszerbiztonsági követelmények specifikációja Rendszerarchitektúra leírás Szoftver minőségbiztosítási terv Szoftverarchitektúratervezési fázis Lokális igazolás Integrációs tesztek Szoftverarchitektúra specifikáció Szoftverarchitektúra és -kialakítási igazolójelentés Szoftver-hardver integrációs tesztterv Tartalomjegyzék A fázis ki- és bemenetei Az architektúra tervek elkészítése A komponensek azonosítása Mit határoz meg az architektúra? Ellenőrzési feladatok Követelményeknek való megfelelőség, követhetőség Hibahatások vizsgálata Extra-funkcionális követelmények vizsgálata Teszt tervezés

Szoftverarchitektúra terv Architektúra: Komponensek + közöttük lévő kapcsolatok Hardver-szoftver együttműködés azonosítása Szoftverkomponensek (modulok) azonosítása Korábban fejlesztett, érvényesített (validált) elemek: alkalmasság igazolásával használhatók (C)OTS komponensek használata SIL 0: előfeltételek nélkül elfogadható SIL 1,2: validációnak tartalmaznia kell SIL 3,4: validációnak tartalmaznia kell + + lehetséges meghibásodások elemzése + védelmi stratégia és ennek tesztelése + naplók és kiértékelésük Szoftver modulok SIL szintje: - Szoftverkövetelményeknek való megfelelés - Változások hatásvizsgálata - SIL megfelelés Alapértelmezés: Egyező a rendszer(modulok) SIL szintjével Csökkentés: Van olyan mechanizmus, amely megakadályozza, hogy a szoftver meghibásodása a rendszer nem biztonságos állapotba kerülését okozhassa (a függetlenség bizonyítható). Hibakezelés: Redundancia Hardver redundancia: Azonos komponensek: Tranziens és állandósult működés közbeni hibák detektálása és (diagnosztika után) kezelés Két komponens: Hibadetektálásra alkalmas, diagnosztika szükséges Kettőnél több komponens (NMR): Hiba maszkolható (szavazás) Szoftver redundancia: Eltérő tervezés ( diverziter programozás ): A szisztematikus szoftver tervezési hibák detektálása és kezelése Aktív redundancia: N-verziós programozás (NVP) Passzív redundancia: Javító blokkok (RB) Adaptív redundancia: Önkonfiguráló programozás (SCOP) Információ redundancia: Hibafelismerő illetve javító kódolás Idő redundancia: Újrapróbálás: Tranziens hibák esetén lehet hatásos Közvetett idő redundancia más technikák esetén is

Előírt módszerek (50128) - kezelés SIL 1-től R, SIL 3-tól tipikusan HR technikák Defenzív programozás Hibafelfedés és diagnózis Hibafelismerő kódok Meghibásodásbizonyító programozás Diverziter programozás Eltérő tervezésű modulok Megvalósított esetek tárolása Szoftver-hatáselemzés -> Szoftver, információ és idő redundancia Ellenjavallt technikák (NR) Előre / visszalépő helyreállítás Mesterséges intelligencia módszerek javításra Dinamikus szoftver rekonfiguráció Sokféle kombináció megengedett Failure assertion Referencia Bennmaradó hibák elleni védekezés Mit határoz meg az architektúra? Elérendő tulajdonság Szolgáltatásbiztonság Teljesítmény Biztonságosság Adatbiztonság Tesztelhetőség Karbantarthatóság Tervezési tér Hibadetektálás, behatárolás, kezelés (redundancia) Erőforrás hozzárendelés, erőforrás menedzsment Veszély csökkentés, veszély kontroll (monitorozás) Támadás felderítés, helyreállítás Vezérelhetőség, megfigyelhetőség Elkülönítés (pl. MVC minta)

Tartalomjegyzék A fázis ki- és bemenetei Az architektúra tervek elkészítése A komponensek azonosítása Mit határoz meg az architektúra? Ellenőrzési feladatok Követelményeknek való megfelelőség, követhetőség Hibahatások vizsgálata Extra-funkcionális követelmények vizsgálata Teszt tervezés A szoftverarchitektúra igazolása (áttekintés) Vizsgálati technikák áttekintése: Követelményeknek való megfelelés ellenőrzése Követhetőség Szisztematikus elemzés: Hibák hatásainak felmérése kombinatorikus módszerekkel: Kapcsolat a rendszerszintű (veszélyes) állapotok és a lokális (komponens szintű) hibák és események között Az architektúra alapján végigellenőrizve a hatásokat Modell alapú vizsgálatok: Extra-funkcionális jellemzők meghatározása (tipikusan sztochasztikus) módszerekkel: Lokális (komponens/kapcsolati szintű) paraméterek alapján rendszerszintű jellemzők számítása Az architektúra alapján konstruálva az analízis modellt

Az architektúra terv igazolása: Követhetőség Hogyan segítik ezt a félformális nyelvek? Példa: SysML (Systems Modelling Language) Architektúra tervezés első lépése: Block diagram Relációk explicit megjelenítése és ellenőrzése

A szisztematikus elemzés módszerei 1. Hibafa 2. Eseményfa 3. Ok-következmény analízis 4. Hibamód és -hatás analízis (FMEA) 1. Hibafa analízis Rendszerszintű veszély okainak vizsgálata tipikusan felülről lefelé haladó analízis felderíti a kezelendő okokat és -kombinációkat Hibafa konstrukció: (rendszerszintű) veszély, veszélyes állapot: azonosítás: környezet, követelmények, szabványok közbenső események, pszeudo-események: veszélyhez vezetnek, alacsonyabb szintű események Boole-logikai kombinációi (AND, OR) elsődleges események: további felbontás nincs

Hibafa grafikus elemkészlet legfelső szintű vagy közbenső esemény elsődleges (alapszintű) esemény tovább nem vizsgált esemény normál esemény (nem vagy veszély) feltétel egy összetett esemény bekövetkezéséhez ÉS kapu VAGY kapu Hibafa példa: Felvonó Boole-logikai kapcsolat Felvonó beragad Legfelső szintű veszély Gomb beragad Tápfesz. kiesés Vezérlő Közbenső esemény Tovább nem vizsgált esemény 380V kiesés UPS kiesés Vezérlő hardver Vezérlő szoftver Elsődleges események Elsődleges proc. Tartalék proc.

Hibafa analízis Minőségi (kvalitatív) analízis: Hibafa redukció: Közbenső események feloldása diszjunktív normál forma (OR a legtetején) Azonosítható egyszeres pont (SPOF) kritikus esemény (több vágatban is szerepel) Mennyiségi (kvantitatív) analízis: Alapszintű eseményekhez rendelt valószínűségek komponens-adat, tapasztalat, becslés Rendszerszintű veszély valószínűség számítása AND kapu: szorzat (független eseményekre) OR kapu: összegzés (felső becslés) Problémák: korreláló hibák, időbeli ()szekvenciák kezelése 2. Eseményfa analízis Előrelépő analízis: Elsődleges események következményeit vizsgálja kiváltó esemény: pl. egy komponens hibája következmények: más komponensek állapotától függ sorrendezés: oksági kapcsolat, időbeli viszony elágazások: események bekövetkezése Hibázási forgatókönyvek vizsgálata utak valószínűsége (elágazások valószínűsége alapján) védelmi rendszerek hatékonysága Előnyök: Eseményszekvenciák vizsgálhatók Korlátok: Komplexitás, többszörös események, minden kiváltó eseményhez külön diagram

Eseményfa példa: Helyreállító blokkok Variáns 1 kivételt dob Ellenőrzés Variáns 2 kivételt dob Ellenőrzés n n 1-p1 1-p2 i n 1-p3 n i 1-p4 p4 Szolgáltatás nem elérhető! i p1 p2 i p3 n 1-p3 i p3 n i 1-p4 p4 Szolgáltatás nem elérhető! Szolgáltatás nem elérhető! Szolgáltatás nem elérhető! 3. Ok-következmény analízis Eseményfa és fa összekapcsolása eseményfa: forgatókönyvek (szekvencia) csatolt fa: esemény bekövetkezés indoklása, rendelkezésre állás számítása Előnyök: szekvenciák (előrelépő analízis) és ok-okozati kapcsolatok (hátralépő analízis) együtt Korlátok: minden kritikus eseményhez külön diagram szükséges

Példa ok-következmény analízisre Túlnyomás Tartalék szelep nyit igen nem P0 P1 = pa + pb Kézi szelep nyit igen nem Szelep1 pa P2 = pc + pd Vezérlő pb pc Szelep2 Kezelő pd P0 P0 P1 P0 P1 P2 4. Hibamód és -hatás analízis (FMEA) Hibák és hatásaik felsorolása Előny: szisztematikus áttekintés redundancia felismerése Komponens Hibamód L határértéktúllépés vizsgálat > L átmegy L nem megy át Valószínűség Hatás 65% 35%............ - túlnyomás - technológiai

A modell alapú elemzés módszerei Cél: Architektúra változatok kiértékelése Analízis modellek készítése és paraméterezése az architektúra modellje alapján Matematikai modell, jellemzői számíthatók ( megoldható ) Mit ír le az analízis modell? Komponens paraméterek > Rendszerszintű jellemzők Teljesítmény Megbízhatóság Biztonság Adatbiztonság Moduláris modellalkotás a tipikus Architektúra: Komponensek és kapcsolatok Analízis modell: Ehhez analízis modellkönyvtár Modell alapú architektúra vizsgálatok Megbízhatósági modell Teljesítmény modell Biztonsági modell Komponens paraméterek Meghibásodási tényező, lappangási idő, javítási tényező, fedés, Funkció lokális végrehajtási idő, taszk prioritás, processzor ütemezés Veszély gyakoriság Kapcsolat paraméterek Hibaterjedési valószínűség, terjedés feltételei, javítási stratégia Hívás továbbítási gyakoriság, hívás szinkronitás Veszély forgatókönyv, veszély kombinációk Modell Markov-lánc, Petri-háló Sorbanállási háló Markov-lánc, Petri-háló Rendszer jellemzők (számított) Megbízhatóság, rendelkezésre állás, készenlét, MTTF, MTTR, MTBF Kiszolgálási idő, taszk áteresztőképesség, processzor kihasználtság Rendszerszintű veszély gyakoriság

Első példa: Megbízhatósági modellezés Megbízhatósági modell Teljesítmény modell Biztonsági modell Komponens paraméterek Meghibásodási tényező, lappangási idő, javítási tényező, fedés, Funkció lokális végrehajtási idő, taszk prioritás, processzor ütemezés Veszély gyakoriság Kapcsolat paraméterek Hibaterjedési valószínűség, terjedés feltételei, javítási stratégia Hívás továbbítási gyakoriság, hívás szinkronitás Veszély forgatókönyv, veszély kombinációk Modell Markov-lánc, Petri-háló Sorbanállási háló Markov-lánc, Petri-háló Rendszer jellemzők (számított) Megbízhatóság, rendelkezésre állás, készenlét, MTTF, MTTR, MTBF Kiszolgálási idő, áteresztőképesség, processzor kihasználtság Rendszerszintű veszély gyakoriság UML alapú megbízhatósági modellezés UML architektúra modell Analízis alhálók Megbízhatósági modell konstrukció Hazard rate 1,2E-06 1,0E-06 8,0E-07 6,0E-07 4,0E-07 Rendszerszintű megbízhatósági modell (sztochasztikus aktivitás hálózat) 2,0E-07 0,5 0,6 0,7 0,8 0,9 Control flow checking coverage Analízis eredmények

Megbízhatósági modellezés Tervezői modell Komponens: - Típus (HW, SW) - Szerep (variáns, red. menedzser) - Meghibásodási jellemzők: * meghibásodási gyakoriság, * lappangási idő, * javítási idő Kapcsolat: - Hibaterjesztési jellemzők: * terjesztési valószínűség Egy HW erőforrás (pl. memória) analízis modellje Állandósult hibák detektálása periodikus teszteléssel Detektált hibák indítják a kezelési mechanizmust (pl. leállás) Állandósult vagy tranziens hibák bekövetkezése Hibaterjesztés azok felé a taszkok felé, amelyek ezt az erőforrást használják

A terjesztés analízis modellje Hiba olyan erőforrásban, amit a taszk használ Taszk aktiválási gyakoriság, aktiválási lehetőségek: - aktivált, ami a rendszerben marad - aktivált, felülíródik, de hatása van - hatás nélkül felülírt Egy szoftver taszk analízis modellje Hibadetektálás adott fedéssel és késleltetéssel Detektált hibák indítják a kezelést (pl. leállás) Hibadetektálás adott fedéssel és késleltetéssel A nem detektált veszélyt okoz

Analízis eredmény (példa) Ha a detektálás fedése 50% alá csökken, akkor a SIL2 követelmény (10-7 <THR<10-6 ) nem teljesül Automatikus analízis eszköz Paraméterezett UML modell Redundanciaés kezelés tervezési minták UML SAN transzformáció Analízis modellkönyvtár Megbízhatósági modell (SAN) Külső megoldó eszköz Rendszerszintű jellemzők

Második példa: Teljesítmény modellezés Megbízhatósági modell Teljesítmény modell Biztonsági modell Komponens paraméterek Meghibásodási tényező, lappangási idő, javítási tényező Funkció lokális végrehajtási idő, taszk prioritás, processzor ütemezés Veszély gyakoriság Kapcsolat paraméterek Hibaterjedési valószínűség, terjedés feltételei, javítási stratégia Hívás továbbítási gyakoriság, hívás szinkronitás Veszély forgatókönyv, veszély kombinációk Modell Markov-lánc, Petri-háló Sorbanállási háló Markov-lánc, Petri-háló Rendszer jellemzők (számított) Megbízhatóság, rendelkezésre állás, készenlét, MTTF, MTTR, MTBF Kiszolgálási idő, áteresztőképesség, processzor kihasználtság Rendszerszintű veszély gyakoriság Taszk (szerver): - Funkciók (hívási pontok) - Prioritás - Processzor ütemezés Teljesítmény modellezés (LQN) Kérés: - Gyakoriság Funkció: - Lokális végrehajtási idő - Továbbhívás gyakoriság Hívás: - Szinkronitás Kérés kiszolgálási idő Áteresztőképesség Processzor kihasználtság átlagos és worst case értékek

Az architektúra leképezése teljesítménymodellre Osztályok Telepítés Interakciók Lokális teljesítmény paraméterek megadása: - Attribútumok (konvenció alapján értelmezhető) - UML tagged value Az architektúra leképezése teljesítménymodellre Osztályok Telepítés Interakciók LQN teljesítménymodell Modelltranszformáció

Az architektúra leképezése teljesítménymodellre Architektúra minták használata Szinkron üzenetküldés Tartalomjegyzék A fázis ki- és bemenetei Az architektúra tervek elkészítése A komponensek azonosítása Mit határoz meg az architektúra? Ellenőrzési feladatok Követelményeknek való megfelelőség, követhetőség Hibahatások vizsgálata Extra-funkcionális követelmények vizsgálata Teszt tervezés

Szoftver-hardver integrációs tesztterv Dokumentálandó: Teszt esetek, típusok Teszt környezet (eszközök, konfiguráció leírás) Teszt kritériumok (teljes elvégzés megítélhető) Tevékenységek Telepítés és rendszerintegráció megkülönböztetve Telephelyi és alkalmazói tesztek elkülönítése Teszt esetek és eredmények gépi rögzítése Teszt módszerek: Ld. az integrációs fázisban!