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 1020 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ó
Amikor egyszerüen aggregációt mondunk erre gondolun
Erős aggregáció
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
Pub-ban fenn van http://argouml.tigris.org
BOUML
http://bouml.free.fr/download.html
Google :)
Egyéb
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???