Formális módszerek GM_IN003_1 Bevezetés

Hasonló dokumentumok
Szoftverminőségbiztosítás

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

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

Szoftver újrafelhasználás

Részletes szoftver tervek ellenőrzése

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

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

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

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

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

Formális módszerek GM_IN003_1 Program verifikálás, formalizmusok

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

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

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

A szoftverfejlesztés eszközei

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

Részletes tervek ellenőrzése

Kogníció, koncepciók, modellek

Szoftverminőségbiztosítás

Modellinformációk szabványos cseréje. Papp Ágnes, Debreceni Egyetem EFK

Modellezési alapismeretek

Modellezési alapismeretek

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

Szoftver-technológia II. Modulok és OOP. Irodalom

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

Szoftver tervezés és design

KOMPUTER-ALGEBRA RENDSZEREK VERIFIKÁCIÓJA

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

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

Rendszer-modellezés, modellezési technikák

Modell alapú tesztelés mobil környezetben

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

Szoftverminőségbiztosítás

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

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

Intervenciós röntgen berendezés teljesítményszabályozójának automatizált tesztelése

Objektumorientált paradigma és a programfejlesztés

Programfejlesztési Modellek

Miért is transzformáljunk modelleket? Varró Dániel

... S n. A párhuzamos programszerkezet két vagy több folyamatot tartalmaz, melyek egymással közös változó segítségével kommunikálnak.

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

Bevezetés. Adatvédelmi célok

Életciklus modellek a rendszer és szoftverrendszer-fejlesztésben. SDLC System Development Life Cycle Software Development Life Cycle

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

Digitális eszközök típusai

Szoftver-technológia I.

A szoftver tesztelés célja

MŰSZAKI TESZTTERVEZÉSI TECHNIKÁK A TESZT FEJLESZTÉSI FOLYAMATA A TESZTTERVEZÉSI TECHNIKÁK KATEGÓRIÁI

Miskolci Egyetem Általános Informatikai Tanszék

A tesztelés feladata. Verifikáció

Mesterséges intelligencia alapú regressziós tesztelés

Alapszintű formalizmusok

Valószínűségi modellellenőrzés Markov döntési folyamatokkal

Bevezetés. Szendrei Rudolf Informatikai Kar Eötvös Loránd Tudományegyetem. Programozási technológia I. Szendrei Rudolf. Bevezetés. Szoftvertechnológia

Szoftverminőségbiztosítás

Információs rendszerek Információsrendszer-fejlesztés

Nagy bonyolultságú rendszerek fejlesztőeszközei

S01-7 Komponens alapú szoftverfejlesztés 1

Mai program. Web Technológiák. Webalkalmazások. Webalkalmazás, mint UI

Komponens alapú fejlesztés

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

Szoftver követelmények meghatározása

MINSÉGBIZTOSÍTÁS 1. eladás

A formális módszerek szerepe

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

Szoftverminőségbiztosítás

Modell alapú tesztelés: célok és lehetőségek

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

Objektumorientált paradigma és programfejlesztés Bevezető

Software Engineering

Objektum orientált software fejlesztés (Bevezetés)

TOGAF elemei a gyakorlatban

Rendszer-modellezés, modellezési technikák

S01-8 Komponens alapú szoftverfejlesztés 2

Az UPPAAL egyes modellezési lehetőségeinek összefoglalása. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

CAD Rendszerek I. Sajátosság alapú tervezés - Szinkron modellezé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

Szolgáltatásintegráció (VIMIM234) tárgy bevezető

Szoftver követelmények meghatározása

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

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

Bevezetés a programozásba

Alkalmazások architektúrája

ALAPFOGALMAK 1. A reláció az program programfüggvénye, ha. Azt mondjuk, hogy az feladat szigorúbb, mint az feladat, ha

Parametrikus tervezés

MEMS eszközök redukált rendű modellezése a Smart Systems Integration mesterképzésben Dr. Ender Ferenc

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

Szoftverminőségbiztosítás

S0-02 Típusmodellek (Programozás elmélet)

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

Fejlesztés kockázati alapokon 2.

A formális módszerek szerepe

Méréselmélet MI BSc 1

ORVOSTECHNIKAI ESZKÖZÖK GYÁRTMÁNYFEJLESZTÉSE AKTÍV ORVOSI ESZKÖZÖK FEJLESZTÉSE - PEMS V&V

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

Kód átvizsgálás. Irodalom. (Code review) code review,smart Bear Inc., ! Jason Cohen: Best kept secrets of peer

Modellezési alapismeretek

Adatstruktúrák, algoritmusok, objektumok

Megbízhatóság az informatikai rendszerekben

Átírás:

Formális módszerek GM_IN003_1 Formális módszerek Formális módszer! formalizált módszer(tan) Formális eljárások alkalmazása a fejlesztésben nincs olyan formális eljárás, ami egy komplex rendszer minden aspektusát leírná struktúrális és viselkedési leírások tervezés, terv verifikálás

Formális módszerek (folyt.) Formális eljárások közös koncepciók rögzített szintaxis, szemantika matematikai eszközök eltér" jelölés absztrakt matematikai modellek a rendszer állapotáról egyre részletesebb modellek -> implementáció (absztrakció csökken) a specifikáció finomítása Formális módszerek (folyt.) Szigorú módszerek a rendszer tervezésben és fejlesztésben Szimbólikus (matematikai) logikai konstrukciók => formálisak (reprezentációk, eszközök) Rendszerrel szembeni bizalom er"sítése implementáció követelmények Formális modellek létrehozása, formális követelményeknek megfelel"ség mechanikus bizonyítása (formális végrehajtás)

Formális módszerek felhasználása Más elemzési és tervezési módszerek kiegészítésére Bugok felderítése (kódban, specifikációban) Fejlesztési id" csökkentése (tesztelés) Bizonyos rendszer tulajdonságok biztosítása Automatizálás lehet"vé tétele Fejlesztés min"ségbiztosítása Alkalmazási területek real time adatbázisok hardver tervezés biztonság kritikus alkalmazások (orvosi, nukleáris, hadi technikai, közlekedési)

Motiváció A technológiai rendszerek kis hibái katasztrófákhoz vezethetnek A mindenütt jelenlév" szoftverek hibái egyre több területen okoznak meghibásodásokat A szoftver min"ség egyre jelent"sebb gazdasági és jogi probléma Min"ségbiztosítási kérdések Min"ség megközelítések folyamat (gyártás) min"ség -> termék min"ség szolgáltatás min"ség Szoftver fejlesztés specialitása nem egy helyes konstrukciót kell megfelel" min"ségben reprodukálni => hangsúly a konstrukción

A megbízhatóság mérnöki megközelítése Precizitás (mérések, számítások, becslések) Redundancia ( túl méretezés/tervezés ) Robusztus tervezés (kis hibák ne legyenek katasztrófálisak) Alrendszerek szeparálása Alkalmas tervezési minták, best practice követése Szoftver-rendszerek problémái A szoftverek nem folytonos függvényként m#ködnek A HW redundancia nem segít a szoftverhibákon Az alrendszerek nem szeparálhatók tisztán A költség hatékonyság fontosabb a megbízhatóságnál A megbízható szoftverek tervezése nem kiforrott

Szoftverek korrektségének biztosítása Általános stratégia: tesztelés Más megközelítések: szoftver folyamat min"ségbiztosítás, módszertanok Tesztelés szoftver hibák ellen: specifikált m#ködés ellen"rzése küls" hibák t#résére: hiba injektálás, hibaterjedés ellen"rzése A tesztelés korlátai A tesztelés célja hibák felfedése (javításra) és nem a hibátlanság igazolása kimerít" tesztelés lehetetlen A tesztesetek reprezentativitása központi kérdés váratlan, ritka esetek? A tesztelés költséges tesztesetek tervezése, végrehajtása

Formális módszerek és tesztelés Tesztelési kihívások Tesztesetek el"állítása random (hibafelfedés?, olcsó) intelligens (kézi, munkaigényes) automatikus (formalizált spec. szükséges) lefedési kérdések Végrehajtás (megfigyelés) Formális módszerek (model alapú) alk. teszteset generálásra Formális módszerek és tesztelés Spec Fejl. fázis Termék Kód Teszt esetek Verifikáció Teszt Form. Spec Fejl fázis Form. modell Gener. Termék Verifikáció autom.!

Specifikálás - követelmények Elvárt jellemz"k biztonsági jellemz"k (pl. kölcsönös kizárás) él"ségi jellemz"k (pl. éhezés elkerülése) konkurencia, elosztottsági jellemz"k (pl. holtpont mentesség) nem funkcionális követelmények (pl. futási id", memória használat, használhatóság) Specifikálás (folyt.) A teljes viselkedési specifikálás igényelné: a kód teljesíti a funkcionalitására vonatkozó el"írásokat adatkonzisztencia és invariancia el"írásokat modularitás, egységbezárási kérdések leírását fejlesztési fázisok termékei közötti ekvivalencia és finomítási viszonyok leírását

Formális módszerek alkalmassága A formális bizonyítás helyettesíthet sok (akár végtelen) tesztesetet A formális módszerek javítják a specifikálás min"ségét A formális módszerek garantálhatnak bizonyos rendszer-jellemz"ket FM alkalmassága (folyt.) Nem alkalmasak a teljes rendszer korrektségének bizonyítására Nem helyettesítik teljes egészében a tesztelést nem natív kód szintjén m#ködnek sok nem formalizálható jellemz" van Nem helyettesítik a megfelel" tervezési eljárásokat

A formális modellezés nehézségei A valóság leképezése formális követelmény specifikációra túl egyszer#sítés nem teljesség formális m#ködési/végrehajtási modellre modellezés (leképezés) pontossága Specifikáció formalizálása A formális specifikáció jól formáltsága és konzisztenciája géppel ellen"rizhet" A formálisan definiált specifikáció nem teljessége észlelhet" Az implementáció verifikálásának sikertelenségéb"l vissza lehet következtetni a specifikáció hibáira

Rendszerek leírása Leírási szintek Absztrakt szint Véges állapottér Automatikus bizonyítás elvben lehetséges Az egyszer#sítés elkerülhetetlen Konkrét szint Nem véges és komplex adatszerkezetek Valódi programozási nyelvi modellek Automatikus bizonyítások általában lehetetlenek Rendszerek leírása (folyt.) Leírások kifejez"sége Egyszer# leírások egyszer#, általános jellemz"k véges sok megkülönböztetett eset alacsony precizitás automatikus bizonyítások lehet"sége Komplex leírások teljes viselkedési leírás végtelen domének feletti kvantifikálás magas precizitás

Automatikus tételbizonyítás Automatikus bizonyítás (batch mode) a bizonyításközben nem kell interakció eszközök paramétereket be kell hangolni formális specifikálás kézzel Félautomatikus bizonyítás (interaktív) bizonyítás közben kellhet interakció ismerni kell az eszköz bels" m#ködését a bizonyítást ellen!rzi az eszköz Modell ellen"rzés Annak az automatikus ellen"rzése, hogy egy modell rendelkezik-e bizonyos jellemz"kkel (pl. holtpont mentesség) Ipari alkalmazás HW verifikálás SW verifikálás vezérl" rendszerek, protokollok absztrakciók ellen"rzése

Szemantikai kérdések Mir"l (és miért) szól a formális modell? operációs szemantika (állapotok, akciók) axiómatikus szemantika (helyesség bizonyítás) jelölési szemantika (metamodellek, kódgenerálás) Kihívások A valódi szoftver rendszerek hatalmasak és komplexek az elosztottsággal komplexitási robbanás jár Eldönthetetlenség Mérnöki kérdések er"források (emberi, gép, id") kielégít" megoldások (elfogadható megbízhatóság/kockázat)

Kihívások (folyt.) Milyen szint# absztrakció kell? fizikai, áramköri, hálózati szint bináris, bájtkód, forráskód architektúra, algoritmus, folyamat, modell Mik a lényeges jellemz"k? típus biztonság, részleges/teljes korrektség, holtpont, éhezés, él"ség, reaktivitás Kihívások (folyt.) Tudásgát er"sen absztrakt munka ráfordítás igényes néhány területen nincsenek eszközök diszkrét~folytonos id" id"variáns nem lineáris rendszerek

Occam borotvája Heurisztika - a legegyszer#bb még megfelel" modellt kell választani Absztrakciók irreleváns részletek mell"zése -> fontos jellemz"k maradnak további redukció a komplexitás csökkentésére Elfogadott, bevált modellek alkalmazása Szoftver rendszerek modellezése Különböz" rendszer nézetek funkcionális/relációs/szekvenciális nézetek a rendszer mint input/output reláció, függvény absztrakt adattípusok a rajtuk értelmezett m#veletekkel (szekvenciákkal) struktúrális nézetek komponensek és kapcsolataik OO modellezés

Szoftver rendszerek modellezése Viselkedési modellek reaktivitás konkurencia/elosztottság interakció ismeretlen környezettel Modellezési szempontok, kritériumok fontos jellemz"k funkcionális korrektség, terminálás, holtpontok, éhezés Szoftver rendszerek modellezése Konkurens/Interaktív rendszerek nem determinisztikusan el"forduló események állapot átmenet rendszerek számítás = állapotok szekvenciája átmenetek mentén állapot = rendszer (globális) állapot átmenetek = állapotok változása végrehajtási modellek lineáris (számítási utak) elágazó (számítási fák)

Konkurrens reaktív rendszerek Reaktív rendszer: interakció a környezettel, nem termináló rendszerek (kommunikációs protokollok, HW áramkörök) Konkurrens rendszerek: egyid"ben m#köd" komponensek aszinkron (interleaved) rendszerek (egyszerre csak egy komponens lép) szinkron rendszerek (minden komponens egyid"ben lép) Több szempontú leírás Processz algebra Állapottérkép Adatfolyam model

Formális módszer használata Fogalmi tér kialakítása Probléma formalizálás ezen keretek között Formális modell elemzése Elemzési eredmények használata Biztonság kritikus szoftverek Szabványokban fejlesztési el"írások követelmény specifikációra tervezésre és fejlesztés formális eljárások használatának követelménye

Verifikáció és validáció Requirements Service and analysis maintenance Requirements documents Test design Validated and certified system Validáció System Vlidation and specification certiafication Statikus ellen"rzés Modell végrehajtás Formális verifikáció System specification Top-level design Test design Verified system System testing Design specification of the system Test design Integrated system Tesztelés Detailed System design integration Module Test Tested design design modules Construction Module and coding testing Modules Formális módszerek a gyakorlatban Félformális modellek létrehozása pl. UML Automatikus modell generálás Formális modell Kód generálás kiegészítés Modell elemzés Implementáció