Programozás I. 2. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar



Hasonló dokumentumok
Programozás 1. 2.gyakorlat

Előzmények

Java VI. Egy kis kitérő: az UML. Osztály diagram. Általános Informatikai Tanszék Utolsó módosítás:

Tartalom Kontextus modellek Viselkedési modellek Adat-modellek Objektum-modellek CASE munkapadok (workbench)

Ismeretanyag Záróvizsgára való felkészüléshez

Modellalkotás UML-ben

Programozási technikák Pál László. Sapientia EMTE, Csíkszereda, 2009/2010

Objektum Orientált Szoftverfejlesztés (jegyzet)

C++ programozási nyelv

Bánsághi Anna 1 of 67

JAVA PROGRAMOZÁS 3.ELŐADÁS

A TANTÁRGY ADATLAPJA

Programozás III CSOMAGOK. Az összetartozó osztályok és interfészek egy csomagba (package) kerülnek.

DEBRECENI EGYETEM INFORMATIKAI KAR. Az UML gyakorlati alkalmazásának bemutatása az AutoWorld rendszer tervezésén keresztül

Models are not right or wrong; they are more or less useful.

OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN. vizsgatételek

A SZOFTVERTECHNOLÓGIA ALAPJAI

Nyílt hozzáférésű informatikai rendszerek BME VIMM 5294

Borkereskedő. Dokumentáció a Programozási módszertan elmélete című tárgy beadandó programjához. Magyar Attila mattila@inf.elte.hu

Bánsághi Anna 2014 Bánsághi Anna 1 of 31

rendszerszemlélető, adatközpontú funkcionális

Informatika szigorlati témakörök gazdasági informatika egyetemi képzés hallgatói részére

Programozási Technológia előadás bevezetés. Előadó: Lengyel Zsolt

Tartalomjegyzék. Bevezetés...2

Java VI. Miskolci Egyetem Általános Informatikai Tanszék. Utolsó módosítás: Ficsor Lajos. Java VI.: Öröklődés JAVA6 / 1

UML (Unified Modelling Language)

A követelmények leírása

Objektum orientált alapelvek

Szoftverprototípus készítése. Szoftverprototípus készítése. Szoftverprototípus készítése

ADATBÁZIS ALAPÚ RENDSZEREK

Informatika szigorlati témakörök gazdasági informatika egyetemi képzés hallgatói részére

Bevezetés a Programozásba II 5. előadás. Objektumorientált programozás és tervezés

Fogalmi modellezés. Ontológiák Alkalmazott modellező módszertan (UML)

1.sz melléklet Nyári gyakorlat teljesítésének igazolása Hiányzások

Az élet szép, környezetünk tele van fákkal, virágokkal, repdeső madarakkal, vidáman futkározó állatokkal.

C++ programozási nyelv

Adatbázis rendszerek I

Programozás I. 1. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

DIPLOMAMUNKA KOVÁCS BALÁZS DEBRECEN

Adatstruktúrák, algoritmusok, objektumok

Programozás II. ATM példa Dr. Iványi Péter

Metamodellezés. Simon Balázs BME IIT, 2011.

Karbantartás. Az ESZR Karbantartás menüjébentudjuk elvégezni az alábbiakat:

Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda IRT 6. kurzus

Szoftvertechnológia. Feladatgyűjtemény. Eötvös Loránd Tudományegyetem Informatikai Kar Programozáselmélet és Szoftvertechnológiai Tanszék

OBJEKTUMORIENTÁLT TERVEZÉS ESETTANULMÁNYOK. 2.1 A feladat

SSADM. Az SSADM (Structured System Analysis and Desing Method) egy rendszerelemzési módszertan.

Bevezetés. Dr. Szendrei Rudolf Informatikai Kar Eötvös Loránd Tudományegyetem. Programozási technológia I. Dr. Szendrei Rudolf. Információk.

A TANTÁRGY ADATLAPJA

Programozás II. 2. gyakorlat Áttérés C-ről C++-ra

Karbantartás. Az ESZR Karbantartás menüjébentudjuk elvégezni az alábbiakat:

A hierarchikus adatbázis struktúra jellemzői

A TÉRINFORMATIKA OKTATÁSA ÉS ALKALMAZÁSI LEHETÕSÉGEI

4. Öröklődés. Programozás II

Adatstruktúrák Algoritmusok Objektumok

Programozás I. Első ZH segédlet

Térinformatika 2. A valós világ modellezésének folyamata Végső, Ferenc

Java és web programozás

A második, azaz az utolsó előtti félév az esslingeni masteren

Összefüggő szakmai gyakorlat témakörei. 13 évfolyam. Információtechnológiai gyakorlat 50 óra

Programozás alapjai II. (9. ea) C++ többszörös öröklés, cast, perzisztencia

Programozás III KIINDULÁS. Különböző sportoló típusok vannak: futó, magasugró, focista, akik teljesítményét más-más módon határozzuk meg.

Származtatási mechanizmus a C++ nyelvben

OAF Gregorics Tibor: Minta dokumentáció a 3. házi feladathoz 1.

Programozás I. 5. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Minőségérték. A modellezés céljának meghat. Rendszer elemzés. Módszer kiválasztása. Modell megfelelőség elemzés. Működés szimuláció

Az UML2 és a modell-vezérelt alkalmazásfejlesztés

Komplex záróvizsga témakörök Gazdaságinformatikus szak Pénzintézeti informatikus szakirány 2018

A C++ öröklés. (Előfeltétel: 12. tétel ismerete)

Szkeleton tervezése. 100 Generalis faliora. Csapattagok: Konzulens: Szabó András március 21.

Magas szintű programozási nyelvek 2 Előadás jegyzet

Modellinformációk szabványos cseréje. Papp Ágnes, Debreceni Egyetem EFK

KINDERGARTEN. 46 InFoka. Dady Róbert. Csapattagok: Konzulens:

LÉTESÍTMÉNYGAZDÁLKODÁS. Változáskezelés. Változás Pont Cím Oldal A teljes dokumentáció átírásra került

Csak felvételi vizsga: csak záróvizsga: közös vizsga: Mérnökinformatikus szak BME Villamosmérnöki és Informatikai Kar május 27.

Analízis modell kidolgozása I.

Contents. 1 Bevezetés 11

TERMÉK FEJLESZTÉS PANDUR BÉLA TERMÉK TERVEZÉSE

Modellek végrehajtása, kódgenerálás

Programozás III. - NGB_IN001_3

Programozási nyelvek Java

Java programozási nyelv 5. rész Osztályok III.

Animációk, effektusok

Szálkezelés. Melyik az a hívás, amelynek megtörténtekor már biztosak lehetünk a deadlock kialakulásában?

A TANTÁRGY ADATLAPJA

Bevezetés. Szendrei Rudolf Informatikai Kar Eötvös Loránd Tudományegyetem. Programozási technológia I. Szendrei Rudolf. Bevezetés. Szoftvertechnológia

I. Objektumorientált programozás

Magas szintű adatmodellek Egyed/kapcsolat modell I.

Adatbázisok az iskolában 2012 Adatmodellezés. Dr. Balázs Péter

A Microsoft Visual Studio 2005 fejlesztőkörnyezet

Infokommunikáció (PF10IK511L) kérdései

5. Előadás tartalma Magas szintű adatbázismodellek Adatmodellezés

10. évfolyam 105 óra azonosító számú Hálózatok, programozás és adatbázis-kezelés 105 óra Adatbázis- és szoftverfejlesztés gyakorlat tantárgy

TERMÉKTERVEZÉS PANDUR BÉLA TERMÉKTERVEZÉS

Adatbázisok I Adatmodellek komponensei. Adatbázis modellek típusai. Adatbázisrendszer-specifikus tervezés

Összefüggő szakmai gyakorlat témakörei évfolyam. 9. évfolyam

XML sémanyelvek Jeszenszky, Péter

Java programozási nyelv 8. rész Grafikus felhasználói felület

Átírás:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Aggregáció Rész-egész kapcsolat Az egyik objektum fizikailag tartalmazza a másikat A rész-objektum(ok) léte az egészobjektumtó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

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

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

Ö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

Ö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

Öröklődés Általánosítás, Általánosítás Specializáció 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

UML Osztálydiagram példa Szegedi Tudományegyetem Természettudományi és Informatikai Kar Antal Gábor 21

UML Osztálydiagram példa Szegedi Tudományegyetem Természettudományi és Informatikai Kar Antal Gábor 22

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

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 Kar Antal Gábor 24

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