Architektúra tervek ellenőrzése

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

Architektúra tervek ellenőrzése

Szoftver 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

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

Szoftverminőségbiztosítás

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

A kockázatelemzés menete

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

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

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

Nagy bonyolultságú rendszerek fejlesztőeszközei

Fejlesztés kockázati alapokon 2.

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

IBM felhő menedzsment

A szolgáltatásbiztonság alapfogalmai

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

A szolgáltatásbiztonság alapfogalmai

A szolgáltatásbiztonság alapfogalmai

Szoftver karbantartás

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

A szoftver-folyamat. Szoftver életciklus modellek. Szoftver-technológia I. Irodalom

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

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

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

Operációs rendszerek. Bemutatkozás

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

Szenzorhálózatok programfejlesztési kérdései. Orosz György

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

S01-7 Komponens alapú szoftverfejlesztés 1

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

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

Szoftverarchitektúrák 3. előadás (második fele) Fornai Viktor

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

Biztonságkritikus rendszerek architektúrája

Formális módszerek GM_IN003_1 Bevezetés

A szolgáltatásbiztonság analízise

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

I. Definíciók. 1. Üzletmenet folytonossági terv - katasztrófa terv. Üzletmenet folytonossági tervezés

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

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

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

UML (Unified Modelling Language)

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

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

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

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

Biztonságkritikus rendszerek

Digitális eszközök típusai

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

Hatékony iteratív fejlesztési módszertan a gyakorlatban a RUP fejlesztési módszertanra építve

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

Optimalizáció ESX-től View-ig. Pintér Kornél ügyfélszolgála3 mérnök

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

Tartalom. Konfiguráció menedzsment bevezetési tapasztalatok. Bevezetés. Tipikus konfigurációs adatbázis kialakítási projekt. Adatbázis szerkezet

Automatikus tesztgenerálás modell ellenőrző segítségével

Részletes tervek ellenőrzése

Párhuzamos programozási platformok

Szoftverminőségbiztosítás

Robusztusság tesztelés

Szoftverminőségbiztosítás

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

Szoftver-technológia II. Szoftver újrafelhasználás. (Software reuse) Irodalom

Kommunikáció. Kommunikáció. Folyamatok. Adatfolyam-orientált kommunikáció. Kommunikáció típusok (1) Kommunikáció típusok (2) Média. Folyamok (Streams)

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

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

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

Szoftverminőségbiztosítás

Párhuzamos programozási platformok

TELJESÍTÉNYMÉRÉS FELHŐ ALAPÚ KÖRNYEZETBEN AZURE CLOUD ANALÍZIS

Részletes szoftver tervek ellenőrzése

Megbízhatósági analízis

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

Informatikai rendszertervezés

Tartalom Platform-független modellezés Alkalmazás-modellezés A DECOS hardver platform Platform modellezés Hardver-szoftver integráció Implementáció 2

Teszt terv Új funkció implementációja meglévı alkalmazásba

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

30 MB INFORMATIKAI PROJEKTELLENŐR

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

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

Autóipari beágyazott rendszerek. Integrált és szétcsatolt rendszerek

Informatikai rendszertervezés

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

Szoftver architektúra, Architektúrális tervezés

Az ISO Cél: funkcionális biztonság kizárva az elektromos áramütés, tűz stb. veszélyeztetések

II. rész: a rendszer felülvizsgálati stratégia kidolgozását támogató funkciói. Tóth László, Lenkeyné Biró Gyöngyvér, Kuczogi László

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

Modellezés és szimuláció a tervezésben

Projekt beszámoló. NEWSIT News basedearlywarning System forintradaytrading: Hír alapú Korai Figyelmeztető Rendszer Napon belüli Kereskedéshez

Csoportos üzenetszórás optimalizálása klaszter rendszerekben

A SZOFTVERTECHNOLÓGIA ALAPJAI

Dr. Mileff Péter

Mintapélda: Rendszertesztelés a SAFEDMI projektben

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

Operációs rendszerek II. Folyamatok ütemezése

Fogalomtár Etikus hackelés tárgyban Azonosító: S2_Fogalomtar_v1 Silent Signal Kft. Web:

Alapszintű formalizmusok

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

A szoftverfejlesztés eszközei

Átírás:

Szoftverellenőrzési technikák Architektúra tervek ellenőrzése Majzik István http://www.inf.mit.bme.hu/ 1

Tartalomjegyzék Motiváció Mit határoz meg az architektúra? Milyen vizsgálati módszerek vannak? Követhetőség Szisztematikus vizsgálati módszerek Interfész analízis Hibahatás analízis Modell alapú vizsgálatok Megbízhatósági modellezés Teljesítmény modellezés ATAM architektúra elemzés 2

Szoftverarchitektúra Architektúra Komponensek (tulajdonságokkal) Közöttük lévő kapcsolatok (telepítés, információáramlás,...) Tervezői döntések Komponensek és kapcsolatok meghatározása Hardver-szoftver együttműködés Hibahatások figyelembe vétele Méretezés (a komponensek és kapcsolatok tulajdonságai) Teljesítmény, redundancia, biztonságosság,... Architektúra minták használata Pl. MVC, N-tier, Újrafelhasználás (korábban fejlesztett komponensek) 3

Jellegzetes nyelvek architektúra tervezéshez UML SysML (ld. Block diagram) AADL: Architecture Analysis and Design Language Komponensek Kapcsolatok: Portokon (adatok, események áramlása) Leképzés hardverre Tulajdonságok analízishez 4

Jellegzetes nyelvek architektúra tervezéshez: SysML SysML (Systems Modelling Language) Block Diagram Internal Block diagram 5

Jellegzetes nyelvek architektúra tervezéshez: AADL AADL: Architecture Analysis and Design Language (v2: 2009) Beágyazott rendszerekhez (SAE) Szoftver komponensek System: Komponensek hierarchikus elrendezése Process: Védett címtartománnyal Thread group: Thread-ek logikai csoportja Thread: Ütemezhető konkurens végrehajtási egység Data: Megosztható adat Subprogram: Szekvenciális, hívható kódegység 6

Jellegzetes nyelvek architektúra tervezéshez: AADL Hardver komponensek Processor, Virtual Processor: Ütemezés platformja Memory: Adat és futtatható kód tárolója Bus, Virtual Bus: Fizikai vagy logikai kapcsolatok egysége Device: Interfész külső környezethez Kötések Szoftver és hardver között Logikai (virtuális) komponensek és fizikai komponensek között 7

Jellegzetes nyelvek architektúra tervezéshez: AADL Kötések szoftver és hardver között 8

Jellegzetes nyelvek architektúra tervezéshez: AADL Kapcsolatok Adatok, események áramlása portokon Tulajdonságok megadása analízishez Időzítés Ütemezés Hibaterjedés (annex) 9

Mit és hogyan határoz meg az architektúra? 1/2 Szolgáltatásbiztonság Hibadetektálás: Push/pull monitorozás, kivételkezelés Helyreállítás: Előrelépés, visszalépés, kompenzáció Hibahatás kezelése: Átkonfigurálás, graceful degradation Teljesítmény Erőforrás hozzárendelés: Kritikus számítások kiszolgálása, várakozó kérések korlátozása Erőforrás menedzsment: Erőforrás ütemezés, dinamikus hozzárendelés, párhuzamos feldolgozás Adatbiztonság Támadás kivédése: Elérés korlátozása, autentikáció, bizalmas adatok védelme Támadás felderítése: Változások elemzése Helyreállítás: Integritás karbantartása 11

Mit és hogyan határoz meg az architektúra? 2/2 Módosíthatóság Lokalizálás: Szemantikus koherencia (egységbezárás) Dominóhatás elkerülése: Információrejtés, kommunikáció korlátozása, közvetítő használata Kötési idő elhalasztása: Futási idejű regisztráció, konfigurációs leírók, polimorfizmus, közös protokollok Tesztelhetőség Vezérelhetőség, megfigyelhetőség biztosítása Rögzítés és visszajátszás biztosítása Interfész és implementáció elválasztása Használhatóság Tervezési idejű technikák: Felhasználói felület elhatárolása Futásidejű technikák: Felhasználói modell, feladatmodell, rendszermodell karbantartása 12

Példa: Előírt módszerek a szoftver biztonsághoz (EN 50128) SIL 1-től R, SIL 3-tól tipikusan HR technikák Defenzív programozás Hibafelfedés és hibadiagnózis Hibafelismerő kódok Meghibásodásbizonyító programozás Diverz programozás Eltérő tervezésű modulok Megvalósított esetek tárolása Szoftverhiba-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 hibajavításra Dinamikus szoftver rekonfiguráció Sokféle kombináció megengedett Failure assertion Referencia Bennmaradó hibák elleni védekezés 13

Példa: OTS komponensek használata kritikus rendszerekben OTS/COTS komponensek használata adott biztonságintegritási szinten (SIL) SIL 0: Általánosan elfogadott SIL 1 és 2: Be kell vonni a validációba SIL 3 és 4: Szükséges intézkedések: Bevonás a validációba Lehetséges meghibásodások elemzése Védelmi stratégia kialakítása és ennek tesztelése Hibanaplók felvétele és kiértékelése Komponensek biztonságintegritási szintje Alapértelmezés: Egyező a rendszerével Csökkentés: Ha megakadályozható a komponens hibájából adódó rendszerszintű hiba Egyszeres hibapont (SPOF) elkerülése 14

Példa: Architekturális megoldás SIL csökkentésre Független szoftver csatornák Channel 1 (P) Channel 2 (N) GUI Bitmap A Bitmap B Database Database Input Control Control Input Communication protocol Communication protocol 16

Példa: Architekturális megoldás SIL csökkentésre Független visszaellenőrzés (1) (2) (3) Channel 1 (1) (1) (2) (3) (3) Channel 2 (1) (2) Signature (1) Signature (3) (3) Locking locking (4) (4) I/O 20

Összefoglalás: Elérendő tulajdonságok és tervezési tér Elérendő tulajdonság Szolgáltatásbiztonság Teljesítmény Adatbiztonság Módosíthatóság Tesztelhetőség Használhatóság Tervezési tér (tervezői döntések) Hibadetektálás, hibabehatárolás, helyreállítás, hibakezelés Erőforrás hozzárendelés, erőforrás menedzsment Támadás kivédés, felderítés, integritás helyreállítás Lokalizálás, dominóhatás elkerülése, kötések elhalasztása Vezérelhetőség, megfigyelhetőség, rögzítés és visszajátszás Felhasználói és feladatmodell, felület elhatárolása 21

Áttekintés: Milyen vizsgálati technikák vannak? Követhetőség a követelmények felől Követelmények lefedése architektúra elemekkel Szisztematikus elemzések: az architektúra bejárása Interfész analízis Elvárt és nyújtott interfészek megfelelősége Hibahatás analízis kombinatorikus módszerekkel Komponens szintű hibák Rendszerszintű hatások Modell alapú elemzések: analízis modell készítés Sztochasztikus analízis: megbízhatósági illetve teljesítmény jellemzők meghatározása Lokális (komponens illetve kapcsolati szintű) paraméterek alapján rendszerszintű jellemzők számítása Az analízis modell konstruálása: Az architektúra alapján Architektúra trade-off analízis (ATAM) 22

Tartalomjegyzék Motiváció Mit határoz meg az architektúra? Milyen vizsgálati módszerek vannak? Követhetőség Szisztematikus vizsgálati módszerek Interfész analízis Hibahatás analízis Modell alapú vizsgálatok Megbízhatósági modellezés Teljesítmény modellezés ATAM architektúra elemzés 23

Példa: Követhetőség SysML relációk alapján 24

Tartalomjegyzék Motiváció Mit határoz meg az architektúra? Milyen vizsgálati módszerek vannak? Követhetőség Szisztematikus vizsgálati módszerek Interfész analízis Hibahatás analízis Modell alapú vizsgálatok Megbízhatósági modellezés Teljesítmény modellezés ATAM architektúra elemzés 25

Szisztematikus vizsgálat: Interfész analízis Célkitűzés Komponens interfészek megfelelősége Teljesség: A kapcsolatok szisztematikus bejárása biztosítja Szintaktikus analízis Hívási paraméterek száma, típusa (signature) Szemantikus analízis Komponensekhez rendelt funkcionalitás leírása alapján Szerződés (contract) alapú analízis Viselkedési analízis Komponens viselkedés specifikáció alapján Összetett protokollok esetén szokásos (konformancia) Viselkedési ekvivalencia relációk definiálhatók Trace ekvivalencia Biszimuláció Időzítések is vizsgálhatók 26

Példa: Interfész analízis Contract based komponens specifikáció példa: JML public class Purse { final int MAX_BALANCE; int balance; /*@ invariant pin!= null && pin.length == 4 @*/ byte[] pin; /*@ requires amount >= 0; @ assignable balance; @ ensures balance == \old(balance) amount && \result == balance; @ signals (PurseException) balance == \old(balance); @*/ int debit(int amount) throws PurseException { if (amount <= balance) { balance -= amount; System.out.println("Debit placed"); return balance; } else { throw new PurseException("overdrawn by " + amount); }} Tételbizonyítás (EscJava2), futásidejű verifikáció (jmlc, jml) 27

Szisztematikus vizsgálat: Hibahatás analízis Célkitűzés Komponens jellemzők és rendszerszintű jellemzők közötti kapcsolatok megállapítása Teljesség: Minden komponens releváns jellemzői szerepelnek Analízis megközelítése Az architektúra szempontjából Alulról felfelé: A komponensek (alrendszerek) felől Felülről lefelé: Rendszerszintről lebontva Ok-okozati szempontból: Előrelépő (induktív): Ok hatásainak vizsgálata Visszalépő (deduktív): Okozat okainak felderítése Jellegzetes példa: Hibahatás analízis Hibafa Eseményfa Ok-következmény analízis Hibamód és -hatás analízis (FMEA) 28

Hibafa példa: Felvonó Boole-logikai kapcsolat Felvonó beragad Rendszerszintű esemény (veszély) Gomb beragad Tápfesz. kiesés Vezérlő hiba Közbenső esemény Tovább nem vizsgált esemény 380V kiesés UPS kiesés Vezérlő hardver hiba Vezérlő szoftver hiba Komponens szintű elsődleges események Elsődleges proc. hiba Tartalék proc. hiba 29

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 hibapont (SPOF) Kritikus esemény (több ágban 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 (hiba)szekvenciák kezelése

Releváns komponensek Eseményfa példa: Reaktorhűtés Hűtőrsz. csőtörés Elektromos hálózat Vészhűtés Reagens eltávolítás Folyamat leállítás kiváltó esemény van nem indul indul meghiúsul sikeres sikeres meghiúsul sikeres meghiúsul Komponens szintű esemény kiesett Rendszerszintű hatások 31

Eseményfa példa: Forgatókönyv valószínűségek Hűtőrsz. csőtörés Elektromos hálózat Vészhűtés Reagens eltávolítás Folyamat fékezés kiváltó esemény P1 van 1-P2 kiesett P2 nem indul P3 indul 1-P3 meghiúsul P4 sikeres 1-P4 sikeres meghiúsul P5 sikeres meghiúsul P5 P1 P3 P4 P1 P3 P4 P5 P1 P3 P1 P1 P5 P1 P2

Ok-következmény analízis példa: Túlnyomás védelem Túlnyomás Szelep1 hiba Vezérlő hiba Levezető szelep nyit igen nem Szelep2 hiba Kezelő hiba Kézi szelep nyit igen nem 33

Ok-következmény analízis példa: Valószínűségek Túlnyomás Levezető szelep nyit igen nem P0 P1 = pa + pb Kézi szelep nyit igen nem pa Szelep1 hiba P2 = pc + pd Vezérlő hiba pc pb Szelep2 hiba Kezelő hiba pd P0 P0 P1 P0 P1 P2

Hibamód és -hatás analízis (FMEA) példa Hibák és hatásaik felmérése A táblázat teljessége Minden komponens Minden hibamód Hatás analízis nem egyszerű 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 hiba............ 35

Tartalomjegyzék Motiváció Mit határoz meg az architektúra? Milyen vizsgálati módszerek vannak? Követhetőség Szisztematikus vizsgálati módszerek Interfész analízis Hibahatás analízis Modell alapú vizsgálatok Teljesítmény modellezés Megbízhatósági modellezés ATAM architektúra elemzés 36

Modell alapú architektúra elemzés 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 Teljesítmény modell Megbízhatósági modell Biztonsági modell Adatbiztonsági modell Moduláris modellalkotás (az automatizálás alapja) Architektúra: Komponensek és kapcsolatok Analízis modell: Ezekhez analízis modellkönyvtár elemei Rendszerszintű analízis modellek megoldása Lokális (komponens illetve kapcsolati szintű) paraméterek alapján rendszerszintű jellemzők számítása 37

Modell alapú vizsgálatok Architektúra terv: Komponensek + Kapcsolatok Analízis modulok Kapcsolatok paraméterei Analízis modell Rendszerjellemzők Komponensek paraméterei 38

Rendszerszintű analízis modellek Teljesítmény modell Megbízhatósági modell Biztonsági modell Komponens paraméterek Funkció lokális végrehajtási idő, prioritás, ütemezés Meghibásodási tényező, lappangási idő, javítási tényező, hibafedés, Veszély gyakoriság Kapcsolat paraméterek Hívás továbbítási gyakoriság, hívás szinkronitás Hibaterjedési valószínűség, hibaterjedés feltételei, javítási stratégia Veszély forgatókönyv, veszély kombinációk Modell Sorbanállási háló Markov-lánc, Petri-háló Markov-lánc, Petri-háló Rendszer jellemzők (számított) Kiszolgálási idő, áteresztőképesség, processzor kihasználtság Megbízhatóság, rendelkezésre állás, készenlét, MTTF, MTTR, MTBF Rendszerszintű veszély gyakoriság 39

Példa: Teljesítmény modellezés (LQN) Taszk (szerver): - Funkciók (szolgáltatás hívási pontok) - Prioritások Kliens (kérés): - Hívási gyakoriság CPU Processzor: - Telepítés - Ütemezés Funkció (szolgáltatás): - Lokális végrehajtási idő - Továbbhívás gyakoriság 40

Példa: Teljesítmény modellezés (LQN): Rétegek Taszk (szerver): - Funkciók (szolgáltatás hívási pontok) - Prioritások Kliens (kérés): - Hívási gyakoriság Funkció: - Lokális végrehajtási idő - Továbbhívás gyakoriság Hívás: - Szinkronitás Rendszerszinten számítható (átlagos és worst case) jellemzők: Kérés kiszolgálási idő Taszk áteresztőképesség Processzor kihasználtság 41

Példa: Az architektúra leképezése a teljesítmény modellre Osztályok és lokális jellemzők Processzorok és telepítés Interakciók (hívások) 42

Példa: Az architektúra leképezése a teljesítmény modellre Osztályok Telepítés Interakciók Modelltranszformáció LQN teljesítménymodell 43

Példa: Az architektúra leképezése a teljesítmény modellre Analysis results Architektúra minták használata Szinkron üzenetküldés: 44

Tartalomjegyzék Motiváció Mit határoz meg az architektúra? Milyen vizsgálati módszerek vannak? Követhetőség Szisztematikus vizsgálati módszerek Interfész analízis Hibahatás analízis Modell alapú vizsgálatok Teljesítmény modellezés Megbízhatósági modellezés ATAM architektúra elemzés 45

Rendszerszintű analízis modellek Teljesítmény modell Megbízhatósági modell Biztonsági modell Komponens paraméterek Funkció lokális végrehajtási idő, prioritás, ütemezés Meghibásodási tényező, lappangási idő, javítási tényező, hibafedés, Veszély gyakoriság Kapcsolat paraméterek Hívás továbbítási gyakoriság, hívás szinkronitás Hibaterjedési valószínűség, hibaterjedés feltételei, javítási stratégia Veszély forgatókönyv, veszély kombinációk Modell Sorbanállási háló Markov-lánc, Petri-háló Markov-lánc, Petri-háló Rendszer jellemzők (számított) Kiszolgálási idő, áteresztőképesség, processzor kihasználtság Megbízhatóság, rendelkezésre állás, készenlét, MTTF, MTTR, MTBF Rendszerszintű veszély gyakoriság 47

Példa: UML alapú megbízhatósági modellezés UML architektúra modell Analízis modellkönyvtár Megbízhatósági modell konstrukció 1,2E-06 Hazard rate 1,0E-06 8,0E-07 6,0E-07 4,0E-07 min me max Rendszerszintű megbízhatósági modell 2,0E-07 0,5 0,6 0,7 0,8 0,9 Control flow checking coverage Analízis eredmények 48

Példa: Megbízhatósági modellezés Architektúra modell Komponens: - Típus (HW, SW) - Szerep (variáns, menedzser) - Meghibásodási jellemzők: * meghibásodási gyakoriság, * lappangási idő, * javítási idő Kapcsolat: - Hibaterjesztési jellemzők: * hibaterjesztési valószínűség 49

Példa: Komponensek lokális tulajdonságai UML profil az extra-funkcionális tulajdonságokhoz Composite Component Class Simple Component StatefulHardware FaultOccurrenceRate ErrorLatencyTime PermanentFaultRatio RepairDelay StatelessHardware FaultOccurrenceRate PermanentFaultRatio RepairDelay StatefulSoftware FaultOccurrenceRate ErrorLatencyTime RepairDelay StatelessSoftware FaultOccurrenceRate System FaultTolerantStructure Redundancy Manager FaultTree Adjudicator Variant Stereotype: Stateful Software Tagged value: - Meghibásodási gyakoriság - Hiba lappangási idő - Javítási tényező 50

Példa: Komponens analízis alháló: Egy HW erőforrás (memória) Állandósult hibák detektálása periodikus teszteléssel Detektált hibák indítják a hibakezelé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 51

Példa: Kapcsolat analízis alháló: Hibaterjesztés Hiba olyan erőforrásban, amit a taszk használ Taszk aktiválási gyakoriság, hiba aktiválási lehetőségek: - aktivált hiba, ami a rendszerben marad - aktivált hiba, felülíródik, de hatása van - hatás nélkül felülírt hiba 52

Példa: Komponens analízis alháló: Egy szoftver taszk Hibadetektálás adott hibafedéssel és késleltetéssel Detektált hibák indítják a hibakezelést (pl. leállás) Hibadetektálás adott hibafedéssel és késleltetéssel A nem detektált hiba veszélyt okoz 53

Példa: Automatikus analízis eszköz Paraméterezett UML modell Redundanciaés hibakezelé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 55

Tartalomjegyzék Motiváció Mit határoz meg az architektúra? Milyen vizsgálati módszerek vannak? Követhetőség Szisztematikus vizsgálati módszerek Interfész analízis Hibahatás analízis Modell alapú vizsgálatok Megbízhatósági modellezés Teljesítmény modellezés ATAM architektúra elemzés 61

Architektúrák elemzése: ATAM Architecture Tradeoff Analysis Method (ATAM) Milyen elérendő minőségi célok (jellemzők) vannak? Hogyan viszonyulnak egymáshoz az elérendő célok? Hogyan elégíti ki az architektúra az elérendő célokat? Fázisok Megfelelnek-e az architektúra szintű tervezési döntések a céloknak és ezek prioritásainak? Milyen kockázatok maradtak? 1. Előkészítés: Ütemezés, közreműködők meghatározása 2. Kiértékelés a tervezőkkel 3. Kiértékelés a további érdekeltekkel 4. Eredmények rögzítése 62

Kiértékelés a tervezőkkel Üzleti célok bemutatása <- fejlesztés vezetője Funkciók, üzleti célok, elérendő minőségi jellemzők, érdekeltek Megkötések: technikai, gazdasági, menedzsment Az architektúra bemutatása <- tervezők Statikus és dinamikus nézetek Az architekturális tényezők azonosítása <- tervezők, elemzők Architektúra minták azonosítása (pl. rétegek, redundancia, ) Hasznossági fa (utility tree) elkészítése <- tervezők, elemzők Gyökér: Általános megfelelőség Második szint: Jellemzők (elérendő minőségi célok) További szintek: Finomított jellemzők Fa leveleihez forgatókönyvek rendelése: Jellemző szerepének bemutatása Bemenetek, hatások, amik relevánsak a minőségi jellemzőhöz Környezet (pl. tervezési vagy futásidőbeli) Elvárt reakció (támogatás) az architektúra szempontjából Prioritások felvétele a forgatókönyvek (azaz jellemzők) között Az architektúra analízise <- elemzők Hogyan támogatja az architektúra a fontos forgatókönyveket? Mik az érzékenységek, kompromisszumok, kockázatok? 63

Példa: Hasznossági fa Fontosság (Low, Medium, High) Megvalósítási bonyolultság (Low, Medium, High) 64

Példa: Az architektúra analízise A forgatókönyvek támogatása Forgatókönyv: Diszk hiba esetén az adatok helyreállítása szükséges kevesebb, mint 5 perc alatt Architektúra döntés: Replika adatbázis használata Érzékenységek A replika adatbázis használata befolyásolja a rendelkezésre állást A replika adatbázis használata befolyásolja a teljesítményt Szinkron replika frissítés Aszinkron replika frissítés Kompromisszumok optimalizálása (tradeoff) A replika adatbázis szinkronitása hatással van mind a rendelkezésre állásra, mind pedig a teljesítményre Kompromisszum (döntés): Aszinkron replika frissítés Kockázat A replika frissítés kockázatot jelent, ha a teljesítményveszteségnek nagy a költsége Adott várható terhelés és veszteség költség esetén megfelelő a döntés 65

Kiértékelés a további érdekeltekkel Új forgatókönyvek felvétele Tesztelők, felhasználók, érdekeltek közreműködése Karbantartás, tesztelés, ergonómia stb. szempontjai Brainstorming Prioritások meghatározása Az architektúra analízisének folytatása Elég a nagy prioritású új forgatókönyvek esetén Összefoglaló készítése Mintapélda: AbiWord architektúra elemzése Célok Architektúra Hasznossági fa, forgatókönyvek Analízis 66

Mintapélda: Az architektúra XAP: Arch. független, AP: Arch. függő komponensek Nézetek létrehozása: 67

Mintapélda: Hasznossági fa Prioritások 1. 4. 5. 6. 2. 3. 7. 68

Mintapélda: Forgatókönyvek 1. Hordozhatóság Bemeneti hatás: Új operációs rendszert is támogatni kell Környezet: Fejlesztési idő Reakció: A leválasztott OS függőségek (ld. AP*) miatt a támogatás hetekben mérhető idő alatt megvalósítható alacsony költséggel 3. Használhatóság Bemeneti hatás: A felhasználó HTML dokumentum készítése közben szeretné ellenőrizni az eredményt Környezet: Futási idő Reakció: A szoftver számos nézet lehetőségét biztosítja 5. Kiterjeszthetőség Bemeneti hatás: Nem áll a felhasználó rendelkezésére valamely funkció Környezet: Futási idő Reakció: A felhasználó számos előre elkészített plug-in segítségével tudja bővíteni a szoftver funkcionalitását 69

Mintapélda: Analízis Tradeoff: Hordozhatóság és teljesítmény Leválasztott a hordozhatóság érdekében OS függő a teljesítmény érdekében Natív alkalmazások 70

Érdekeltek bevonása Az ATAM előnyei Fejlesztő, tesztelő, felhasználó, elemző szempontjai Hatékony kommunikáció az érdekeltek között Tisztázott minőségi követelmények Jellemzők és scenariok azonosítása Prioritások meghatározása Kockázatok korai azonosítása Architektúra döntések hatásának explicit elemzése (modell alapú analízis is bevonható) Kompromisszumok vizsgálata Architektúrához kapcsolódó döntések dokumentálása 71

Kitekintés: Több szempontú optimalizálás Alapötlet: Pontozási rendszer alternatívák (itt: architektúra változatok) közötti választáshoz Több kritérium az alternatívák közötti választáshoz Több teljesítési szint minden kritérium esetén Pontszámok (értékelés, súlyozás) az egyes teljesítési szintekhez A pontszámok hozzárendelése a legnehezebb része az értékelésnek Az egyes alternatívák esetén összegezhetők a kritériumok teljesítési szintjeihez tartozó pontszámok, ami a döntés alapja PAPRIKA: Potentially all pairwise rankings of all possible alternatives Pontszámok hozzárendelése a kritériumok teljesítési szintjeihez, az alternatívák páronkénti rangsorolása (fontossági sorrendje) alapján Egy megadott rangsor által már meghatározott (dominált) további párokat nem kell értékelni (így nincs kombinatorikus robbanás) Pl.: 25 páronkénti rangsorolás elég, ha 5 kritérium és 3-3 szint van A pontszámok a rangsorolás alapján lineáris programozással hozzárendelhetők 72

Miről volt szó? Motiváció Mit határoz meg az architektúra? Milyen vizsgálati módszerek vannak? Követhetőség Szisztematikus vizsgálati módszerek Interfész analízis Hibahatás analízis Modell alapú vizsgálatok Megbízhatósági modellezés Teljesítmény modellezés ATAM architektúra elemzés 75