Strukturális modellezés

Hasonló dokumentumok
Strukturális modellezés

Strukturális modellezés

Strukturális modellezés

UML (Unified Modelling Language)

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

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

Programozás. Bevezetés. Fodor Attila. Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék

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

Adatbázismodellek. 1. ábra Hierarchikus modell

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

INFORMATIKA ÁGAZATI ALKALMAZÁSAI. Az Agrármérnöki MSc szak tananyagfejlesztése TÁMOP /1/A

XML alapú adatbázis-kezelés. (Katona Endre diái alapján)

S01-7 Komponens alapú szoftverfejlesztés 1

Adatbázis, adatbázis-kezelő

Szakterületi modell A fogalmak megjelenítése. 9. fejezet Applying UML and Patterns Craig Larman

Inczédy György Középiskola, Szakiskola és Kollégium Nyíregyháza, Árok u. 53. TANMENET. Informatika szakmacsoport

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

Programozás. Adatbázis-kezelés (alapok) Fodor Attila

Utolsó módosítás:

Struktúra alapú modellezés

Magas szintű adatmodellek Egyed/kapcsolat modell I.

Struktúra alapú modellezés

Rendszermodellezés Hibatűrő Rendszerek Kutatócsoport

Adatbázis rendszerek Definíciók:

Utolsó módosítás:

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

ADATBÁZIS-KEZELÉS - BEVEZETŐ - Tarcsi Ádám, ade@inf.elte.hu

Adatbázis rendszerek I

SQL jogosultság-kezelés. Privilégiumok Grant és Revoke Grant Diagrammok

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

Adatbázis-kezelő rendszerek. dr. Siki Zoltán

Intelligens közlekedési rendszerek (ITS)

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

Adatbázis rendszerek. dr. Siki Zoltán

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

Adatbázis kezelés Delphiben. SQL lekérdezések

Adatbázis-kezelés. alapfogalmak

API tervezése mobil környezetbe. gyakorlat

Előzmények

Szerializáció. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Szerializáció / 22

A Java EE 5 plattform

Fogalmi modellezés. Ontológiák Alkalmazott modellező módszertan (UML)

GráfRajz fejlesztői dokumentáció

Programfejlesztési Modellek

Modellezési alapismeretek

Komponens alapú fejlesztés

LOGISZTIKAI ADATBÁZIS RENDSZEREK JOIN, AGGREGÁCIÓ

TSIMMIS egy lekérdezés centrikus megközelítés. TSIMMIS célok, technikák, megoldások TSIMMIS korlátai További lehetségek

Junior Java Képzés. Tematika

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

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

OOP és UML Áttekintés

Többfelhasználós és internetes térkép kezelés, megjelenítés

Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

MS ACCESS 2010 ADATBÁZIS-KEZELÉS ELMÉLET SZE INFORMATIKAI KÉPZÉS 1

JAVA webes alkalmazások

Rendszermodellezés. Hibatűrő Rendszerek Kutatócsoport. λ λ λ. μ μ μ. Bergmann Gábor Darvas Dániel Molnár Vince Szárnyas Gábor Tóth Tamás

Célkitűzések Az Oracle10 g felépítésének, használatának alapszíntű megismerése

Vállalati információs rendszerek I, MIN5B6IN, 5 kredit, K. 4. A meghirdetés ideje (mintatanterv szerint vagy keresztfélében):

Enterprise JavaBeans. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem. Az Enterprise JavaBeans

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

Adatbázis-lekérdezés. Az SQL nyelv. Makány György

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

Térinformatika. j informáci. ciós s rendszerek funkciói. Kereső nyelvek (Query Languages) Az adatok feldolgozását (leválogat

Nyilvántartási Rendszer

Foglalkozási napló a 20 /20. tanévre

BGF. 4. Mi tartozik az adatmodellek szerkezeti elemei

Adatbázisok - 1. előadás

OOP. Alapelvek Elek Tibor

Szoftverprototípus készítése. Szoftverprototípus készítése. Szoftverprototípus készítése

MapReduce paradigma a CAP-tétel kontextusában. Adatb haladóknak. Balassi Márton Adatbázisok haladóknak 2012.

Informatikai alapismeretek Földtudományi BSC számára

Adatbázisok elmélete

Microsoft SQL Server telepítése

Bevezetés a programozásba II. 8. Előadás: Osztályok, objektumok, osztályszintű metódusok

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

TANMENET 2018/2019. tanév

ÜZLETI I TELLIGE CIA - VIZUALIZÁCIÓ

modell, amiben csak bináris sok-egy kapcsolatok (link, memberowner,

Eseményvezérelt alkalmazások fejlesztése II 12. előadás. Objektumrelációs adatkezelés (ADO.NET) Giachetta Roberto

Tartalomjegyzék. Előszó... 10

Modellezési alapismeretek

Számítógéppel segített folyamatmodellezés p. 1/20

1: Bevezetés: Internet, rétegmodell Alapok: aszimptótika, gráfok. HálózatokII, 2007

Enterprise JavaBeans 1.4 platform (EJB 2.0)

Objektumorientált paradigma és programfejlesztés Bevezető

Grafikus keretrendszer komponensalapú webalkalmazások fejlesztéséhez

Folyamatmodellezés (BPMN) és alkalmazásai

LOGISZTIKAI ADATBÁZIS RENDSZEREK BEVEZETÉS

Csima Judit szeptember 6.

AB1 ZH mintafeladatok. 6. Minősítse az állításokat! I-igaz, H-hamis

Book Template Title. Author Last Name, Author First Name

Adatbázisok-1 előadás Előadó: dr. Hajas Csilla

Alkalmazásokban. Dezsényi Csaba Ovitas Magyarország kft.

Adatbázis rendszerek 7. előadás State of the art

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

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

Pénzügyi algoritmusok

10. évfolyam 105 óra azonosító számú Hálózatok, programozás és adatbázis-kezelés 105 óra Adatbázis- és szoftverfejlesztés gyakorlat tantárgy

Átírás:

Strukturális modellezés Rendszermodellezés 2019.02.13. 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

Tudnivalók Gyakorlatra: színes tollak/ceruzák Jegyzet: https://inf.mit.bme.hu/edu/courses/remo/ o Részletes definíciók, példák, szójegyzék o Mobiltelefonon és tableten is olvasható 2

Miről lesz szó? Struktúra modellezés célja, alkalmazásai Dekompozíció Modell elemek leírása gráfokkal Tulajdonságok 3

Célok, alkalmazások Dekompozíció Gráfok Tulajdonságok STATIKUS MODELLALKOTÁS Hogyan modellezzük összetett rendszerek felépítését áttekinthető módon? Pl. Építészet I épület Céges hálózat 4

Definíció: Strukturális modell A strukturális modell statikus. Kiindulópontja egy (rész)rendszer, amelyet a része reláció mentén alkotórészekre bont. Az alkotórészek lehetnek: tovább bontott részrendszerek vagy tovább nem bontott (elemi) komponensek. A strukturális modell a rendszer felépítését (struktúráját) az alkotórészei, azok tulajdonságai és egymással való viszonya alapján reprezentálja. 5

Építészeti modellek BIM (Building Information Model) Épületek modellezése egy közös modellben Nézetek o Gázvezetékek o Szigetelés o Vízvezetékek és csatorna o Villamossági terv o Stb. 6

Gázvezetékek 7

Szigetelés 8

Vízvezeték és csatorna 9

Villamossági terv 10

Strukturális modellezés célja Rendszer részekre bontása o Kisebb egységeket könnyebb megtervezni o Részegységek felhasználása o Általános célú komponensek használata Létező rendszer dokumentálása o Rendszertérkép Adatszerkezet megalkotása o Milyen információt kezelünk? 11

Robotporszívó Hajtómű Vezérlő Porszívó 12

Felépítési és viselkedési modellezés Felépítési (structural) o Statikus o Rész és egész, összetevők o Kapcsolatok, összeköttetések Viselkedési (behavioral) o Dinamikus o Időbeli lefolyás o Állapot, folyamat o Reakciók a külvilágra A robotporszívó főbb részei a vezérlő, a hajtómű, és a porszívó. A hajtómű jobbra parancs hatására átvált kanyarodás üzemmódba A robotporszívóban a szenzorok jeleit fogadva a hajtómű beavatkozik (mikor/hogyan?) Nem fed le mindent, nem válik élesen szét 13

Strukturális modell A rendszer felépítésére vonatkozó tudás o Milyen elemekből áll a rendszer? o Hogyan kapcsolódnak egymáshoz az elemek? o Milyen tulajdonságúak az elemek? 14

Példa: (céges) hálózat Router Internet Firewall Smartphone Switch Server Workstation Wifi Laptop Smartphone Workstation Workstation Printer 15

Példa: (céges) hálózat Van-e egyszeres hibapont a rendszerben? Router Internet Firewall Smartphone Server Túlterhelt a wifi, hány gép van rajta? Switch Workstation Wifi Laptop Elérhető-e az internet? Smartphone Milyen elemekből áll a hálózat? Workstation Workstation Printer 16

Hogyan épül fel a rendszerem? Kezdeti rendszerkép, nem látszanak rajta az elemek tulajdonságai Tervezői döntések Részekre bontás Webes kliens (böngésző típus? PC!) Szerver oldali logika (platform lekötve) Kommunikációs csatornák http://blog.zambon.com.au/2010/09/oo-uml-structure-diagrams.html 17

Milyen úton terjedhet a hiba? Milyen kapcsolatok lehetségesek? Milyen függőségek vannak? Mely elemek és kapcsolatok léteznek? Hol szükséges ellenőrzés/védelem? http://www.uml-diagrams.org/examples/online-shopping-uml-component-diagram-example.html 18

Célok, alkalmazások Dekompozíció Gráfok Tulajdonságok STRUKTURÁLIS DEKOMPOZÍCIÓ Milyen tartalmazási viszonyok vannak az egyes részrendszerek között? Pl. Robotporszívó Batcave 19

Definíció: Dekompozíció A strukturális modell statikus. Kiindulópontja egy (rész)rendszer, amelyet a része reláció mentén alkotórészekre bont. A dekompozíció ( faktoring ) egy összetett probléma vagy rendszer kisebb részekre bontása, amelyek könnyebben érthetők, fejleszthetők és karbantarthatók. Hierarchikus dekompozíció: o Többlépcsős rész-egész viszony Része reláció tartalma szerint: o Fizikai dekompozíció: része = térbeli tartalmazás o Logikai dekompozíció: pl. része = funkció 20

Fizikai dekompozíció o Milyen alkatrész? Dekompozíció típusai Logikai dekompozíció funkciók szerint o Mit csinál? Feltérképező és navigáló alrendszer Robotporszívó Tisztító alrendszer Monitorozó alrendszer Mozgásért felelős alrendszer Szenzor alrendszer 21

Definíció: Dekompozíció helyessége Egy dekompozíció helyes, ha a dekompozícióval kapott rendszer minden elemének megfeleltethető az eredeti rendszer valamelyik eleme, és az eredeti rendszer minden eleméhez hozzárendelhető a dekompozícióval kapott rendszer legalább egy eleme. 22

Példa helyes kompozícióra Teljes rendszer Tovább nem bontott építőelemek (gyakorlatban: ismerjük az összeset?) Szoftveres példa: szolgáltatáskatalógus http://lego.brickinstructions.com/en/lego_instructions/set/10545/batcave_adventure 23 Interfész definíció (alrendszer belsejében) Interfész a külvilág felé

Példa helyes kompozícióra Később: hogyan határozzuk meg a kompozíciót? (elemek/rendszer felől?) http://lego.brickinstructions.com/en/lego_instructions/set/10545/batcave_adventure 24

Célok, alkalmazások Dekompozíció Gráfok Tulajdonságok STRUKTURÁLIS MODELLEK Hogyan viszonyulnak egymáshoz az egyes részrendszerek, komponensek? Pl. Úthálózat Fájlrendszer 25

Gráf reprezentáció Emberi gondolkodásmód: dolgok kapcsolata o dolgok: személyek, repülőterek, területek o kapcsolata: függőség, ismeretség, repülőjárat, része Matematikai formalizmus: gráf o csomópontok o élek o (tulajdonságok) XMind 26

Definíciók az informatikában Az informatikában mindennek több, gyakran egymásnak ellentmondó definíciója van o rendszer =? o modell =? Gyakran ugyanarra a fogalomra több nevével is hivatkozunk o csomópont, csúcs, pont, objektum (node, vertex, object, concept) o él, összeköttetés, kapcsolat (edge, link, arc, connection, relationship) 27 Egyet válasszunk!

Budapest kötöttpályás közlekedés Deák Ferenc tér Astoria Blaha Lujza tér Ferenciek tere Kálvin-tér Rákóczi tér M2 M3 Corvin-negyed M4 4-6 Boráros tér 28

Budapest kötöttpályás közlekedés Deák Ferenc tér 2 2 Astoria 1 Blaha Lujza tér M2 M3 M4 4-6 Ferenciek tere 1 Kálvin-tér 1 2 3 2 Rákóczi tér 2 Corvin-negyed Boráros tér legrövidebb út? 29

Szűrés: élcímke szerint (részgráf) Pl. csak a metróhálózatot szeretnénk nézni Deák Ferenc tér Astoria Blaha Lujza tér M2 Ferenciek tere Kálvin-tér Rákóczi tér M3 M4 Corvin-negyed Boráros tér Hova lehet eljutni metróval? 30

Budapest V. kerülete LIPÓTVÁROS BELVÁROS 31

Budapest V. kerülete hierarchikus modell Kossuth Lajos tér LIPÓTVÁROS Deák Ferenc tér Lipótváros V. kerület Belváros BELVÁROS Ferenciek tere Deák Ferenc tér Kossuth Lajos tér Ferenciek tere 32

Egyszerű gráfok Deák Ferenc tér közlekedési hálózat: irányítatlan gráf területek: irányított gráf Ferenciek tere Astoria Kálvin-tér Blaha Lujza tér hogyan alakítható irányítottá? Rákóczi tér Lipótváros V. Kerület Belváros Corvin-negyed Boráros tér 33 Deák Ferenc tér Kossuth Lajos tér Ferenciek tere

Típusos gráfok Deák Ferenc tér Astoria Blaha Lujza tér V. kerület Ferenciek tere Kálvin-tér Rákóczi tér VIII. kerület Budapest Corvin-negyed IX. kerület Boráros tér 34

Grafikus felhasználó felület Fa struktúra ábrázolása o Gráfként o Bennfoglaló ábrázolás Window Menu Main View Edit Help Display Degrad MC 35 Degrees Radians Grads

Fastruktúra ábrázolása fájlrendszer C: \Dokumentumok \Kepek \logo.png \alaprajz.jpg \szerzodes.pdf \Drivers Mennyi tárhely szabadul fel a Dokumentumok könyvtár törlésével? 36

Fájlrendszer jellemzői Mennyi tárhely szabadul fel a Dokumentumok könyvtár törlésével? Ehhez szükségünk van a fájlok egyes leíróinak pontos ismeretére. Név Típus Méret (kb) Utolsó módosítás Dokumentumok könyvtár 2/2/2016 szerződés.pdf fájl 569 11/9/2015 Képek könyvtár 2/2/2016 logó.png fájl 92 3/6/2015 alaprajz.jpg fájl 1226 2/2/2016 Ezen információk, és a fájlhierarchia együttes ismeretével megválaszolható a kérdés. 37

Célok, alkalmazások Dekompozíció Gráfok Tulajdonságok TULAJDONSÁGOK MODELLEZÉSE Milyen jellemzői vannak az egyes komponenseknek? Pl. Táblázatok Adatbázisok 38

Definíció: Tulajdonság A modell elemeinek tulajdonságait is jellemezhetjük. A tulajdonság egy a modell elemein értelmezett függvény, amelyet a modellelemeken értelmezünk, parciális (lehet kitöltetlen), értékkészlete a tulajdonságok értékeinek halmaza. 39

Táblázatos ábrázolás Táblázat sora = modellelem Táblázat oszlopa = tulajdonság Név Típus Méret (kb) Utolsó módosítás Dokumentumok könyvtár 2016.02.02 szerződés.pdf fájl 569 2015.11.09 Képek könyvtár 2016.02.02 logó.png fájl 92 2015.03.06 alaprajz.jpg fájl 1226 2016.02.02 NULL / NA attribútumok 40

Definíció: Szűrés A szűrés művelet során a modell elemein kiértékelünk egy szűrési feltételt, azt a részmodellt tartjuk meg, amelynek elemei megfelelnek a feltételnek. o Típus = "fájl" Név szerződés.pdf logó.png alaprajz.jpg Típus Méret (kb) fájl fájl fájl 569 92 1226 Utolsó módosítás 2015.11.09 2015.03.06 2016.02.02 o Méret > 1000 kb Név alaprajz.jpg Típus Méret (kb) fájl 1226 41 Utolsó módosítás 2016.02.02

Definíció: Vetítés Vetítés során a modell egyes jellemzőit kiválasztjuk és a többit elhagyjuk Név Típus Méret (kb) Utolsó módosítás Dokumentumok könyvtár 2016.02.02 szerződés.pdf fájl 569 2015.11.09 Képek könyvtár 2016.02.02 logó.png fájl 92 2015.03.06 alaprajz.jpg fájl 1226 2016.02.02 Név Méret (kb) Vetítés: {Név, Méret} Dokumentumok szerződés.pdf 569 Képek logó.png 92 alaprajz.jpg 1226 42

Példa lekérdezés: szűrés és vetítés SELECT név, méret FROM Állományok; WHERE típus = fájl AND méret> 1000 SQL: Structured Query Language vetítés adatforrás szűrés o Adatlekérdezés (és -manipuláció) o A relációs adatbáziskezelés alapja o Itt: minta (szűrés, vetítés, származtatás) o Részletesebben: Adatbázisok https://portal.vik.bme.hu/kepzes/targyak/vitmab00/ 43

TÍPUSOK 44

Táblázatos ábrázolás Sor = modellelem Oszlop = jellemző (gráf elemeinek tulajdonsága) Név Típus Méret (KB) Utolsó módosítás Dokumentumok könyvtár 2016.02.02 parciális függvény szerződés.pdf fájl 569 2015.11.09 Képek könyvtár 2016.02.02 logó.png fájl 92 2015.03.06 alaprajz.jpg fájl 1226 2016.02.02 45

Típus és tulajdonságok A típus a címkében kifejezett tudás része o Tehát a típus egy kitüntetett attribútum o A többi jellemző: a tulajdonságok Gyakori konvenció: o tulajdonságok akár változhatnak is o típus egy elemre tipikusan állandó 46

Típusgráf Minden csomóponttípushoz egy típuscsomópont Minden éltípushoz egy típusél vonal Metróvonal autóbuszvonal telephely Metró járműtelep Vajon van-e közös vonás? (pl. helyszín, közlekedési hálózat eleme ) autóbuszgarázs 47

Típusgráf Címkézett (típusos) kapcsolatok a típus csomópontok közt Hurokél lehetséges Ha az adatok forrása különböző: megvalósítható? Irányított kapcsolat Hiányzik? Autóbuszvonalhoz csak autóbuszgarázs 48

Típusgráf és példánygráf Típusgráf Példánya kapcsolatok Típusmodellnek megfelelő-e a példány? (pl. kapcsolódik ) Példánygráf Mik lehetnek a típusok? Lehet-e további típust felvenni? 49

Összefoglalás 50

STRUKTURÁLIS MODELL REPREZENTÁLÁSA PROGRAMBAN 51

Programozási paradigmák Programozási paradigma: egy programozási nyelv elméleti modellje Strukturált programozás (C) o változók struktúrába szervezése: struct Objektum-orientált programozás, OOP (C++, Java) o típus: osztály o példány: objektum o attribútum: mező o műveletek: metódusok o attribútumok/metódusok láthatósága, egységbe zárás stb. bővebben ld. a Programozás alapjai 2. tárgyban 52

OOP: öröklés Tervezői döntés: Han Solo nem lesz warrior (nincs fénykardja) Person gender: string Warrior saber_color : string Object name : string Planet orbital_period: int number_of_moons: int Jedi Sith 53

Eclipse Modeling Framework Ecore diagram szerkesztő generálható automatikus mentés és betöltés lehetséges a példánymodellek ellenőrizhetők 54

Szöveges reprezentációk XML (Extensible Markup Language) o szabványos, általános célú nyelv leírónyelvek definiálására o ember számára (elvileg ) olvasható JSON (JavaScript Object Notation) o szöveg alapú szabvány ember által olvasható adatcserére 55

XML példa: időjárás webszolgáltatás 56

JSON példa: Google Maps API 57

Modellezési nyelvek UML (Unified Modeling Language) o általános célú modellezési nyelv AADL (Architecture Analysis & Design Language) o architektúraleíró nyelv SysML (Systems Modeling Language) o UML-alapú általános modellezési nyelv rendszertervezési célokra EMF (Eclipse Modeling Framework, Ecore) o modellezési nyelv készítésére alkalmas (Adatközpontú modellezés, szakterületi modellek) 58

Kitekintés: refaktoring Code refactoring is the process of restructuring existing computer code changing the factoring without changing its external behavior. Refactoring improves nonfunctional attributes of the software. Advantages include o improved code readability and o reduced complexity to improve source code maintainability, and o create a more expressive internal architecture or object model to improve extensibility. Bővebben: felsőbbéves szoftveres tantárgyak 59

Refaktoring példa: pull up Warrior Jedi saber_color : string Sith saber_color : string Jedi Warrior saber_color : string Később: Modellben/kódban mi a hatása? Szinkronizáció? Sith 60

ÖSSZEFOGLALÁS 61

Definíció: Strukturális modell A strukturális modell statikus. Kiindulópontja egy (rész)rendszer, amelyet a része reláció mentén alkotórészekre bont. Az alkotórészek lehetnek: tovább bontott részrendszerek vagy tovább nem bontott (elemi) komponensek. A strukturális modell a rendszer felépítését (struktúráját) az alkotórészei, azok tulajdonságai és egymással való viszonya alapján reprezentálja. 62

Példa: (céges) hálózat Router Internet Firewall Smartphone Switch Server Workstation Wifi Laptop Smartphone Workstation Workstation Printer 63

Definíció: Dekompozíció A strukturális modell statikus. Kiindulópontja egy (rész)rendszer, amelyet a része reláció mentén alkotórészekre bont. A dekompozíció ( faktoring ) egy összetett probléma vagy rendszer kisebb részekre bontása, amelyek könnyebben érthetők, fejleszthetők és karbantarthatók. Hierarchikus dekompozíció: o Többlépcsős rész-egész viszony Része reláció tartalma szerint: o Fizikai dekompozíció: része=térbeli tartalmazás o Logikai dekompozíció: pl. része=funkció 64