Programozás 1. 2.gyakorlat
Ismétlés Objektum: Egy a való világból vett elem (ami lehet elvonatkoztatott is) számítógépes ábrázolása. Pl: Kurzus, Személy stb Minden Objektum rendelkezik: Állapottal Viselkedéssel Identitással
Ismétlés Objektum állapota Egy a lehetséges létezési lehetőségek közül Időben változhat Hajszín, életkor Attríbutumok határozzák meg Például : Egy embert vénnek nevezünk ha elmúlt már 50 éves, viszont túl fiatalnak egy lányt ha még nem töltötte be a 16-ot
Ismétlés Objektum viselkedés Meghatározza, hogy mit csinálhat az objektumunk Meghatározza, hogyan reagáljon más objektumok kölcsönhatásaira Operációk (metódusok) határozzák meg Például: Egy ember hozzászólhat illetve megérthet egy másik embert, vagy elszaladhat egy pók láttán
Ismétlés Objektum Identitása Minden objektum egyedi, még ha azonosnak is látszódnak: Még ha az állapotai megegyeznek akkor is! 2 hangya hasonló : Ugyanolyan kicsik Ugyanolyan színűek Ugyanannyi lábuk van... stb Mégsem ugyanarról a 2 hangyáról van szó
Osztály Az objektumok formai leírása, vagyis az objektumok egy olyan csoportjának a leírása, melyeknek megegyeznek : Attributumai, metódusai Más objektumokkal való kapcsolataik Viselkedésük
Osztálydiagram Minden egyes adott Objektum, amit a programunkban használunk az egy Osztály adott példánya Ezen osztályok összeségéből készíthetünk egy osztálydiagramot, amely leirja a programunk szerkezetét
Vizuális modellezés Egy program elkészítése nem csak abból áll, hogy jó főzök egy erős kávét, leülök és 10-20 perc alatt összedobok valamit, hogy müködjön... A kódoláson kívűl : Tervezés és Modellezés Dokumentálás Tesztelés Kódolás
Vizuális modellezés Célja, hogy jobban átláthatóbb legyen az egész program (rendszer) működése Egy programozási ismeretek nélküli személy is értse a program működésének fontos szakaszait Modellezés során, a komoly hibák már a kezdetekben észrevehetőek és kijavíthatóak (Ellenben egy már majdnem kész programmal)
Modell és diagram A modell egy rendszer teljes leírása, lényegében egy adatbázisról van szó, ami magába foglalja az egész rendszer életciklusát, azaz tartalmaz minden információt amire szükségünk lehet A diagram a model egy vetülete, azaz a rendszer egy részét (vagy egészét) vizuálisan ábrázolja
UML Unified Modeling Language Egységesített modellező nyelv Egy grafikus modellező nyelv OO tervezésre Probléma specifikálására Probléma megoldására Dokumentációra http://www.uml.org
UML Nyilt szabvány Különböző alkalmazási területekre alkalmazható Sok eszköz támogatja Teljes rendszer élteciklusát lehet a segítségével ábrázolni
UML Az UML a grafikus szemléltetést különböző nézetekben teszi lehetővé, így különböző diagrammokról beszélhetünk Use Case Szekvencia Osztály (Class) diagram Csomag diagram
UML Például: Dobozkák Nyilak Mik is ezek?
UML osztálydiagram Elemei: Osztályok, interfészek, csomagok, stb Kapcsolatok (nyilak) Asszociáció Aggregáció Kompozíció Öröklődés
Asszociáció Osztályok közötti kétírányú összeköttetés Használati kapcsolat - létük egymástól független, viszont legalább az egyik ismeri és/vagy használja a másikat Gyakorlatban: Egyik osztály használja egy másik osztály metódusait vagy magát az osztályt Megadható : Név Irány (egy vagy kettő)
Asszociáció Asszociációs osztály (részletek) Multiplicitás (résztvevők száma)
Aggregáció Rész-egész kapcsolat Tartalmazást fejez ki Egyik objektum tartalmazza a másikat A rész objektum léte függ az egész objektumtól Tojás = tojásfehérje + tojássárgája
Aggregáció 2 típusa van: Gyenge aggregáció Erős aggregáció Amikor egyszerüen aggregációt mondunk erre gondolun Gyakran kompozíciónak nevezzük
Gyenge aggregáció Egyik objektum része a másiknak Speciális asszociáció Nincs erős tartalmazás, azaz az objektum létezik a másik nélkül is
Kompozíció Erős tartalmazás, azaz az objektum nem tudna létezni a másik objektum nélkül Speciális aggregáció Erős aggregáció
Öröklődés Osztályok közötti kapcsolat, ahol egy adott osztály megosztja a strukturáját és/vagy viselkedését egy vagy több másik osztállyal Létrejön egy öröklődési hierarchia A származtatott (gyerek) osztály mindent örököl az ős (szülő) és kiegészítheti ezeket Egy származtatott osztály egy örökölt metódus saját implementációját is nyujtahtaja : polimorfizmus
Öröklődés
Előzőek egy példában
Kapcsolatok implementálása Asszociáció Az A osztály egy metódusának paramétere B típusú Az A osztály egy metódusa hívja a B osztály egy metódusát Az A osztály egy metódusa (lokálisan) példányosítja a B osztályt Az A osztály egy metódusának visszatérési értéke B Aggregáció Az A osztály tartalmaz egy B-re mutató pointert
Kapcsolatok implementálása Kompozíció Az A osztály tartalmaz egy B típusú adattagot Öröklődés Az A osztály a B osztályból származik
Eszközök A legnépszerűbb eszközök UML diagramm készítéséhez: ArgoUML BOUML Egyéb Pub-ban fenn van http://argouml.tigris.org http://bouml.free.fr/download.html Google :)
ArgoUML használata Nyissuk meg az ArgoUML-t Próbáljuk meg modellezni az előbb látott lakásos feladatot!
Feladatok Modellezd a kabinetet Megoldás : kabinet Modellezz egy bankkártyás fizetést ArgoUML Plusz pontért!
Kérdés???