Folyamatmodellezés. Budapesti Műszaki és Gazdaságtudományi Egyetem. Hibatűrő Rendszerek Kutatócsoport. Budapesti Műszaki és Gazdaságtudományi Egyetem

Hasonló dokumentumok
Folyamatmodellezés. Budapesti Műszaki és Gazdaságtudományi Egyetem. Hibatűrő Rendszerek Kutatócsoport. Budapesti Műszaki és Gazdaságtudományi Egyetem

Folyamatmodellezés. 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. Folyamatmodellezés

Folyamatmodellezés (BPMN) és alkalmazásai

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

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

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

Modell alapú tesztelés mobil környezetben

Modellek ellenőrzése és tesztelése

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

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

Bánsághi Anna 2014 Bánsághi Anna 1 of 31

Folyamatmodellezés (BPMN), adatfolyamhálók

Java programozási nyelv

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

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

Modellek fejlesztése

Szoftver karbantartás

Programozási nyelvek (ADA)

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

Programfejlesztési Modellek

Modellek fejlesztése

A programozás alapjai előadás. Amiről szólesz: A tárgy címe: A programozás alapjai

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

A fordítóprogramok szerkezete. Kódoptimalizálás. A kódoptimalizálás célja. A szintézis menete valójában. Kódoptimalizálási lépések osztályozása

3. gyakorlat Folyamatmodellek, kooperáló viselkedésmodellek Megoldások

Bevezetés az informatikába

Folyamatmodellezés (BPMN), adatfolyamhálók

Modellezési alapismeretek

Modellezési alapismeretek

Programozási technológia

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

AWK programozás, minták, vezérlési szerkezetek

Részletes szoftver tervek ellenőrzése

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

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

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

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

AWK programozás, minták, vezérlési szerkezetek

Szimuláció. Fault Tolerant Systems Research Group. Budapest University of Technology and Economics. Department of Measurement and Information Systems

Bánsághi Anna 2014 Bánsághi Anna 1 of 68

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

Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT

Digitális technika VIMIAA01 9. hét

5. gyakorlat Modellek ellenőrzése és tesztelése Megoldások

BOC Information Technologies Consulting GmbH. Minőségmenedzsment

Java II. I A Java programozási nyelv alapelemei

3. gyakorlat Folyamatmodellek, kooperáló viselkedésmodellek Megoldások

Java II. I A Java programozási nyelv alapelemei

3. gyakorlat Folyamatmodellek, kooperáló viselkedésmodellek Megoldások

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)

Webprogramozás szakkör

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

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

Informatikai rendszertervezés

2) Tervezzen Stibitz kód szerint működő, aszinkron decimális előre számlálót! A megvalósításához

5. előadás. Programozás-elmélet. Programozás-elmélet 5. előadás

NEM-DETERMINISZTIKUS PROGRAMOK HELYESSÉGE. Szekvenciális programok kategóriái. Hoare-Dijkstra-Gries módszere

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

Elérhetőségi probléma egyszerűsítése: Állapottér és struktúra redukció Petri-háló alosztályok

Informatikai rendszertervezés

Operációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Készítette: Oláh István mestertanár

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

S01-7 Komponens alapú szoftverfejlesztés 1

Szoftverminőségbiztosítás

Programozási alapismeretek 1. előadás

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

Integrált keretrendszer

Modellezési alapismeretek

10-es Kurzus. OMT modellek és diagramok OMT metodológia. OMT (Object Modelling Technique)

Algoritmizálás, adatmodellezés 1. előadás

Szoftverminőségbiztosítás

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

Strukturális modellezés

III. Alapfogalmak és tervezési módszertan SystemC-ben

Kölcsönhatás diagramok

A C programozási nyelv II. Utasítások. A függvény.

8.3. AZ ASIC TESZTELÉSE

BPEL nyelvű üzleti folyamatok modellezése és formális ellenőrzése

Termelés- és szolgáltatásmenedzsment Részidős üzleti mesterszakok

Strukturális modellezés

Részletes tervek ellenőrzése

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

Logisztikai hálózatok funkcionális elemekre bontása intralogisztikai

8. Komponens elvű programfejlesztés. Ágens, akció, cél, kontraktus.

Modellezés Petri hálókkal. dr. Bartha Tamás dr. Majzik István dr. Pataricza András BME Méréstechnika és Információs Rendszerek Tanszék

Nyolcbites számláló mintaprojekt

Témakörök. Structured Analysis (SA) Előnyök (SA) (SA/SD) Jackson Structured Programming (JSP) Szoftvertechnológia

1. Kombinációs hálózatok mérési gyakorlatai

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

Programozási alapismeretek. 1. előadás. A problémamegoldás lépései. A programkészítés folyamata. Az algoritmus fogalma. Nyelvi szintek.

AWK programozás Bevezetés

A fealdatot két részre osztjuk: adatstruktúrára és vezérlőre

Operációs rendszerek gyak.

Számítógép architektúra

Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe

MINTA Írásbeli Záróvizsga Mechatronikai mérnök MSc. Debrecen,

Átírás:

Folyamatmodellezé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

Tartalom Ismétlés, kitekintés Folyamatmodellezés célja Folyamatmodellek Vezérlési folyam Megvalósítás 2

Tartalom Ismétlés, kitekintés Folyamatmodellezés célja Folyamatmodellek Vezérlési folyam Megvalósítás 3

Ismétlés: felépítési vs. viselkedési modellek Felépítési (structural) modellek o Statikus o Rész és egész, összetevők o Kapcsolatok, összeköttetések Viselkedési (behavioral) modellek o Dinamikus o Időbeli lefolyás o Állapot, folyamat o Reakciók a külvilágra Nem fed le mindent, nem válik élesen szét 4 Az autóban van kamera és kormányvezérlő A kamera jeleket küld a sáv elhagyásáról (mennyit? mikor?) A sávtartó rendszerben a kamera jeleit fogadva a kormányvezérlő beavatkozik (mikor/hogyan?)

Viselkedésmodellek fő kérdései Mit csinál a rendszer? Esemény alapú modell Folyamat alapú modell Most milyen, és hogyan változik a rendszer? Állapot alapú modell 5

Definíció: Folyamat Folyamat: lépések sorozata, melyek sorrendben történő végrehajtása valamilyen célra vezet. 6

Tartalom Ismétlés, kitekintés Folyamatmodellezés célja Folyamatmodellek Vezérlési folyam Megvalósítás 7

Specifikáció Tervezés Implementáció Folyamatmodellezés célja o Végrehajtható modellek o Kódgenerálás Modell szintű ellenőrzés (Verifikáció) o Szimuláció o Monitorozás o Automatizált modellellenőrzés Dokumentáció 8

Példa: hogyan érkezik meg a termék? 9

Raktári Munkás Hardware Kereskedő Értékesítő Logisztikai Menedzser Példa: Rendelés kiszállítása Kiegészítő biztosítás szükséges Kiegészítő biztosítás megkötése Ellenőrzés, hogy kell-e kiegészítő biztosítás Mindig Címzés Postai Szállítandó áru Döntés, hogy postai, vagy különleges szállítási mód Szállítási mód Speciális Ajánlatkérés fuvarozóktól Fuvarozó kiválasztása, papírmunka Csomag összeállítás A biztosítás a fuvarszolgáltatás része Dokumentumok csatolása, csomag átvitele az elosztóközpontba Áru átvehető omg.org, BPMN 2.0 by Example 10

Raktári Munkás Hardware Kereskedő Értékesítő Logisztikai Menedzser Példa: Rendelés kiszállítása Opcionális végrehajtás Kiegészítő biztosítás szükséges Kiegészítő biztosítás megkötése Összetartozó vezérlési elemek Ellenőrzés, hogy kell-e kiegészítő biztosítás Mindig Címzés Postai Szállítandó áru Döntés, hogy postai, vagy különleges szállítási mód Szállítási mód Speciális Ajánlatkérés fuvarozóktól Fuvarozó kiválasztása, papírmunka Csomag összeállítás Döntési pontok ( XOR ) A biztosítás a fuvarszolgáltatás része Dokumentumok csatolása, csomag átvitele az elosztóközpontba Áru átvehető Lépések végrehajtási sorrendje 11 Párhuzamos (független) végrehajtás ( AND )

Modellezés aspektusai Mi a folyamat célja/kimenete? Kik a szereplők? Mik a főbb tevékenységek? Milyen döntési pontok vannak? 12

Történeti előzmények Mire épül? o Programok vezérlési szerkezete o Ütemezés (pl. GANTT diagramok) o Gyártási/irodai folyamatok modellezése o IDEF-0: 1980-as évek, US AirForce o Logisztikai folyamatok leírása o Üzemeltetés: runbook Közös elemek o Vannak elemi lépések o Köztük függőségek (idő? adat? sorrend?) o Döntési pontok o általános célú folyamatmodellezési nyelvek (pl. BPMN) 13

Példa: GANTT Tevékenységek állapota, időzítése, és függőségei wikipedia.org 14

Mit használ fel? Ötlet rendszer/szoftvertervezésben: o használjunk fel meglévő elemeket o Írjuk le az összetett rendszer működését Alapelem lehet sokféle o webform validáció, email küldés, adatbázisművelet, távoli webszolgáltatás, emberi interakció, SMS küldés, diagram kirajzolás, stb. 15

Mire fordul a vezérlési logika? Lehet közvetlen kód (C/C++, C#, Java, ) Lehet egy végrehajtó környezet bemenete o Csinálj nekem ilyen folyamatot Követelmények Folyamatmodell Szolgáltalás Meglévő komponensek Integráció 16

Hol használnak még folyamatmodelleket? Informatikai rendszerek működtetése o ITIL, UK Gov. kezdeményezés Protokoll specifikáció o Összetett rendszer részei hogy működnek együtt o Melyik komponensnek mi a szerepe Végrehajtható folyamatok tervezése o Rendeléskiértékelés, hitelbírálat előkészítése, Adatfeldolgozási/elemzési folyamatok 17

Példa: egészségügyi adatok kezelése Több, egymással kommunikáló fél Belső sorrendi függőségek Belső és külső események Feltételezések ez önmagában nem automatizálható http://wiki.directproject.org/abstract+model+examples 18

Példák Banki folyamatok modellezése o Milyen tevékenységek tudnak le záráskor? o Át tud-e állni a bank a napi többszöri utalásra? Gyártási folyamat modellezése o Optimális gyártásütemezés: átszereljünk vagy újat gyártsunk? o Mi történik a gyárban? o (ld. Szimuláció előadás) Üzletkötési folyamatok modellezése o Hol vannak ismétlődő kommunikációs minták? o Adatfeldolgozás modell alapon 19

Példa: adatfeldolgozási folyamat Lépések: beolvasás, adatszűrés, grafikon előállítás, Lépések állapota lefutásonként követhető: előállt már az eredmény? Eszköz: pl. KNIME 20

Folyamatok tervezésének alapfogalmai Folyamat leíró nyelv o BPMN, jpdl, XPDL, BPEL, UML AD, o Vezérlés, adatáramlás o Adatstruktúrák kapcsolhatóak hozzá o Végrehajtandó lépések definíciója o Időzítések, erőforrások Folyamat minta (template) o Pl. Jegyrendelés folyamat o Verziózás Folyamat példány (instance) o Pataricza András jegyet rendel Lisszabonba 21

Tartalom Ismétlés, kitekintés Folyamatmodellezés célja Folyamatmodellek Vezérlési folyam Megvalósítás 22

Elemi tevékenység Compile végrehajtás kezdete végrehajtás vége Compile t 23

Definíció: Elemi tevékenység Az elemi tevékenység olyan időbeli kiterjedéssel rendelkező tevékenység, amelynek a megkezdésén és befejezésén túl további részleteit nem modellezzük. Compile 24

Szekvencia, vezérlésfolyam Compile Link Compile Link t 25

Definíció: Szekvencia A Szekvencia tevékenységek végrehajtási sorrendjét definiálja. Compile Link 26

Őrfeltételek, elágazás [source modified] Compile Merge (Egyesítés) Decision (Döntés) [source unmodified] Szemantika: o Csak az egyik ág hajtódik végre o Nemdeterminizmus lehetséges Átlapolódó őrfeltételek Vagy egyszerűen őrfeltételek nélkül 27

Definíció: Vezérlési elem A vezérlési elem olyan csomópont a folyamatban, mely a folyamatmodell tevékenységei közül választ ki egyet vagy többet végrehajtásra. [source modified] Compile [source unmodified] 28

Definíció: Elágazás Az elágazás olyan vezérlési szerkezet, mely áll egy Döntés (Decision) és egy Egyesítés (Merge) vezérlési elemből, ahol a döntési csomópontnak van legalább kettő kimenete, melyek közül a kimenetekhez tartozó őrfeltételek kiértékelése alapján választunk (oda kerül a vezérlési token), a kiválasztott kiement (döntési ág) tetszőleges számú elemet tartalmazhat, az összes döntési ág az Egyesítés csompontba fut be. Itt az elágazást mindig kizáró döntés (XOR kapu) értelemben használjuk, vagyis egy kiértékelés során csak az elágazás (Decision) egyik kimenete lehet kiválasztva (aktív). Egy elágazás lehet többszörös vagy bináris, a tárgyban alapvetően bináris (két kimenetű) elágazást használunk 29

Ciklus Merge Decision Compile [no syntax errors] [syntax errors] Edit 30

Definíció: ciklus A ciklus olyan vezérlési szerkezet, mely többszörös végrehajtást definiál. A ciklus áll egy Egyesítés (Merge) és egy azt szekvenciálisan követő Döntés (Decision) vezérlési elemből, ahol a döntési csomópont egyik kimenete (döntési ága) az egyesítés (merge) vezérlési csomópontba fut vissza. Compile [no syntax errors] [syntax errors] Edit 31

Fork / Join Compile source1.c Join (Szinkronizáció) Fork (Elágazás) Compile source2.c Szemantika: o Nem meghatározott végrehajtási sorrend o Párhuzamos / átlapolt végrehajtás is lehet Lásd: SzGArch tárgy 32

Definíció: párhuzamos végrehajtás A párhuzamos végrehajtás áll egy Párhuzamos elágazás (Fork) és egy Összeillesztés/ Szinkronizáció (Join) vezérlési elemből, ahol az elágazásnak tetszőleges számú kimenete lehet (ágak), az egyes ágak egymással konkurrens módon hajthatóak végre, az összes ág a szinkronizáció csomópontba fut be, a párhuzamos végrehajtás akkor fejeződik be, ha az összes ág végrehajtása befejeződött. Két tevékenység konkurrens, ha végrehajtási sorrendjükre nézve nincs megkötés. Megj: tipikusan kettő párhuzamos ággal fogunk dolgozni. NEM azonos a döntési elágazással! 33

Flow begin / flow end Build 34

Definíció: folyamat indítása/befejezése Minden folyamat egy indítási (Flow Begin) vezérlési elemmel indul, és egy befejezési (Flow End) elemmel fejeződik be. Az indítási csomópont a csomópont legelső eleme, melynek pontosan egy kimenete van. A befejezési csomópont a folyamat utolsó eleme, melynek pontosan egy bemenete van. Megj: itt nem modellezzük külön, minek a hatására indul el a folyamat. 35

Hierarchia Build Compile Link Build Compile Link t 36

Hierarchikus folyamatmodell: Definíció: hierarchia Elemi tevékenység helyett tartalmaz folyamatmodellel leírt részmodellt (hierarchikus finomítás) 37

Hivatkozás / hívás Build Build Compile Link Build Compile Link t 38

Hivatkozás / hívás Build Elemi lépés valójában alfolyamat Biztos, hogy az elemeket csak így használjuk? Build Compile Link Beágyazható a főfolyamatba, ha helyes a finomítás, azaz A lépések együtt ugyanazt állítják elő, mint a folyamat Build Nincs olyan eset, amit nem kezelünk a hívó fél szintjén (Input/output konzisztencia) Compile Link t 39

Ismétlés: Kávéfőző (állapot alapú modell) KÁVÉFŐZŐ tisztít Tartály nincs feltöltve feltölt Tartály feltöltve Kávéfilter nincs behelyezve Kávéfilter behelyezve filtert behelyez Bögre nincs behelyezve Bögre behelyezve bögrét behelyez Kávét főz START Kávé kész 40

Példa: kávéfőzés (folyamatmodell) 1. Töltse meg a BAL tartályt hideg vízzel 2. Tegyen egy bögrét vagy poharat a BAL pohártartóra 3. Tegyen be egy kávépárnát a BAL oldali tartóba 4. Dugja be a kábelt és nyomja meg a BAL OLDAL START/STOP gombot Ha egyszerre két kávét akar főzni, egyszerre kövesse a BAL és JOBB utasításokat 41

Példa: kávéfőzés BAL tartály feltöltése Bögre behelyezése a BAL oldalra Kávéfilter behelyezése BAL oldalra Csatlakoztatás és BAL START megnyomása 42

Kávéfőzés BAL tartály feltöltése Bögre behelezése a BAL oldalra Kávéfilter behelyezése BAL oldalra Csatlakoztatás és BAL START megnyomása 43

Kávéfőzés BAL tartály feltöltése Bögre behelezése a BAL oldalra Kávéfilter behelyezése BAL oldalra Csatlakoztatás és BAL START megnyomása 44

Összehasonlítás Állapotgép Folyamat Tartály nincs feltöltve feltölt Tartály feltöltve Bögre nincs behelyezve bögrét behelyez Bögre behelyezve Kávéfilter nincs behelyezve filtert behelyez Kávéfilter behelyezve BAL tartály feltöltése Bögre behelezése a BAL oldalra Kávéfilter behelyezése BAL oldalra START Csatlakoztatás és BAL START megnyomása 45

Kávéfőzés Bal tartály feltöltése Bögre behelyezése a BAL oldalra Kávéfilter behelyezése BAL oldalra Csatlakoztatás BAL START megnyomása 46

Kávéfőzés [nincs csatlakoztatva] [csatlakoztatva] Bal tartály feltöltése Bögre behelyezése a BAL oldalra Kávéfilter behelyezése BAL oldalra Csatlakoztatás BAL START megnyomása 47

Kávéfőzés [nincs csatlakoztatva] [csatlakoztatva] Bal tartály feltöltése Bögre behelyezése a BAL oldalra Kávéfilter behelyezése BAL oldalra Csatlakoztatás BAL START megnyomása 48

Kávéfőzés [nincs csatlakoztatva] [csatlakoztatva] Bal tartály feltöltése Bögre behelyezése a BAL oldalra Kávéfilter behelyezése BAL oldalra Csatlakoztatás BAL START megnyomása 49

Kávéfőzés [nincs csatlakoztatva] [csatlakoztatva] BAL oldal előkészítése Csatlakoztatás BAL START megnyomása 50

Kávéfőzés [nincs csatlakoztatva] [csatlakoztatva] Bal oldal előkészítése Csatlakoztatás BAL START megnyomása 51

Kávéfőzés Bal oldal előkészítése [plugged in] Csatlakoztatás [nincs csatlakoztatva] Jobb oldal előkészítése 0 1 BAL START megnyomása JOBB START megnyomása 52

Kávéfőzés Bal oldal előkészítése [csatlakoztatva] Csatlakoztatás [nincs csatlakoztatva] Jobb oldal előkészítése 0 1 BAL START megnyomása JOBB START megnyomása 53

Kávéfőzés Bal oldal előkészítése [csatlakoztatva] Csatlakoztatás [nincs csatlakoztatva] Jobb oldal előkészítése 0 1 Bal tartály feltöltése Bögre behelyezése a BAL oldalra Kávéfilter behelyezése BAL oldalra BAL START megnyomása JOBB START megnyomása 54

Jólstrukturált folyamatok Vezérlési blokkokból építkezünk o Egy bemenet, egy kimenet, közte jól strukturált blokk o Szekvencia, decision-merge és fork-join blokk, ciklus o (üres vezérlési szakasz) Analógia: strukturált programozás (goto helyett vezérlési szerkezetek) Nem jólstrukturált folyamatra példa: A B C 55

Jólstrukturált folyamatok Bizonyos formalizmusok kikényszerítik o pl. BPEL (üzleti folyamatok webszolgáltatások fölött) o Pl. Struktogram (Nassi-Shneiderman) true while a b do a > b false a := a - b b := b - a return a 56