Modellezési alapismeretek

Hasonló dokumentumok
Modellezési alapismeretek

Modellezési alapismeretek

Modellezési alapismeretek

Modellezési alapismeretek

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

A konkréttól az absztraktig és vissza -a modellvezérelt tervezés az informatikában

Szoftverminőségbiztosítás

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

Modell alapú tesztelés mobil környezetben

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

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ő

Nagy bonyolultságú rendszerek fejlesztőeszközei

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

Modellező eszközök, kódgenerálás

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

V. Félév Információs rendszerek tervezése Komplex információs rendszerek tervezése dr. Illyés László - adjunktus

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

Modellezés és metamodellezés

KOMPUTER-ALGEBRA RENDSZEREK VERIFIKÁCIÓJA

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

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

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

Formális módszerek GM_IN003_1 Bevezetés

Modellezés és metamodellezés

Szoftver újrafelhasználás

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

A szoftverfejlesztés eszközei

Folyamatmodellezés (BPMN) és alkalmazásai

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

Rendszermodellezés: házi feladat bemutatás

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

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

Intelligens eszközök fejlesztése az ipari automatizálásban Evosoft Hungary kft., Evosoft Hungary Kft.

Szoftver karbantartás

Metamodellezés. Simon Balázs BME IIT, 2011.

Részletes tervek ellenőrzése

Modellek fejlesztése

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

Modellek fejlesztése

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

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

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

Software Engineering Babeş-Bolyai Tudományegyetem Kolozsvár

Transzformációk integrált alkalmazása a modellvezérelt szoftverfejlesztésben. Ráth István

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

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

Megoldások a mintavizsga kérdések a VIMIAC04 tárgy ellenőrzési technikák részéhez kapcsolódóan (2017. május)

Programfejlesztési Modellek

Informatikai technológiák szakirány Rendszertervezés ágazat

Software Engineering

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

Programok értelmezése

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

Mérés és modellezés 1

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

JUnit. JUnit használata. IDE támogatás. Parancssori használat. Teszt készítése. Teszt készítése

S01-8 Komponens alapú szoftverfejlesztés 2

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

Informatikai rendszertervezés

Mérés és modellezés Méréstechnika VM, GM, MM 1

30 MB INFORMATIKAI PROJEKTELLENŐR

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

Kvantitatív módszerek

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

Kogníció, koncepciók, modellek

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

Adatbázisok elmélete 4. előadás

Informatikai rendszertervezés

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

Méréselmélet MI BSc 1

A TANTÁRGY ADATLAPJA

UML (Unified Modelling Language)

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

Modellek végrehajtása, kódgenerálás

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

A szoftverfejlesztés eszközei

Objektumorientált paradigma és a programfejlesztés

Programozás alapjai C nyelv 8. gyakorlat. Mutatók és címek (ism.) Indirekció (ism)

Objektumorientált paradigma és programfejlesztés Bevezető

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

VIR alapfogalmai. Előadásvázlat. dr. Kovács László

A szoftverellenőrzés szerepe

TARTÓSZERKEZETEK TERVEZÉSE ÉS TŰZGÁTLÓ MEGOLDÁSOK BIM ALAPÚ PROJEKTEKNÉL

Modellek dokumentálása

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

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

Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT 6. kurzus

Függvények. Programozás alapjai C nyelv 7. gyakorlat. LNKO függvény. Függvények(2) LNKO függvény (2) LNKO függvény (3)

Programozás alapjai C nyelv 7. gyakorlat. Függvények. Függvények(2)

Bevezetés a programozásba

PTE PMMIK, SzKK Smart City Technologies, BimSolutions.hu 1

Korlátos modellellenőrzés. dr. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

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

Utolsó módosítás:

Miskolci Egyetem Általános Informatikai Tanszék

A tesztelés feladata. Verifikáció

Szoftver-modellellenőrzés absztrakciós módszerekkel

1. Feladat: beolvas két számot úgy, hogy a-ba kerüljön a nagyobb

Ráth István. DECOS Nemzeti Nap október 15. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Átírás:

Modellezési alapismeretek Rendszermodellezés Budapesti Műszaki és Gazdaságtudományi Egyetem Hibatűrő Rendszerek Kutatócsoport Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék 1

Motiváció Stunts autóverseny, 1990. o Distinctive Games/Brøderbund Software o https://en.wikipedia.org/wiki/stunts_(video_game) Versenyzés + pályaszerkesztés (!) o Tkp. egy szakterület specifikus modell 2

Motiváció : mire jó egy modell? Végig lehet-e menni egy pályán? Ha igen, melyik kocsival? Egyértelmű-e a pálya meghatározása? Járható-e egy pálya fordított irányban is? Milyen elemek kombinálhatóak? Milyen pályák állíthatóak elő? Valósághű -e egy pálya? Alkalmas-e versenyzésre? Szeretnék új típusú pályaelemet, mi kell ehhez? Kép: http://www.abandonia.com/games/73/stunts.htm 3

Tartalom Modell és modellezés Mire használunk modelleket? Alapfogalmak 4

Modellezés alapfogalmai Modell és modellezés Mire használunk modelleket? Alapfogalmak 5

Mi a modell? "The sciences o do not try to explain, o they hardly even try to interpret, o they mainly make models. By a model is meant o a mathematical construct which, o with the addition of certain verbal interpretations, o describes observed phenomena. The justification of such a mathematical construct is solely and precisely that it is expected to work. Neumann János 6

7

Mi a modell? Egy valós vagy hipotetikus világ (a rendszer ) o egy részének o egyszerűsített képe, amely o a rendszert helyettesíti bizonyos megfontolásokban Döntések: o A világ mely része? o Mit hanyagol el? o Hogy feleltethető meg a világnak? Haszna o kisebb (véges) o áttekinthetőbb 8 Mikor lehet és érdemes felhasználni?

Mi NEM a modell? A modell nem a valóság! A modell nem a diagram. o az csak egy nézet 9

Modell vs. valóság 10

Matematikai modell vs. valóság Minden modell: zárt világ o Hatások, faktorok o Paraméterek o Érvényesség A modell bizonytalan működésű ezen a világon kívül Nem minden fejezhető ki előre o Emberi döntés o Generált modellek Megoldás validációja Normál működés o Peremfeltételek: Van elég anyag Minden rendelés határidőre o Célfüggvény: Költségminimum Rendkívüli eset o Peremfeltétel Anyaghiány o Célfüggvény: 1. Minél több rendelés határidőre 2. Költségminimum 11

Matematikai modell vs. valóság Minden modell: zárt világ o Hatások, faktorok o Paraméterek o Érvényesség A modell bizonytalan működésű ezen a világon kívül Nem minden fejezhető ki előre o Emberi döntés o Generált modellek Megoldás validációja Normál működés o Peremfeltételek: Van elég anyag Minden rendelés határidőre o Célfüggvény: Költségminimum Rendkívüli eset o Peremfeltétel Anyaghiány o Célfüggvény: 1. Minél több rendelés határidőre 2. Költségminimum 12

Példa: biztonságkritikus SW Repülőgép fékezése: kerékfék + sugárfordító 13

1993 Varsó: Lufthansa 2904 (SW) védelem: Kerék a levegőben (mindkét főfutó terhelt) OR Kerék csúszik (egy kerék gyorsan forog) (gép a leszállópályán) (PILÓTA FÉKEZHET) 14

Modell minősége A valóság: nyílt világ A modell: zárt világ Valósághűség: o Valószínű + kritikus esetek 15

Modell minősége A valóság: nyílt világ A modell: zárt világ Valósághűség: o Valószínű + kritikus esetek 16

Páncélozás? Wald Abraham 17

Páncélozás? Wald Abraham 18

Modell és modellezés Mire használunk modelleket? Alapfogalmak 19

Modellezés a gyakorlati életben? Pl.: [svéd cég] webes konyhatervezője 20

Modellezés a gyakorlati életben? Pl.: [svéd cég] webes konyhatervezője 21

Ez is modellezési nyelv! Verilog szakterület specifikus, hardver leíró 22

Ez is modellezési nyelv! Verilog szakterület specifikus, hardver leíró 23

Mi értelme van modellezni? Én szoftvert készítek. Kell-e modelleznem is? o Már így is ezt teszed! (A szoftver forráskódja is egyfajta modell ) Ami fontosabb: mentális modellek Mikor kell kifejezetten lejegyezni a modelleket? o Szerepe: kommunikáció Ember ember Ember gép Gép gép Ember saját maga, kicsivel később Pl. évekkel később emlékezni kéne mérnöki döntések indokaira 24

A cél a kommunikáció Modellezési nyelvek o Modell megértése szükséges o Modellezési nyelvek Szintaxis: hogyan írom le a modellt? pl. SystemC o Matematikai struktúra : absztrakt szintaxis o Jelölés: konkrét szintaxis rajzjelek / szöveges formátum Szemantika: mit jelent a modell? i++ Kényszerfeltételek, korlátozások o Szintaktikai helyesség, jólformáltság o Tervezési konvenciók (csapatonként változhat) 25

A modell modellje 26

Alapfogalmak - Metamodellezés Modellezési nyelv: milyen típusú elemei vannak? o és milyen kapcsolatban állhatnak ezek az elemek? o és ezeknek a típusoknak mik a viszonya egymáshoz? Metamodell = egy modellezési nyelv modellje Illusztrációk, amelyeket mindenki ismer o Adatbázis tábla o XML dokumentum o Relációs adatbázisséma o UML objektum diagram o 27

Alapfogalmak - Metamodellezés Modellezési nyelv: milyen típusú elemei vannak? Neptun-kód o és milyen kapcsolatban állhatnak ezek az elemek? o és ezeknek a típusoknak mik a viszonya egymáshoz? Diák Átlag hallgat Terem Kurzus Metamodell = egy modellezési nyelv modellje Illusztrációk, amelyeket mindenki ismer Kód o Adatbázis tábla relációs adatbázisséma o XML dokumentum XML séma (vagy DTD) o Relációs adatbázisséma Egyed-kapcsolat (ER) modell o UML objektum diagram osztálydiagram o 28

Rendszertervezési folyamat Menedzsment Beszerzés, ellátás Tervezés, vezetés, értékelés ANSI/EIA 632 szabványból Rendszer tervezés Követelmények definiálása Megoldás definiálása Mérnöki feladatok Termék Elkészítése Implementáció Használhatóság Ezeket tipikus modellekkel támogatni Kiértékelés Rendszer analízis Követelmény validáció Rendszer verifikáció Végtermék validáció

Felhasználás Dokumentáció A modell egyszerűbb o könnyebben elmondható, mint a teljes valóság o fokozatosan finomítható (ld. később) Kommunikáció, szemléltetés o demonstráció (ld. később) o érthető szöveges nyelv o szemléletes diagram Gondolkodás, tervezés támogatása o hasonlóak a szempontok o kommunikáció magunkkal 30

Felhasználás Dokumentáció A modell egyszerűbb o könnyebben elmondható, mint a teljes valóság o fokozatosan finomítható (ld. később) Kommunikáció, szemléltetés o demonstráció (ld. később) o érthető szöveges nyelv o szemléletes diagram Gondolkodás, tervezés támogatása o hasonlóak a szempontok o kommunikáció magunkkal 31

Felhasználás - Analízis Emberi erővel vagy (részben) automatizáltan Módszer o Felületes, statikus elemzés pl. hiányzó pontosvessző o Dinamikus állapottér bejárás modellellenőrzés o Formális állítások bizonyításával Cél o Ellenőrzés, hibák keresése (best effort) o Szolgáltatásbiztonsági kritériumok igazolása (erősebb!) o Jellemzők számítása, tervezése (pl. ütemezés) 32

Felhasználás - Analízis Emberi erővel vagy (részben) automatizáltan Módszer o Felületes, statikus elemzés, pl. hiányzó pontosvessző o Dinamikus állapottér bejárással modellellenőrzés o Formális állítások bizonyításával Cél o Ellenőrzés, hibák keresése (best effort) o Szolgáltatásbiztonsági kritériumok igazolása (erősebb!) o Jellemzők számítása, tervezése (pl. ütemezés) 33

Validáció Felhasználás: szimuláció o Jót építettem fel? Demonstráció o A kommunikáció eszközeként Kísérlet o Tulajdonságok elemzésére o Mérések o A valóságban költségesen kipróbálható o Elméleti úton előre meg nem határozható 34

Felhasználás - Származtatás Emberi erővel vagy (részben) automatizáltan Eredmény o programkód, analizálható nyelv, stb. generálása o másik modell finomítás, következő tervezési fázis részaspektus modellek integrációja o lehet tulajdonságmegőrző Pl: abszolútérték [n>=0] -/n n/- [n<0] -/n*(-1) int n; scanf("%d",&n); if (n>=0) { printf("%d",n); } else { n=n*(-1); printf( %n",a); } 35

Felhasználás - Származtatás Emberi erővel vagy (részben) automatizáltan Eredmény o programkód, analizálható nyelv, stb. generálása o másik modell finomítás, következő tervezési fázis részaspektus modellek integrációja o Lehet tulajdonságmegőrző Pl: abszolútérték [n>=0] -/n n/- [n<0] -/n*(-1) int n; scanf("%d",&n); if (n>=0) { printf("%d",n); } else { n=n*(-1); printf( %n",a); } 36

Webalkalmazás fejlesztése 37

Okostelefon alkalmazás fejlesztése 38

Reverse engineering Modell visszafejtése a rendszer alapján 39

Vasúti szoftverek fejlesztése Megoldandó probléma: SIL-4 vasúti alkalmazás fejlesztési lépéseinek és ezek Üzemeltetés, eredményeinek ellenőrzése karbantartás Kihívások: Követelmények elemzése Rsz. validáció tervezés Rendszer validáció Szisztematikus felülvizsgálat Modellezés és formális verifikáció Rendszer specifikálás Architektúra tervezés Modul tervezés Rendszerteszt tervezés Integrációs teszt tervezés Modul teszt tervezés Rendszer verifikáció Rendszer integrálás Modul verifikáció Modul implementáció Folyamat modell minőségbiztosítás 40

Vasúti szoftverek fejlesztése Megoldandó probléma: SIL-4 vasúti alkalmazás fejlesztési lépéseinek és ezek Üzemeltetés, eredményeinek ellenőrzése karbantartás Kihívások: Követelmények elemzése Rsz. validáció tervezés Rendszer validáció Szisztematikus felülvizsgálat Modellezés és formális verifikáció Rendszer specifikálás Architektúra tervezés Modul tervezés Rendszerteszt tervezés Integrációs teszt tervezés Modul teszt tervezés Rendszer verifikáció Rendszer integrálás Modul verifikáció Modul implementáció Folyamat modell minőségbiztosítás 41

Yakindu:állapotdiagram 42

Yakindu:állapotdiagram 43

Yakindu 3D szimuláció Járműkövető/távolságtartó rendszer interaktív 3D szimulációja Interactive 3D Visualization and Simulation with State Machines, Benjamin Bolte, 2017. https://blogs.itemis.com/en/interactive-3d-visualization-and-simulation-with-state-machines 44

Modell és modellezés Mire használunk modelleket? Alapfogalmak

Alapfogalmak rendszer és külvilág Nem modellezzük teljesen forgatókönyvek,interakciók Külvilág Rendszer Kölcsönhatás Fekete doboz Fehér doboz Interfész Specifikáció Szintén modell 46

Alapfogalmak rendszer és külvilág Alrendszer Külvilág Alrendszer Kölcsönhatás Alrendszer 47

Alapfogalmak Finomítás/Absztrakció Finomítás: a modell gazdagítása részletekkel Rendszer felbontása alrendszerekre hogy az eredeti modell absztrakció maradjon Inverze: (vertikális) absztrakció Az előbbi dián egy hierarchikus finomítás volt o dobozok kibontása Finomítható más is... o Pl. Halmazfinomítás: változók értékkészlete Jó / rossz helyett Gyors / átlagos / lassú / hiányos / veszélyes Nincsenek ellentmondó részletek Alrendszerek összevonása 48

Alapfogalmak finomítás 49

Alapfogalmak- finomítás 50

Halmazfinomítás Diszjunkt részhalmazok hozzárendelése elemekhez Jó a 2 3Rossz Gyors Biztonságos Szép Lassú Hibás Hiányos 51

Halmazfinomítás Diszjunkt részhalmazok hozzárendelése elemekhez a 1 a 2 B 1 a 3 B 3 B 2 a i, A, R(a i ) B úgy, hogy R(a i ) R(a j )= i, j 52

Absztrakció Az absztrakció helyes, ha az eredeti rendszer minden eleméhez hozzárendelhető az absztrakt rendszer egy eleme. Az absztrakció teljes a vizsgált tulajdonságra nézve, ha a rendszer összes jellemzője megjelenik, amely a vizsgált tulajdonságot befolyásolja. (Több definíció lehetséges.) 53

Refactor példa Számok rendezése o Növekvő sorban: 18,23,131,247,1925 o Csökkenő sorban: 1925,247,131,23,18 o ABC rendben: 131,18,1925,23,247 Kód (minimumkiválasztás): void rendezes_novekvo(int* tomb, int meret){ int i, j; for(i = 0; i<meret; i++){ int minimumhely = i; for(j= i + 1; j<meret; j++){ if(tomb[j] < tomb[minimumhely]) minimumhely= j; } } } int tmp = *i; *i = *minimumhely; *minimumhely = tmp; 54 Miben különbözik a másik két sorrendhez tatozó kód?

Refactor példa Számok rendezése o Növekvő sorban: 18,23,131,247,1925 o Csökkenő sorban: 1925,247,131,23,18 o ABC rendben: 131,18,1925,23,247 Kód (minimumkiválasztás): void rendezes_novekvo(int* tomb, int meret){ int i, j; for(i = 0; i<meret; i++){ int minimumhely = i; for(j= i + 1; j<meret; j++){ if(tomb[j] < tomb[minimumhely]) minimumhely= j; } } } int tmp = *i; *i = *minimumhely; *minimumhely = tmp; 55 Miben különbözik a másik két sorrendhez tatozó kód?

Refactor példa Ötlet: Az összehasonlítást tegyük külön függvénybe void rendezes(int* tomb, int size, bool (*hasonlit)(int,int)){ int i, j; for(i = 0; i<meret; i++){ int minimumhely = i; for(j= i + 1; j<meret; j++){ if( (*hasonlit)(tomb[j],tomb[minimumhely]) ) minimumhely= j; } } } int tmp = *i; *i = *minimumhely; *minimumhely = tmp; Kódduplikáció elkerülése Mit lehet még újrafelhasználni ebből a kódból? 56

Refactor példa Ötlet: Az összehasonlítást tegyük külön függvénybe void rendezes(int* tomb, int size, bool (*hasonlit)(int,int)){ int i, j; for(i = 0; i<meret; i++){ int minimumhely = i; for(j= i + 1; j<meret; j++){ if( (*hasonlit)(tomb[j],tomb[minimumhely]) ) minimumhely= j; } } } int tmp = *i; *i = *minimumhely; *minimumhely = tmp; Kódduplikáció elkerülése Mit lehet még újrafelhasználni ebből a kódból? 57

Absztrakció szerepe a kódolásban Észrevétel: o Kiválasztásos rendezőalgoritmus: absztrakció o Különböző hasonlító függvények ( sorrendek): konkretizálás Jó kód: o Algoritmusok paraméteresen o Különböző célok külön példányosítás o Pl. ez az algoritmus használható szavak sorrendezésére 58

Modellezés a tárgyban 59