Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 3. gyakorlat.

Hasonló előadás


Az előadások a következő témára: "1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 3. gyakorlat."— Előadás másolata:

1 1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 3. gyakorlat

2 Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor2Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Vizuális modellezés Programozás: –Modellezés és tervezés –Implemetálás (Kódolás) –Dokumentálás és Tesztelés A megtervezetlen programozás sosem vezet jóra, főleg nagy, bonyolultabb rendszereknél !! A tervezés hiánya garantált kudarc. A tervezésnek mindig meg kell előznie az implementálást! Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor2

3 Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor3Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Vizuális modellezés Szabványos grafikai eszközökkel írjuk le a problémát Célja: Jobban átlátható legyen a program felépítése –Programozásban nem jártas emberek is megértsék a rendszer működését –Hibák jelentős része itt felfedezhető, és gyorsan javítható, komolyabb mellékhatás nélkül (Ellenben egy félkész/kész programmal) Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor3

4 Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor4Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Modell és diagram Modell: A teljes rendszer leírása, amely magába foglalja a rendszer teljes életciklusát (tervezés, implementálás, dokumentáció, tesztelés) Diagram: A rendszer egy részének (vagy egészének) vizuális reprezentációja Osztálydiagram: Osztályok vizuális reprezentációja –UML nyelv Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor4

5 Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor5Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Objektumorientáltság Objektum: Egy valós vagy elképzelt entitás ábrázolása számítógépen, mely minden esetben rendelkezik: –Állapottal –Viselkedéssel –Identitással Tehát az objektum lehet bármi, ami rendelkezik ezzel a három tulajdonsággal: –Számítógép –Személy Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor5

6 Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor6Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Objektum állapota Objektum állapota: egy a lehetséges létezési lehetőségek közül (aktuális tulajdonságok által meghatározva) Időben változó lehet Attribútumok határozzák meg –van egy lámpa, ami ki vagy be van kapcsolva –adott egy személy, akinek van neve –adott egy bor, ami fehér vagy vörös Ezek az attribútumok a programozásban lehetnek különböző típusú változók, valamilyen értékkel. –pl.: adott egy Bor objektum  String tipus; Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor6

7 Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor7Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Objektum viselkedése Annak módja, hogyan reagál más objektumok kéréseire –Az objektum kérésre csinál „valamit” Mindent definiál, amit az objektum csinálhat Operációk (metódusok) határozzák meg –Nyúl típusú objektumnak lehetnek „ugrik” és „eszik” operációi –egy Lámpa típusú objektumnak lehetnek „bekapcsol”, „kikapcsol”, „elromlik” operációi Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor7

8 Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor8Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Objektum identitása Minden objektum egyedi ! (még akkor is, ha az állapotuk azonos) –pl.: a programozas és algoritmusok különböző objektumok, de mindkettő Kurzus (ugyanabba az osztályba tartoznak) –a torpeNyul és az angolNyul különböző objektumok, de mindkettő Nyúl Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor8

9 Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor9Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Osztály Leírás objektumok csoportjához, melyeknek közösek az –attribútumai, operációi –más objektumokkal való kapcsolataik –viselkedésük az osztály az objektum típusa csomagok (package) –Az osztályok csomagokba rendezhetők, hierarchikusan Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor9

10 Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor10Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Osztálydiagram class diagram az osztályokból osztálydiagramokat állíthatunk össze, mely leírja a programunk szerkezetét Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor10

11 Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor11Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor UML Unified Modeling Language (Egységesített Modellező Nyelv) Egy nyelv: szintaktikai és szemantikai szabályok összessége Szoftverrendszer elemeinek: –vizualizálására (  Grafikus) –specifikálására –létrehozására –dokumentálására Hivatalos oldal: Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor11

12 Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor12Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor UML osztálydiagram Grafikus szemléltetésre különböző diagramok készíthetők, ezek egyike az osztálydiagram Elemei: osztályok, interfészek, csomagok, megjegyzések Kapcsolatok: –asszociáció –aggregáció –kompozíció –öröklődés Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor12

13 Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor13Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Asszociáció Osztályok közötti kétirányú összeköttetés „Használati kapcsolat” - létük egymástól általában független, de legalább az egyik ismeri és/vagy használja a másikat Gyakorlatilag az egyik osztály használja a másikat (vagy egy metódusát, stb) Asszociáció lehet egy- vagy kétirányú Adhatunk nevet az asszociációnak Asszociációs osztály: –Asszociáció, kapcsolat részletei Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor13

14 Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor14Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Asszociáció Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor14

15 Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor15Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Aggregáció Rész-egész kapcsolat Az egyik objektum fizikailag tartalmazza a másikat A rész-objektum(ok) léte az egész- objektumtól függ Kétféle lehet: –gyenge aggregáció –erős aggregáció ( = kompozíció) Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor15

16 Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor16Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Gyenge aggregáció Speciális asszociáció A tartalmazó létezhet a tartalmazott nélkül is (pl.: Alma, Kukac) Egyik objektum része a másiknak Nem erős tartalmazás Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor16

17 Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor17Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Kompozíció Fizikai tartalmazás (erős aggregáció) Speciális aggregáció A tartalmazott nélkül nem létezhet a tartalmazó osztály (pl. Ember, Fej) Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor17

18 Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor18Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Öröklődés Osztályok közötti kapcsolat (reláció), ahol egy osztály megosztja a struktúráját és/vagy a viselkedését egy vagy több másik osztállyal Öröklődési hierarchia A származtatott (gyerek) osztály mindent örököl az őstől és kiegészítheti ezeket sajátokkal. –Ősosztály: Fa –Gyerekosztályok: Almafa, Körtefa, Szilvafa Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor18

19 Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor19Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Öröklődés A gyerek mindent örököl az őstől, de ezen felül tartalmazhat mást is overriding (felüldefiniálás) : az örökölt operáció saját implementációja –vagyis „még egyszer implementáljuk” az adott operációt a gyerekosztályon belül –polimorfizmus többszörös öröklődés Javaban nincs! Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor19

20 Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor20Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Öröklődés – Általánosítás, Specializáció Általánosítás –Bizonyos osztályok közös tulajdonságai alapján egy új osztály létrehozása Specializáció –Egy osztály speciális esete(i) Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor20

21 Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor21Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor UML Osztálydiagram példa Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor21

22 Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor22Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Osztályok közötti kapcsolatok – implementációs példák Asszociáció –A osztály egy metódusának paramétere B típusú –A osztály egy metódusa hívja B egy metódusát –A osztály egy metódusa (lokálisan) példányosítja B-t –A osztály egy metódusának visszatérési értéke B típusú Aggregáció –A osztály tartalmaz egy B-re mutató pointert/referenciát Kompozíció –A osztály tartalmaz egy B adattagot Öröklődés –A osztály B osztályból származik Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor22

23 Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor23Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor UML Eszközök ArgoUML: –http://argouml.tigris.org/ BOUML: –http://www.bouml.fr/ yEd –http://www.yworks.com/en/products_yed_abo ut.html UML Eszközök listája: –http://en.wikipedia.org/wiki/List_of_UML_tools Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor23

24 Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor24Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Feladatok Modellezzünk egy egyszerű kutyát… A modellben szerepeljenek a következő osztályok: –Kutya –Fej –Ember (a kutya gazdája) –Bolha (rajta lehet a kutyán) –Puli és Németjuhász valamint a közöttük lévő kapcsolatok. Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor24

25 Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor25Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Feladatok Modellezd a bankkártyás fizetést! A modellben szerepeljenek a következő osztályok: –Bank –Számla –Személy –Kártya –Terminál ( két fajta: automata és POS ) valamint a közöttük lévő kapcsolatok. Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor25


Letölteni ppt "1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 3. gyakorlat."

Hasonló előadás


Google Hirdetések