programozás i

25
1 Szegedi Tudományegyetem Természettudományi és Informatikai Kar Antal Gábor Programozás I. 2. gyakorlat

Upload: helmut

Post on 14-Jan-2016

58 views

Category:

Documents


0 download

DESCRIPTION

Programozás I. 2. gyakorlat. 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. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Programozás I

1Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Antal Gábor

Programozás I.

2. gyakorlat

Page 2: Programozás I

Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Antal Gábor 2Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Antal 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 Kar

Antal Gábor 2

Page 3: Programozás I

Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Antal Gábor 3Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Antal 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 Kar

Antal Gábor 3

Page 4: Programozás I

Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Antal Gábor 4Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Antal 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 Kar

Antal Gábor 4

Page 5: Programozás I

Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Antal Gábor 5Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Antal 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 Kar

Antal Gábor 5

Page 6: Programozás I

Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Antal Gábor 6Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Antal 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 Kar

Antal Gábor 6

Page 7: Programozás I

Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Antal Gábor 7Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Antal 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 Kar

Antal Gábor 7

Page 8: Programozás I

Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Antal Gábor 8Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Antal 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 Kar

Antal Gábor 8

Page 9: Programozás I

Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Antal Gábor 9Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Antal 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 Kar

Antal Gábor 9

Page 10: Programozás I

Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Antal Gábor 10Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Antal 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 Kar

Antal Gábor 10

Page 11: Programozás I

Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Antal Gábor 11Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Antal 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: http://www.uml.org

Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Antal Gábor 11

Page 12: Programozás I

Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Antal Gábor 12Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Antal 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 Kar

Antal Gábor 12

Page 13: Programozás I

Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Antal Gábor 13Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Antal 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 Kar

Antal Gábor 13

Page 14: Programozás I

Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Antal Gábor 14Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Antal Gábor

Asszociáció

Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Antal Gábor 14

Page 15: Programozás I

Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Antal Gábor 15Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Antal 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 Kar

Antal Gábor 15

Page 16: Programozás I

Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Antal Gábor 16Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Antal 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 Kar

Antal Gábor 16

Page 17: Programozás I

Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Antal Gábor 17Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Antal 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 Kar

Antal Gábor 17

Page 18: Programozás I

Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Antal Gábor 18Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Antal 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 Kar

Antal Gábor 18

Page 19: Programozás I

Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Antal Gábor 19Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Antal 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 Kar

Antal Gábor 19

Page 20: Programozás I

Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Antal Gábor 20Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Antal 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 Kar

Antal Gábor 20

Page 21: Programozás I

Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Antal Gábor 21Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Antal Gábor

UML Osztálydiagram példa

Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Antal Gábor 21

Page 22: Programozás I

Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Antal Gábor 22Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Antal Gábor

UML Osztálydiagram példa

Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Antal Gábor 22

Page 23: Programozás I

Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Antal Gábor 23Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Antal 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 Kar

Antal Gábor 23

Page 24: Programozás I

Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Antal Gábor 24Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Antal Gábor

UML Eszközök

• ArgoUML:– http://argouml.tigris.org/

• BOUML:– http://www.bouml.fr/

• yEd– http://www.yworks.com/en/

products_yed_about.html

• UML Eszközök listája:– http://en.wikipedia.org/wiki/List_of_UML_tools

Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Antal Gábor 24

Page 25: Programozás I

Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Antal Gábor 25Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Antal 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 Kar

Antal Gábor 25