Strukturális modellezés



Hasonló dokumentumok
Strukturális modellezés

Strukturális modellezés

Strukturális modellezés

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

Vizuális adatelemzés

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

UML (Unified Modelling Language)

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

Utolsó módosítás:

Utolsó módosítás:

Intelligens közlekedési rendszerek (ITS)

Komponens alapú fejlesztés

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

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

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

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

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

Modellezési alapismeretek

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

JAVA webes alkalmazások

Magas szintű adatmodellek Egyed/kapcsolat modell I.

S01-7 Komponens alapú szoftverfejlesztés 1

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

Mobil készülékek programozása

Struktúra alapú modellezés

Struktúra alapú modellezés

API tervezése mobil környezetbe. gyakorlat

Junior Java Képzés. Tematika

Kérdés Kép Válasz HIBAS Válasz HELYES Válasz HIBAS Válasz HIBAS Kérdés Kép Válasz HIBAS Válasz HELYES Válasz HIBAS Válasz HIBAS Kérdés Kép Válasz

EGYSZERŰ, NEM IRÁNYÍTOTT (IRÁNYÍTATLAN) GRÁF

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

A Java EE 5 plattform

Folyamatmodellezés (BPMN) és alkalmazásai

MVC Java EE Java EE Kliensek JavaBeanek Java EE komponensek Web-alkalmazások Fejlesztői környezet. Java Web technológiák

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

Automatikus infrastruktúra menedzsment és alkalmazástelepítés

COMET webalkalmazás fejlesztés. Tóth Ádám Jasmin Media Group

GráfRajz fejlesztői dokumentáció

Egy egyszerű, gyors és szabad újratelepítő eszköz: upi

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

Adatbázis rendszerek I

Algoritmuselmélet. 2-3 fák. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem. 8.

Interfészek. PPT 2007/2008 tavasz.

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

Számítógép hálózatok, osztott rendszerek 2009

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

Adatbázis-kezelés. alapfogalmak

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

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

Book Template Title. Author Last Name, Author First Name

Közösség, projektek, IDE

Flex: csak rugalmasan!

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

Bevezetés Működési elv AJAX keretrendszerek AJAX

OOP és UML Áttekintés

Models are not right or wrong; they are more or less useful.

Rendszermodellezés: házi feladat bemutatás

A számítógép-hálózat egy olyan speciális rendszer, amely a számítógépek egymás közötti kommunikációját biztosítja.

NEPTUN ID BMENET ID. Címtár BME VPN. vcenter VPN SVN. Trac Wiki. Wifi

Az IBM WebSphere Multichannel Bank Transformation Toolkit V7.1 felgyorsítja a többcsatornás alkalmazásfejlesztést

Vodafone HomeNet Használati útmutató

Web-fejlesztés NGM_IN002_1

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

1. gyakorlat Strukturális modellezés Megoldások

Rendszermodellezés 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

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

Adatstruktúrák, algoritmusok, objektumok

A L i n u x r u h á j a

Programfejlesztési Modellek

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

Teljesítmény Mérés. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Teljesítmény Mérés / 20

Intelligens biztonsági megoldások. Távfelügyelet

Programozási környezetek

1. Gyakorlat: Telepítés: Windows Server 2008 R2 Enterprise, Core, Windows 7

Modell alapú tesztelés mobil környezetben

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

A szoftverfejlesztés eszközei

Programozás 1. 2.gyakorlat

WWW Kliens-szerver Alapfogalmak Technológiák Terv. Web programozás 1 / 31

MVC. Model View Controller

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

III. OOP (objektumok, osztályok)

CAD Rendszerek I. Sajátosság alapú tervezés - Szinkron modellezés

Adatbázisok - 1. előadás

Előzmények

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

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

Alkalmazás és megjelenítés virtualizáció

Az iskolai rendszerű képzésben az összefüggő szakmai gyakorlat időtartama. 10. évfolyam Adatbázis- és szoftverfejlesztés gyakorlat 50 óra

Java VI. Egy kis kitérő: az UML. Osztály diagram. Általános Informatikai Tanszék Utolsó módosítás:

Windows rendszeradminisztráció és Microsoft szerveralkalmazások támogatása. 5. óra. Kocsis Gergely, Supák Zoltán

Programozási nyelvek Java

Dr. Schuster György október 30.

Gyors telepítési kézikönyv

Nagy bonyolultságú rendszerek fejlesztőeszközei

HÁLÓZATOK I. Segédlet a gyakorlati órákhoz. Készítette: Göcs László mérnöktanár KF-GAMF Informatika Tanszék tanév 1.

Objektumorientált paradigma és programfejlesztés Bevezető

Átírás:

Strukturális modellezés Szárnyas Gábor, Bergmann Gábor, Gönczy László, Pataricza Andrá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

Miről lesz szó? Struktúra modellezés célja, alkalmazásai Dekompozíció Modell elemek leírása gráfokkal Tipikus kérdések (felépítés, elérhetőség)

Illusztráció Felépítési modellek http://vigszinhaz.hu/images/upload/nezo_v1.jpg

Illusztráció Felépítési modellek Szervezeti felépítés (ld. tartalmazási hierarchia) BME VIK EMK SZIT MIT GTT Beágyazott Rendszerek Hibatűrő Rendszerek Intelligens Rendszerek

( átlát a káoszon?) http://www.mikethearchitect.com/2012/10/challenge-the-status-quo-and-advance-business-through-cloud-computing.html

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? Rendszer és specifikáció összevetése o Megfelel-e az elvárásoknak?

Hogyan épül fel a rendszerem? Kezdeti rendszerkép, nem látszanak rajta az elemek tulajdonságai Tervezői döntések 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

Hogyan teszteljem az összeköttetéseket? Milyen kapcsolatok lehetségesek? Milyen függőségek vannak? Mely elemek léteznek/integrálhatóak? Hol szükséges ellenőrzés/védelem? http://www.uml-diagrams.org/examples/online-shopping-uml-component-diagram-example.html

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 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?) Nem fed le mindent, nem válik élesen szét

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?

ATM struktúra és blokkdiagram pénzkiadó CPU kártyaolvasó trezor kazetta http://en.wikipedia.org/wiki/ File:Atm_blockdiagram.png

Biztos, hogy ez csak struktúra? http://www.britannica.com/ebchecked/media/95649/ The-components-of-an-automated-teller-machine

ATM struktúra http://www.pcmag.com/encyclopedia/term/38117/atm-machine

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

Példa: (céges) hálózat Összevonhatóak-e funkciók? Van-e egyszeres hibapont a rendszerben? Router Internet Server Firewall Switch Milyen hosszú úton, milyen típusú elemeket érintve lehet elérni az internetet? Túlterhelt a wifi, hány gép van rajta? Workstation Wifi Smartphone Egy elem hibája meddig terjedhet? Laptop Elérhető-e az internet? Printer Workstation Workstation Smartphone Milyen elemekből áll a rendszer, milyen kapcsolatok lehetségesek?

Dekompozíció Decomposition in computer science, also known as factoring, is breaking a complex problem or system into parts that are easier to conceive, understand, program, and maintain. (Wikipedia) A dekompozíció ( faktoring ) tehát egy összetett probléma vagy rendszer kisebb részekre bontása, amelyek könnyebben érthetők, fejleszthetők és karbantarthatók. Funkcionális dekompozíció: ~blokkséma Hierarchikus dekompozíció: rész-egész viszony Alapja? o Elosztottság/hierarchia/algoritmika Hogyan ábrázoljuk/kezeljük általánosan?

Dekompozíció helyessége Részek teljessége?= egész Ld később (pl. kommunikáló állapotgépek) Felépítés o Elemek megfelelő be/kimenettel dolgoznak? o Készen kapott elemek beilleszthetőek? o (Később: hibákat hogyan kezeljük?) Kereső1 Repülőjegy kereső Valutaváltó

Példa: ipari vezérlő (Wikipedia)

Top-down tervezés Alaplépés: dekompozíció Okmányirodai munkahely Számítástechnikai eszközök PC munkaállomás Kábelezés POS terminál Okmánynyomtató Monitor Egér Billentyűzet Asztali gép Fotófülke Épített környezet Paraván Szék Íróasztal Ügyfélablak Fények Kamera Szék Zárható fiók

Alaplépés: kompozíció Közösségi háló Bottom-up tervezés Kiszolgáló infrastruktúra Szerveroldali szoftver Webszerver DB szerver Adatbázis Alkalmazás Statikus tartalomkiszolgáló Hirdetések Felügyelet Webes felület Felületterv (UX) Mobil felület Grafika Dinamika (JS)

Top-down Top-down és bottom up Részrendszer tervezésekor a szerepe már ismert Félidőben még nincsenek működő részek Részek problémái, igényei későn derülnek ki Bottom-up Alrendszer önmagában kipróbálható, tesztelhető Részleges készültségnél is összeépíthető valami Nem látszik előre a rész szerepe az egészben (Nem csak strukturális modellezésben ) Meet in the middle?

STRUKTURÁLIS MODELLEK

Strukturális modell Mi volt a közös az eddigiekben bizonyos dolgok valamilyen kapcsolata dolgok: szoftver csomagok, személyek, repülőterek, területek kapcsolata: függőség, ismeretség, repülőjárat, része szimmetrikus / aszimmetrikus Matematikai formalizmus: gráf o csomópontok, élek és tulajdonságok

Definíciók Az informatikában mindennek több, gyakran ellentmondó definíciója van o rendszer =? o modell =? Gyakran ugyanarra a fogalomra több nevével is hivatkozunk o csomópont = csúcs angolban: node, vertex, object, concept o él = kapcsolat fontos a fogalmak precíz definiálása angolban: edge, link, arc, connection, relationship

Taxonómia A biológiai rendszertanban taxonnak nevezik az élőlények egyazon kategóriába sorolt és közös gyűjtőnévvel ellátott csoportját élőlények domén baktériumok archeák eukarióták ország állatok amőbák gombák növények szivacsok korongállatkák valódi szövetes állatok gerinchúrosok törzse zsákállatok gerincesek nincsenek kapcsolatok altörzs Pl. webes rendszerek fogalomkészlete

Modell (gráf) diagram Luke Skywalker Darth Vader Jabba Darth Vader Jabba Luke Skywalker Luke Skywalker Darth Vader Jabba

Hierarchia ábrázolása The Galaxy Core Worlds Outer Rim Alderaan Coruscant oruscant Alderaan Tatooine Tatooine

Egyszerű gráfok kapcsolati háló: irányítatlan gráf Darth Vader Mace Windu Yoda hogyan alakítható irányítottá? helyszínek: irányított gráf The Galaxy Luke Skywalker Core Worlds Outer Rim Leia Organa Jabba Coruscant Alderaan Tatooine

Egyszerű gráfok Darth Vader Mace Windu Yoda The Galaxy Luke Skywalker Core Worlds Outer Rim Leia Organa Jabba Coruscant Alderaan Tatooine

Típusos gráfok Különböző típusú csomópontok és élek Darth Vader Mace Windu Yoda The Galaxy Luke Skywalker Core Worlds Outer Rim Leia Organa Jabba Coruscant Alderaan Tatooine

GRÁF ALAPÚ TUDÁSREPREZENTÁCIÓ

Közösségi háló személyek ismeretség

Függőségek kezelése függőség csomagok http://packages.ubuntu.com/trusty/gcc

C program fordítása app.c include menu.h 1 2 3 4 5 #include "menu.h" #include "io.h" int main() { //... 1 2 3 4 5 #include "util.h" //... forráskódfájl io.h util.h 1 2 3 4 5 #include "util.h" //... 1 2 3 4 5 //...

Repülési útvonalak repülőjárat repülőterek http://budapestdentists.com/wp-content/uploads/2009/07/map.png

A Galaxis területek része http://starwars.wikia. com/wiki/the_galaxy

Útvonal fogalma Szükséges-e a libpcre3 csomag a tar telepítéséhez? Hogyan tudok eljutni a Deák Ferenc térre?

A tar csomag függőségei

Budapest kötöttpályás közlekedés 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 4-6 Boráros tér Petőfi híd, Budai hídfő

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 Ferenciek tere 1 Kálvin-tér 1 2 2 Rákóczi tér 2 Corvin-negyed 4-6 3 2 Boráros tér Petőfi híd, Budai hídfő legrövidebb út?

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 M3 M4 Ferenciek tere Kálvin-tér Rákóczi tér Corvin-negyed Boráros tér Petőfi híd, Budai hídfő Tranzitív lezárt: hova lehet eljutni metróval?

Hierarchia ábrázolása Fa: körmentes összefüggő gráf Erdő: körmentes gráf Gyökér csomópont: a fa egy megkülönböztetett csomópontja. Gyökeres fa: olyan fa, ami rendelkezik gyökér csomóponttal. Gyökeres, szintezett fa: a fa csomópontjaihoz hozzárendeljük a gyökértől vett távolságukat

Fa gyökér csomópont? gyökér csomópont? gyökér csomópont

Fastruktúra tulajdonságai A tartalmazási részfák diszjunktak vagy alárendeltek Ábrázolható o Gráfként faélek explicit módon faélek implicit módon o Bennfoglaló ábrázolás

Fastruktúra ábrázolása világtérkép Párizs Európa fővárosa? Föld Szomszédossági viszony nincs leírva Afrika Amerika Ausztrália Ázsia Európa Franciaország Németország Magyarország

Fastruktúra bennfoglaló ábrázolás http://www.worldatlasbook.com/europe/europe-political-map.html

Grafikus felhasználó felület Main window Menu Main View Edit Help Display Degrad MC Degrees Radians Grads

Fastruktúra ábrázolása fájlrendszer C: \Program Files \Common Files \Windows \Fonts \Users \system32 \drivers \etc

Fastruktúra bennfoglaló ábrázolás KDE Konqueror Plusz információ: méret

TULAJDONSÁGOK MODELLEZÉSE

Sor = modellelem Táblázatos ábrázolás Oszlop = jellemző (gráf elemeinek tulajdonsága) név fénykard színe nem holdak száma keringési idő Alderaan 1 364 Coruscant 4 368 Darth Vader piros férfi Jabba Leia Organa hímnős nő Luke Skywalker zöld férfi Mace Windu lila férfi Tatooine 3 304 Yoda zöld férfi parciális függvény: NULL / NA attribútumok

Szűrt nézet Alapműveletek o Csak azon sorok, amelyek egy bizonyos oszlopban bizonyos értéket vesznek fel o fénykard színe = "zöld" név fénykard színe nem holdak száma keringési idő Luke Skywalker zöld férfi Yoda zöld férfi o holdak száma > 2 név fénykard színe nem holdak száma keringési idő Coruscant 4 368 Tatooine 3 304

Vetített nézet Alapműveletek o Csak bizonyos oszlopok megtartása o {holdak száma, keringési idő} Biztos, hogy csak ide tartozik? o {név, fénykard színe} holdak száma keringési idő név fénykard színe 1 364 4 368 3 304 Alderaan Coruscant Darth Vader Jabba Leia Organa Luke Skywalker Mace Windu Tatooine Yoda piros zöld lila zöld

TÍPUSOK

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ó Módosítás: Luke fénykardja: kék zöld o Típus nem változik

Típusgráf Minden csomóponttípushoz egy típuscsomópont Minden éltípushoz egy típusél Jedi person warrior Sith person is a warrior is a is a Jedi Sith hierarchikus dekompozíció

Típus-példány viszonyok ábrázolása instanceof person Darth Vader Mace Windu Yoda is a warrior Luke Skywalker is a is a Leia Organa Jedi Sith Jabba

Típus-példány viszonyok ábrázolása instanceof person Darth Vader Mace Windu Yoda is a warrior Luke Skywalker is a is a Leia Organa Jedi Sith Jabba (példány)modell metamodell

Típusok ábrázolása jellemzőként instanceof name: Darth Vader type: Sith name: Mace Windu type: Jedi name: Yoda type: Jedi name: Leia Organa type: person (példány)modell name: Luke Skywalker type: Jedi name: Jabba type: Person

Különböző éltípusok Darth Vader instanceof instanceof Mace Windu Yoda person knows born lives is a warrior planet Luke Skywalker is a is a Leia Organa instanceof Jedi Sith Jabba lives born Tatooine instanceof

STRUKTURÁLIS MODELL REPREZENTÁLÁSA PROGRAMBAN

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

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

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

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

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

JSON példa: Google Maps API

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)

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

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