Programtervezési minták értelmezése normálformákként

Slides:



Advertisements
Hasonló előadás
VIZSGAFELADATOK PMMIK, MÁJUS 26. LETÖLTHETŐ:hr2.pte.hu/vizsgappt.
Advertisements

A képzett szakemberekért SZMBK KERETRENDSZER 2.1. előadás.
KÖZHASZNÚSÁG MEGTARTÁSA, - MEGSZERZÉSE Molnár Elvira Bács-Kiskun Megyei Civil Információs Centrum 2014.
Követelményelemzés – követelményspecifikáció A szoftverfejlesztés kapcsán az elemzés speciálisan egy kezdeti szakaszt jelöl, amelynek alapvető feladata.
A FELNŐTTKÉPZÉSI A FELNŐTTKÉPZÉSI INTÉZMÉNYEK HATÉKONYSÁGÁNAK VIZSGÁLATA Felnőttképzők Szövetsége Borsi Árpád Budapest, december 10.
Informatikai rendszerek általános jellemzői 1.Hierarchikus felépítés Rendszer → alrendszer->... → egyedi komponens 2.Az elemi komponensek halmaza absztrakciófüggő.
A vállalatok marketingtevékenysége és a Magyar Marketing Szövetség megítélése Kutatási eredmények az MMSZ részére (2008. július)
Esettanulmány: egy inf. rendszer adatszerkezetének kialakítása ● Könyvtári adatbázis: ● Könyvek adatai: leltári szám, jelzet, szerző, cím, kiadás, ár,
BEST-INVEST Független Biztosításközvetítő Kft.. Összes biztosítási díjbevétel 2004 (600 Mrd Ft)
Kockázat és megbízhatóság
FELVÉTELI TÁJÉKOZTATÓ
Munkalapok védelme az Excelben
Nagyméretű állományok küldése
A kérdőívek, a kérdőívszerkesztés szabályai
Adatbázis normalizálás
Gyűjtőköri szabályzat
Vezetékes átviteli közegek
Dr. Kovács László Főtitkár
Programstruktúrák.
Adatbázisok gyakorlat
A közigazgatással foglalkozó tudományok
videós team Team vezetője: Tariné Péter Judit Tagok:
Észlelés és egyéni döntéshozatal, tanulás
Kockázat és megbízhatóság
A kollektív szerződés Dr. Fodor T. Gábor Ügyvéd
Kommunikáció a könyvvizsgálatban
T.R. Adatbázis-kezelés - Alapfogalmak Adatbázis:
Levegőtisztaság-védelem 6. előadás
Struktúra predikció ápr. 6.
Hipotézisvizsgálat.
Animációk.
Gazdaságstatisztika Korreláció- és regressziószámítás II.
Bevezetés Az ivóvizek minősége törvényileg szabályozott
Adatbázis-kezelés (PL/SQL)
MEGKEZDTÜK A FELKÉSZÜLÉST A TANULÓI LAPTOP PROGRAMRA
2. Bevezetés A programozásba
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
☺ Programozási környezetek Validátorok Fazekas Judit PTI 2010.
Társulások jellemzői.
Grosz imre f. doc. Kombinációs hálózatok /43 kép
Adatbázis alapfogalmak
Körmendi Dániel MAS Meeting Scheduler.
Nemeskocs Község Önkormányzatának Településkép-védelmi Rendelete
Rendszerfejlesztés gyakorlat
Tilk Bence Konzulens: Dr. Horváth Gábor
AVL fák.
Compliance és Corporate Governance
B M Java Programozás 4. Gy: Java GUI IT A N Tipper, MVC kalkulátor
A villamos installáció problémái a tűzvédelem szempontjából
TÁMOP A pályaorientáció rendszerének tartalmi és módszertani fejlesztése – Regionális workshop Zétényi Ákos.
Új pályainformációs eszközök - filmek
Szerzője Konzulens neve
Ez a formátum csak egy ajánlás, nem kötelező a használata.
Az iskolai szervezet és fejlesztése
TÁRGYI ESZKÖZÖK ELSZÁMOLÁSA
Összeállította: J. Balázs Katalin
B M Java Programozás 9. Gy: Java alapok IT A N Adatkezelő 5.rész
Magyar Könyvvizsgálói Kamara XVIII. Országos Konferenciája II
Dr. Varga Beatrix egyetemi docens
SQL jogosultság-kezelés
Diplomamunka Készítette: Csányi István Csillagász MSc szakos hallgató
TITKOSÍTÓ ALGORITMUSOK
Áramlástan mérés beszámoló előadás
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
Bevezetés Tematika Számonkérés Irodalom
LIA Alapítványi Ált. Isk. és Szki. Piliscsabai Tagintézménye
A részekre bontás tilalma és annak gyakorlati alkalmazása
Algoritmusok.
Szabálytalanságkezelés
Az objektum orientált programozás alapjai
Előadás másolata:

Programtervezési minták értelmezése normálformákként Kusper Gábor, gkusper@aries.ektf.hu Eszterházy Károly Főiskola

Tartalomjegyzék Programtervezési minták A Relációs Adatmodell és az Objektum Orientált Programozás Normálformák a Relációs Adatmodellben Javasolt OOP Normálformák 2018.11.27.

Programtervezési minták A 90-es évektől kezdve kerülnek középpontba a GOF könyvvel: E. Gamma, R. Helm, R. Johnson és J. Vlissides: Design Patterns: Elements of Reusable Object-Oriented Software „Recept” a programozó számára Nehezen formalizálható 2018.11.27.

A Pehelysúlyú minta Ez a minta akkor használandó, ha az alkalmazás nagy számú objektumot használ és a legtöbb objektum-tulajdonság külsővé tehető. 2018.11.27.

Normálformák a Relációs Adatmodellben 1NF: Egy reláció első normálformában van, ha a reláció minden értéke elemi. 2NF: Egy reláció második normálformában van, ha első normálformájú, továbbá egyetlen másodlagos attribútuma sem függ funkcionálisan egyetlen kulcsának valódi részhalmazától sem. 3NF: Egy reláció második normálformában van, ha első normálformájú, továbbá a másodlagos attribútumai közt nincs funkcionális függőség. 2018.11.27.

Függőségi és Csatolási fogalmak a GOF könyvben Fordítási függőség (compilation dependence) Megvalósítási függőség (dep. on implementation) Környezeti függőség (dep. on environment) Szoros csatolás (tight coupling) Laza csatolás (loose coupling) Elvont csatolás (abstract coupling) Rétegezés (layering) 2018.11.27.

A programtervezési minták két alapelve Programozzunk a felületre a megvalósítás helyett. Használjunk objektum-összetételt osztályöröklés helyett, amikor csak lehet. Csökkentik az osztályok függőségét, csatoltságát, ami növeli a kód rugalmasságát, bővíthetőségét és megérthetőségét. A GOF könyv a csatolás lazítását javasolja! 2018.11.27.

A Relációs Adatmodell és az Objektum Orientált Programozás 2018.11.27.

A Relációs Adatmodell és az Objektum Orientált Programozás Ezek alapján a megfeleltetés a következő: Tábla Attribútum Egyed Elsődleges kulcs Idegen kulcs Osztály Metódus Objektum this Referencia 2018.11.27.

OOP Normálformák Nem lehet azonban egyszerűen csak átírni a normálformákat ezen megfeleltetés alapján: Már az első normálforma ilyen módú használatánál felmerülne az összetett típusok kérdése, Másrészt a normálformák az egyedek belső szerkezetére tesznek megkötést (funkcionális függőség tiltása), de az objektumok belső állapota rejtve van. Ugyanakkor a funkcionális függőség feloldása a külső szerkezet változását vonja maga után (egy táblából több tábla). Az OOP normálformáknak biztosítaniuk kell, hogy az osztályok lazán legyenek csatolva. 2018.11.27.

Csatoltság Definíció: A csatolás (coupling) annak mértéke milyen erős kapcsolatban áll egy osztály a többi osztállyal. A csatolás mértéke két osztály, A és B, között növekszik, ha: A-nak van B típusú mezője; A meghívja B valamelyik metódusát; A-nak van olyan metódusa, amelynek visszatérési típusa B; A B-nek leszármazottja, vagy implementálja B-t. 2018.11.27.

A javasolt OOP Normálformák 1NF: Az osztály első normálformában van, ha környezete elől elrejti a mezőit. 2NF: Az osztály második normálformában van, ha első normálformájú, továbbá a referencia típusú mezői elvont osztály típusúak. 3NF: Az osztály harmadik normálformában van, ha második normálformájú, továbbá minden metódus hívás által visszaadott érték és belsőállapot-átmenet a környezetétől független. 2018.11.27.

Az OOP Normálformák következményei 1NF: Az egységbezárás elvének következménye, hogy a mezőket csak az objektum saját metódusai írhatják, olvashatják. De ennek betartása nem kötelező, egy mező akár publikus is lehet. Ezt zárja ki az első normálforma. 2018.11.27.

Az OOP Normálformák következményei 2NF: Tulajdonképpen a programtervezési minták első alapelvét fogalmazza meg, hiszen ha csak elvont osztályokat ismerünk, akkor csak a felületet ismerhetjük. „Programozzunk a felületre a megvalósítás helyett!” 2018.11.27.

Az OOP Normálformák következményei 3NF: ha egy objektum metódusát meghívjuk. akkor az egyrészt visszaad egy értéket, másrészt megváltoztathatja az objektum belső állapotát. Ha a visszatérési érték és az állapot átmenet is csak az objektum belső állapotától és a metódus paramétereitől függ, akkor harmadik normálformában van az osztály. 2018.11.27.

Környezeti függőség Definíció: Azt mondjuk, hogy az objektum függ a környezetétől, ha megvalósítsa felhasználja a környezetében lévő objektumok által okozott mellékhatásokat. Mellékhatásnak nevezzük, ha egy objektum megváltozatja környezetét. 2018.11.27.

A Pehelysúlyú minta Szoros összefüggés a Programtervezési minták és az OOP NF-ek között. A Pehelysúlyú (Flyweight) minta: 2018.11.27.

A Pehelysúlyú minta Mit is jelent ez a mi modellünkben? A műveletek a külső állapotot a paraméteriben kapják. Eredményük csak ettől és a belső állapottól függ Ez alapján a mi modellünk szerinti 3NF-ben van. 2018.11.27.

Más OOP Normálformák Más javaslatok is léteznek OOP normálformákra. Legismertebb a Building Object Applications That Work című könyvben található: 1ONF: A class is in 1ONF when specific behavior required by an attribute that is actually a collection of similar attributes is encapsulated within its own class.  2ONF: A class is in 2ONF when it is in 1ONF and when “shared” behavior that is needed by more than one instance of the class is encapsulated within its own class(es).  3ONF: A class is in 3ONF when it is in 2ONF and when it encapsulates only one set of cohesive behaviors. 2018.11.27.

The Object-Rational Impedance Mismatch Sok szerző vallja, hogy nem egyeztethető össze az adatok állandóságára koncentráló Relációs Adatmodell és az objektumok dinamikus változását szem előtt tartó OOP. Ezt a nézetmódbeli eltérést az irodalom „The Object-Rational Impedance Mismatch”-nek nevezi. 2018.11.27.

Összefoglalás Abból indultunk ki, hogy a Pehelysúlyú minta valamilyen normálformában van. Ehhez próbáltunk megfelelő normálforma fogalmat keresni. A Relációs Adatmodell és az OOP fogalmai közt található párhuzamból indultunk ki. 2018.11.27.

Összefoglalás Megvizsgáltuk a RA normálformákat, amik a funkcionális függőségen alapszanak. Megvizsgáltuk a GOF könyvet, ami a csatolás lazítását javasolja. Találtunk egy alkalmasnak tűnő OOP normálforma fogalmat! Alkalmasnak tűnő függőségi fogalmat nem sikerült találni. 2018.11.27.

A javasolt OOP Normálformák 1NF: Az osztály első normálformában van, ha környezete elől elrejti a mezőit. 2NF: Az osztály második normálformában van, ha első normálformájú, továbbá a referencia típusú mezői elvont osztály típusúak. 3NF: Az osztály harmadik normálformában van, ha második normálformájú, továbbá minden metódus hívás által visszaadott érték és belsőállapot-átmenet a környezetétől független. 2018.11.27.

Köszönöm a figyelmet!