Dinamikus modell: állapotdiagram, szekvencia diagram

Hasonló dokumentumok
Dr. Mileff Péter

Szekvencia diagram. Szekvencia diagram Dr. Mileff Péter

Programozási technológia

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

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

Programfejlesztési Modellek

Kölcsönhatás diagramok

Kiterjesztések sek szemantikája

Rendszer szekvencia diagram

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

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

e 120 KÁRTYÁS KÖZPONTI ZÁR VEZÉRLŐ KÉSZÜLÉK (K-CARD)

AC-MFP-X7. RFID kártyaolvasó beépített ujjlenyomat olvasóval. Felhasználói leírás

Alapszintű formalizmusok

Felhasználói kézikönyv - Android kliens

Használati útmutató a HPB1 3.5, HPB1 4.0, HPB2 3.5, HPB2 4.0, HPB4 4.0 HPB5 3.5, HPB5 4.0, HPB6 WFS riasztókhoz

Bevezetés az informatikába

5. Hét Sorrendi hálózatok

A KL3200 egy db közelítő kártyával, és egy db távirányítóval kerü forgalomba. A termék funkcióit, kezelését az alábbiakban ismertetjük.

VDT10 HASZNÁLATI UTASÍTÁS

Integrált keretrendszer

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

Adatmodellek. 2. rész

Használati útmutató a HPA 2.0 és HPA 2.5 riasztókhoz

Használati útmutató a HPA 3.5 és HPA 4.0 riasztókhoz

Diszkrét matematika 1. estis képzés

Diszkrét matematika 2.C szakirány

Időzített átmeneti rendszerek

... fi. ... fk. 6. Fabejáró algoritmusok Rekurzív preorder bejárás (elsőfiú-testvér ábrázolásra)

SZÁMÍTÁSOK A TÁBLÁZATBAN

Osztott rendszer. Osztott rendszer informális definíciója

C# Szálkezelés. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Szálkezelés / 21

Vodafone ReadyPay. Használati útmutató

DD-5000 DIGITÁLIS KAPUTELEFON SZERELŐI ÉS PROGRAMOZÓI ÚTMUTATÓ

KEZELÉSI ÚTMUTATÓ STORESAFE PRO II DIGITÁLIS RÖGZÍTŐ

AF hangú kód adó-vevő. Fő jellemzők:

A modell-ellenőrzés gyakorlata UPPAAL

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

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


Dr. Kulcsár Gyula. Virtuális vállalat félév. Projektütemezés. Virtuális vállalat félév 5. gyakorlat Dr.

Mobil Partner telepítési és használati útmutató

KDC-1905 Digitális kaputelefon központ - GÉPKÖNYV

Objektum orientált programozás Bevezetés

Absztrakció. Objektum orientált programozás Bevezetés. Általános Informatikai Tanszék Utolsó módosítás:

VISUAL UML A RENDSZERTERVEZÉS OKTATÁSÁBAN

BODROGKOZ.COM / HASZNÁLATI ÚTMUTATÓ

Bevezetés a párhuzamos programozási koncepciókba

DEF COM 3. Motorkerékpár riasztó TELEPÍTÉSI ÚTMUTATÓ

SZORGALMI FELADAT. 17. Oktober

Rekurzió. Dr. Iványi Péter

Bevezetés a Programozásba II 5. előadás. Objektumorientált programozás és tervezés

Diszkrét matematika 2. estis képzés

Formális nyelvek - 9.

BioAdmin 4.1 könnyű telepítés csak Kliens használatra

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

Felhasználói kézikönyv

Milenia Járműfigyelő Rendszer

Magic xpi 4.0 vadonatúj Architektúrája Gigaspaces alapokon

Használati útmutató a LEGOS motorkerékpár riasztókhoz

Elérhetőségi analízis Petri hálók dinamikus tulajdonságai

WS-Pro WPX38 MD+ PROGRAMOZÓI KÓDOK ÖSSZESÍTÉSE

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

Formális nyelvek és automaták vizsgához statisztikailag igazolt várható vizsgakérdések

Programozási nyelvek 1. Scratch I. Animációkészítés

OOP. Alapelvek Elek Tibor

Laborgyakorlat: Feladatütemezés grafikus felület és az at parancs használatával

Sebury BC Önálló RF kártyás és kódos beléptető

Halmazelmélet. 1. előadás. Farkas István. DE ATC Gazdaságelemzési és Statisztikai Tanszék. Halmazelmélet p. 1/1

Funkciók: Kétkörös, 3 vezetékes ütésérzékelő. (Gyenge ütés 9 figyelmeztető csipogás, erős behatás 30 másodperc szirénázás) Központizár vezérlő

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

22. GRÁFOK ÁBRÁZOLÁSA

M43. Közelítőkártyás indításgátló készülék rablásgátló funkció lehetőséggel. Telepítési útmutató

M355/M357. Motorkerékpár riasztó TELEPÍTÉSI ÚTMUTATÓ

AC-MF1W. RFID kártyaolvasó és kódzár. Felhasználói leírás

TÉRINFORMATIKAI ALGORITMUSOK

30. ERŐSEN ÜSSZEFÜGGŐ KOMPONENSEK

vialan OS-103 vonalfordító készülék kezelési útmutató

Adatszerkezetek I. 7. előadás. (Horváth Gyula anyagai felhasználásával)

Miskolci Egyetem Gépészmérnöki és Informatikai Kar Informatikai Intézet Alkalmazott Informatikai Intézeti Tanszék

Operációs rendszerek Folyamatok 1.1

UJJLENYOMAT OLVASÓ. Kezelői Kézikönyv

Mindent olyan egyszerűvé kell tenni, amennyire csak lehet, de nem egyszerűbbé.

Autóipari beágyazott rendszerek. Local Interconnection Network

Diszkrét matematika 2.C szakirány

16/8/4 CSATORNÁS Real Time MPEG-4DVR. 16/8/4 CSATORNÁS beépített DVD-RW íróval vagy CD-RW íróval

Felhasználói kézikönyv a WEB EDInet rendszer használatához

1. oldal összesen 6 oldal FARFISA TD6100 DIGITÁLIS NYOMÓGOMB PANEL

Osztálytervezés és implementációs ajánlások

Programozási nyelvek Java

Osztálytervezés és implementációs ajánlások

Ítéletkalkulus. 1. Bevezet. 2. Ítéletkalkulus

Termék modell. Definíció:

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

Használati útmutató a Meta M8700 és M8700A riasztókhoz

TÉRINFORMATIKAI ALGORITMUSOK

Számítógépes Hálózatok. 5. gyakorlat

KOVÁCS BÉLA, MATEMATIKA I.

Átírás:

Programozási : állapotdiagram, szekvencia diagram osztályszerep Informatikai Kar Eötvös Loránd Tudományegyetem 1

osztályszerep Tartalom 1 2 3 osztályszerep 2

Bevezető Állapot Interakciós Tevékenység osztályszerep Szekvencia Együttműködési 3

Állapot: Az objektum állapotát az attribútumok konkrét értékeinek n-esével jellemezzük. (Például pont esetén annak koordinátái) Esemény: Eseménynek nevezzük azt a tevékenységet, történést, amely valamely objektum állapotát megváltoztatja. (Egy pont esetén például annak eltolása) Állapot osztályszerep megelőző események (pre-events) rákövetkező események (post-events) t 4

osztályszerep Az állapot a következő tulajdonságokkal rendelkezik: 1 Az állapotnak van azonosítója, így megkülönböztethetők egymástól, például van nevük (pl.: veremnél: normál, tele,...). Az azonosító lehet egy vagy több attribútumának értéke is, illetve ezen értékeket meghatározó állítás, állapotinvariáns. 2 Az állapot általában esemény, eseménysorozat hatására jön létre. Speciális állapot a kezdő állapot. 3 Az állapot addig marad fenn, amíg az objektumok attribútumainak értékei kielégítik az állapothoz rendelt invariánst (vagyis a belső átmenetek nem változtatják meg az objektum állapotát). belső átmenet Állapot 5

(folyt.) 4 Az állapotokat gyakran a belső tevékenység, művelet nevével azonosítjuk. do A / <művelet neve> 5 Az állapot megszűnése esemény hatására következik be, ilyenkor egy másik állapotba kerül az objektum. A Állapotátmenet B osztályszerep 6 Az objektum megszűnése szintén állapotátmenet hatására következik be. Ekkor egy rendszeren kívüli befejező állapotba kerül. 6

osztályszerep state: <az állapot azonosítója>; comment: <az állapot rövid magyarázó leírása>; pre-events: <az állapotot előidéző események azonosítói>; invariant: <az állapot invariánsának leírása>; post-events: <az állapot megszűnéséhez kötődő események> 7

példa (ébresztő óra csengetés állapota) state: ébresztő csengetés; osztályszerep comment: amikor az előzetesen beállított időpont bekövetkezik, a csengő megszólal, és 10 mp-ig csörög; pre-events: idő beállítás (ébresztési idő); minden más esemény, ami nem idő beállítás törlés ; aktuális idő = ébresztési idő; invariant: idő beállítás bekapcsolva és ébresztési idő aktuális idő ébresztési idő + 10mp; post-events: aktuális idő = ébresztési idő + 10 mp visszaállítás (ébresztési idő). 8

osztályszerep Az eseményeket a következő tulajdonságok jellemzik: 1 lehet paraméter nélküli (például az enter gomb megnyomása); 2 lehet paraméteres (például vermek esetén a push(s,e)); 3 az események között sorrendiség állhat fenn, azaz beszélhetünk megelőző eseményről, illetve rákövetkező eseményről; 4 az eseménynek előfeltétele is lehet. 9

osztályszerep event: <esemény neve, azonosítója>; comment: <az esemény jelentésének rövid leírása>; parameters: <a paraméterek listája>; precondition: <az bekövetkezését szükségszerűen megelőző állítás>; preevents: <az eseményt megelőző esemény>. 10

Az állapotdiagram Az állapotdiagram egy egyszeresen összefüggő irányított gráf, amelynek csomópontjaihoz az állapotokat, éleihez pedig az eseményeket rendeljük. Jelölések osztályszerep Állapot Állapotátmenetet okozó esemény Kezdő állapot Befejező állapot Állapot neve 11

Esemény és akció Sokszor az esemény végrehajtása időbe telik, ezért célszerű megkülönböztetni az akciótól. Ekkor az akció az, ami egy időpillanathoz kötődik. A esemény/akció B Az események fázisai osztályszerep entry a belépés akciója, amely elindítja az állapotot létrehozó eseményt / eseménysorozatot event az állapothoz kötődő belső események sorozata, amely az adott állapothoz kötődő belső állapotokat jelenti exit az az exit akció, amely az esemény befejezését, az állapotból való kilépést eredményezi. 12

Az események fázisai (folyt.) Az esemény fázisainak jelölése A entry / event / exit / Az esemény folyamatosságának szemléltetése entry <esemény neve> A exit osztályszerep Példa repülőjárat-nyilvántartás leegyszerűsített modellje do / repül felszáll.entry felszáll.exit regisztráció.entry regisztráció.exit do / felszállásra vár 13

Az állapotdiagram bonyolultsága Az állapotdiagram egyszerű esetekben is áttekinthetetlenné válhat (pl. adott 5 állapot, ahol mindegyikből van átmenet mindegyikbe) A bonyolultság csökkentésére két általános módszer létezik: az állapotok általánosítása és az állapotok aggregációja. osztályszerep 14

osztályszerep 1 Az általánosított állapot véges számú részállapot összessége 2 A részállapotok örökölhetik az általánosított állapot tulajdonságait: attribútumait (állapotjellemzőit); eseményeit, akcióit. 3 Az általánosított állapot állapotinvaránsa a részállapotok állapotinvariánsainak diszjunkciója (azaz az objektum az általánosított állapotban mindig valamelyik részállapotban van). 4 A részállapotokhoz az az állapotdiagram tartozik, amelyben szereplő állapotátmenetek az általánosított állapotot nem változtatják meg. 5 A részállapotok lehetnek általánosított állapotok is. 15

(folyt.) 6 Az állapotdiagramban kell lennie olyan részállapotnak, amely az általánosított állapot entry akcióját örökli. 7 Az állapotdiagramban kell lennie olyan részállapotnak, amely az általánosított állapot exit akcióját örökli. 8 Az általánosított állapot megfelelő objektuma az entry akció hatására létrejön, a megfelelő objektum pedig az állapotdiagram exit akciójának hatására semmisül meg. osztályszerep <az általánosított állapot neve> <állapotdiagram> 16

osztályszerep 1 Az aggregációval létrejövő állapot egymástól független részállapotok egy véges halmaza. 2 A részállapotok lehetnek általánosított állapotok is, amelyekhez tehát állapotdiagramok tartoznak. 3 Minden állapotdiagram kell lennie olyan részállapotnak, amelybe az aggregátum entry esemény hatására kerül, és olyannak, amelyből kilépéskor az exit esemény hatására szűnik meg. 4 Az aggregációval létrejött állapot invaránsa a részállapotok invariánsainak konjunkciója, azaz az aggregációs állapot objektuma az aggregációt alkotó részállapotokban egyidejűleg létezik. 5 Az állapotok aggregációja az állapoton belüli állapotdiagramok közötti párhuzamosság egy megjelenési formája. 17

<Állapot neve> <részállapot > <részállapot > 1 n osztályszerep Példa Gépkocsi Modellezzünk egy leegyszerűsített gépkocsit, ami a következő egységekből áll: fék, indító, sebességváltó. gépkocsi fék indító sebváltó 18

Gépkocsi példa osztályszerep fék állapot leállítás gépkocsi állapotok indító állapot indító állapot üres indítás menet sebváltó állapot gyújtás [sebváltó in üres] kulcs elengedés fék állapot behúz ki be kienged sebváltó állapot üres hátramenet előre menet E E egyes H kettes H hármas 19

Az állapot általános fogalma 1 Az állapotnak van azonosítója. osztályszerep 2 Esemény hatására következik be. 3 Mindaddig fennmarad, amíg az objektumok attribútumai az állapot invariánsát kielégítik. 4 Az állapot megszűnéséhez eseménysorozat kötődik. 5 Az állapot lehet részállapotok általánosítása. Ilyenkor az állapothoz állapotdiagram is tartozik. 6 Az állapot lehet más állapotok aggregációja. 7 Az állapot lehet pszeudoállapot: Kezdéskor a külső állapot. Befejezéskor a külső állapot. Hisztorizációs állapot, melyhez hisztorizációs indikátor társul. 20

A szekvenciadiagram alapfogalmai, komponensei Osztályszerep Osztályszerep Aktivációs életvonal Üzenet osztályszerep 21

Osztályszerep Az osztály szerepét az osztályok közötti üzenetben megtestesítheti az osztály egy vagy több objektuma, amelyek az üzenetküldés szempontjából konform módon járnak el. Az osztályszerep megnyilvánulhat az osztályok egy halmazának megtestesítőjeként is (pl. generic form). Jelölése: <szerep neve> : <osztály neve> osztályszerep Osztályszerep Az életvonal az osztályszerep időben való létezését jelenti. <szerep neve> : <osztály neve> 22

Az osztályszerep aktivációs Az aktivációs életvonal az osztályszerepnek azt az állapotát jelöli, amelyben az osztályszerep megtestesítői műveletet hajtanak végre, és más objektumok vezérlése alatt állnak. Objektum létrehozása és megsemmisítése objektum : osztály osztályszerep Egy objektum létrejöhet egy másik objektum létrehozó üzenetének a hatására és megsemmisülhet, ha a másik objektum egy törlést jelentő üzenetet ad ki. obj : C 1 1 <üzenet > 1 <üzenet > 2 obj : C 2 2 23

Az objektum aktivációja Életvonala során az objektum aktív módon viselkedhet, amíg valamilyen tevékenységet végez. Ezt előidézheti, de meg is szüntetheti egy másik objektum. obj : C 1 1 <üzenet > 1 obj : C 2 2 <üzenet > 2 <tevékenység neve> osztályszerep Az objektum saját magát is aktiválhatja (rekurzív aktiváció). objektum : osztály 24

Az objektum aktivációja (folyt.) osztályszerep Az aktiváció centrális, ha minden objektumot egy aktor objektum aktivizál. Az aktor egy másik jelölése A : aktor : C 1 : C 2 A : aktor 25

Aszinkron üzenet Egy aktív objektum üzenetet küld egy passzív objektumnak és folytatja a munkáját küldő fogadó Válasz üzenet A küldő válasz üzenetet kap egy korábbi aszinkron üzenetére. küldő fogadó osztályszerep Szinkronizációs üzenet Az üzenet elküldésekor a küldő blokkolt állapotba kerül, amíg a fogadó nem válaszol az üzenetre. küldő fogadó 26

(folyt.) Létrehozó üzenet A küldő objektum létrehozza egy új objektumot. küldő fogadó Megsemmisítő üzenet A küldő objektum megsemmisíti a fogadó objektumot. osztályszerep küldő fogadó 27

osztályszerep (példák) Adott egy nyomtató, amit többen is szeretnének használni A nyomtatóhoz, mint erőforráshoz kölcsönös kizárással lehet, amit szinkronizációs üzenettel oldjuk meg A kölcsönös kizárás osztálydiagramja * folyamat kölcsönös kizárás rendszere használ A kölcsönös kizárás két folyamat esetén író : folyamat 1 szöveg 1 erőforrás író : folyamat 2 szöveg 2 nyomtató : erőforrás 28

(példák) Szemléltessük az ATM készülék működését Most elegendő csak az üzenetek időben lejátszódó sorrendjét szemléltetni : ügyfél : ATM : konzorcium : bank kártya be jelszó? jelszó ellenőrzés ellenőrzés kérés típusa? rendben rendben osztályszerep típus összeg? összeg tranzakció tranzakció (A feladat egyben példa a decentralizáltan vezérelt rendszerre.) 29