programozás i

Post on 14-Jan-2016

58 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

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

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

Antal Gábor

Programozás I.

2. gyakorlat

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

top related