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

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

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

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

Szoftverminőségbiztosítás

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

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

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

Nagy bonyolultságú rendszerek fejlesztőeszközei

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

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

Operációs rendszerek. Bemutatkozás

IBM felhő menedzsment

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

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

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

Fejlesztés kockázati alapokon 2.

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

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

Szoftver karbantartá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

Szoftver-mérés. Szoftver metrikák. Szoftver méré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

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

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

A szolgáltatásbiztonság alapfogalmai

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

A szolgáltatásbiztonság alapfogalmai

A kockázatelemzés menete

A szolgáltatásbiztonság alapfogalmai

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

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

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

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

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

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

Párhuzamos programozási platformok

S01-7 Komponens alapú szoftverfejlesztés 1

Párhuzamos programozási platformok

Biztonságkritikus rendszerek architektúrája

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

Formális módszerek GM_IN003_1 Bevezetés

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

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

UML (Unified Modelling Language)

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

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

Biztonságkritikus rendszerek

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

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

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

Digitális eszközök típusai

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

Robusztusság tesztelés

Szoftverminőségbiztosítás

Részletes tervek ellenőrzése

Informatikai rendszertervezés

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

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

Szoftverminőségbiztosítás

Teljesítménymodellezés

Informatikai rendszertervezés

webalkalmazások fejlesztése elosztott alapon

Szoftverminőségbiztosítás

Szoftver újrafelhasználá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

Megbízhatósági analízis

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

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

A szoftverfejlesztés eszközei

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

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

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ó

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

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

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

Részletes szoftver tervek ellenőrzése

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

Dr. Mileff Péter

Szoftver karbantartási lépések ellenőrzése

Komponens alapú fejlesztés

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

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

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

Tesztelési szintek Tesztautomatizálás

Nyílt forráskódú irodai programkomponensek vállalati környezetbe való integrációjának vizsgálata és implementációja

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

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

Szekvencia diagram. Szekvencia diagram Dr. Mileff Péter

Alapszintű formalizmusok

SQLServer. Probléma megoldás

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

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

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

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

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

Operációs rendszerek. Az Executive és a kernel Policy és mechanizmusok szeparálása Executive: policy - objektum kezelés Kernel: mechanizmusok:

A SZOFTVERTECHNOLÓGIA ALAPJAI

Á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

Jellegzetes nyelvek architektúra tervezéshez: AADL Modell megadásának formái: 10

Mit és hogyan határoz meg az architektúra? 1/2 Szolgáltatásbiztonság Hibadetektálás: Push/pull, 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: Párhuzamos feldolgozás, cache, erőforrás ütemezés, dinamikus hozzárendelé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: Minták (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 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 Futásidejű technikák: Felhasználói modell, feladatmodell, rendszermodell karbantartása Tervezési idejű technikák: Felhasználói felület elhatárolása 12

Elérendő tulajdonságok és tervezési tér (áttekintés) 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 13

Példa: Előírt módszerek a 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 Diverziter 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 14

Példa: OTS komponensek használata kritikus rendszerekben Komponensek SIL szintje Alapértelmezés: Egyező a rendszerével Csökkentés: Ha megakadályozható a szoftver komponens hibájából adódó rendszerszintű hiba SPOF elkerülése Függetlenséget igazolni kell (C)OTS komponensek használata 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 15

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 17

Példa: Architekturális megoldás SIL csökkentésre Független visszaellenőrzés: SIL-2 modulok, a Locking modul SIL-4 (1) (2) (3) Channel 1 (3) Channel 2 (1) (1) (2) (3) (1) (2) Signature (1) Signature (3) (3) Locking locking (4) (4) I/O 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ú vizsgálatok: architektúra analízis Sztochasztikus analízis: extra-funkcionális 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 Trade-off analízis 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

Releváns komponensek Eseményfa példa: Reaktorhűtés Hűtőrsz. csőszakadá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ű kiesett Rendszerszintű hatások 30

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 31

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............ 32

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 33

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 34

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

Rendszerszintű analízis modellek 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ő, hibafedés, Funkció lokális végrehajtási idő, prioritás, ütemezés Veszély gyakoriság Kapcsolat paraméterek Hibaterjedési valószínűség, hibaterjedé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 36

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 37

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 38

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ő 39

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 40

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 41

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 42

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 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 Megbízhatósági modellezés Teljesítmény modellezés ATAM architektúra elemzés 50

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

Rendszerszintű analízis modellek 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ő, prioritás, ütemezés Veszély gyakoriság Kapcsolat paraméterek Hibaterjedési valószínűség, hibaterjedé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 52

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 53

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 54

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) 55

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 56

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

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 58

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 59

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 felismerése (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, kockázatok, erős és gyenge pontok? 60

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

Példák: 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 <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 Tradeoff (kompromisszumok optimalizálása) A replika adatbázis szinkronitása hatással van mind a rendelkezésre állásra, mind pedig a teljesítményre 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 esetén megfelelő a döntés 62

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 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 63

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

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

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 66

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 67

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) Példa: 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 68

Példa (forrás: Wikipedia) Criterion Category Points Education poor 0 good 8 very good 20 excellent 40 Experience < 2 years 0 2 5 years 3 > 5 years 10 References poor 0 good 27 Social skills poor 0 good 10 Enthusiasm poor 0 good 13 69

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 71