IMPERATÍV PROGRAMOZÁS Bánsághi Anna anna.bansaghi@mamikon.net 9. ELŐADÁS - OOP TERVEZÉS 2014 Bánsághi Anna 1 of 31
TEMATIKA I. ALAPFOGALMAK, TUDOMÁNYTÖRTÉNET II. IMPERATÍV PROGRAMOZÁS Imperatív paradigma Procedurális paradigma Generikus paradigma III. STRUKTÚRÁLT PROGRAMOZÁS Objektumorientált paradigma Moduláris paradigma 2014 Bánsághi Anna 2 of 31
III. STRUKTÚRÁLT PROGRAMOZÁS OBJEKTUMORIENTÁLT PARADIGMA 1. Absztrakt adattípus 2. Objektumok, osztályok 3. OOP tervezés UML alapok Utazási iroda példa 4. Öröklődés 5. Adatszerkezetek megvalósítása 2014 Bánsághi Anna 3 of 31
1. MODELLEZÉS a program szerkezetének és működésének tervezése az osztályok és objektumok szempontjából történik statikus tervezés a szerkezeti tervezésnél az osztályok tagjait, az osztályok / objektumok közötti kapcsolatokat adjuk meg dinamikus tervezés a programfutási tervezésnél az objektumok időbeli viselkedését, az állapotváltozásokat modellezzük az OOP tervezés eszköze a Unified Modeling Language (UML), amelyben 13 diagramtípus segítségével tervezhető meg a program szerkezete és működése 2014 Bánsághi Anna 4 of 31
UML szabványos módon lehet rendszerek terveit elkészíteni alkalmas üzleti folyamatok, programfunkciók és adatbázis-sémák leírására a modellek automatikusan kódba fejthetők, tehát tetszőleges objektumorientált nyelvre átültethetők a nyelv kiterjeszthető, és lehetőséget ad a testreszabásra a nyelv leginkább a diagramok keretében mutatkozik meg 2014 Bánsághi Anna 5 of 31
UML MODELLEK funkcionális modell a szoftver funkcionális követelményeit adja meg és a felhasználóval való interaktivitást (használati esetek diagramja, kihelyezési diagram) szerkezeti modell a program felépítését adja meg, milyen osztályok, objektumok, relációk alkotják a programot (osztálydiagram, objektumdiagram) dinamikus modell a program működésének lefolyását, az objektumok együttműködésének módját ábrázolja (állapotdiagram, szekvenciadiagram) 2014 Bánsághi Anna 6 of 31
UML DIAGRAMOK 2014 Bánsághi Anna 7 of 31
TERVEZÉS DIAGRAMOKKAL a fejlesztés különböző szakaszaiban az UML különböző diagramjait alkalmazzuk elemzés tervezés statikus használati esetek, komponens, telepítési csomag, osztály, objektum, komponens dinamikus állapot, szekvencia, aktivációs, interakciós áttekintési, kommunikációs tesztelés időzítés a fejlesztés iterációiban a korábban létrehozott diagramok újra alkalmazhatóak, tovább finomíthatóak 2014 Bánsághi Anna 8 of 31
OBJEKTUMDIAGRAM a rendszerben megjelenő objektumokat, azok adatait és kapcsolatait leíró diagram az objektumnak megadjuk a nevét, a típusát, valamint adatainak pillanatnyi értékét több objektumdiagram is létezhet attól függően, hogy a rendszer mely állapotát jelenítik meg 2014 Bánsághi Anna 9 of 31
OBJEKTUMDIAGRAM - ŰRTELESZKÓP 2014 Bánsághi Anna 10 of 31
KOMMUNIKÁCIÓS DIAGRAM a rendszerben megjelenő objektumok közötti kommunikációt leíró diagram több kommunikációs diagram is létezhet attól függően, hogy milyen objektumokat adunk meg megadja az üzenetfolyamot reprezentáló metódusokat és az üzenetek típusát 2014 Bánsághi Anna 11 of 31
KOMMUNIKÁCIÓS DIAGRAM - ŰRTELESZKÓP 2014 Bánsághi Anna 12 of 31
SZEKVENCIA DIAGRAM a rendszerben folyó történések logikáját leíró diagram több szekvencia diagram is létezhet attól függően, hogy milyen objektumokat adunk meg megadja az üzenetfolyamban résztvevő metódusok sorrendjét 2014 Bánsághi Anna 13 of 31
SZEKVENCIA DIAGRAM - ŰRTELESZKÓP 2014 Bánsághi Anna 14 of 31
OSZTÁLYDIAGRAM a rendszerben szereplő osztályok szerkezetét és az objektumok közötti kommunikációval meghatározott kapcsolatokat definiálja az osztálynak megadjuk a nevét, valamint tagjainak halmazát (típusokkal, paraméterekkel) megadjuk a tagok láthatóságát látható ( + ), illetve rejtett ( - ) jelölésekkel megadjuk a kapcsolatok típusát és multiplicitását 2014 Bánsághi Anna 15 of 31
OSZTÁLYOK KÖZÖTTI KAPCSOLATOK asszociáció egyszerű kommunikáció, az osztály meghívja más osztály nyilvános metódusát, vagy hivatkozik rá műveleteiben paraméterként vagy visszatérési értékként aggregáció egyik osztály példányai referencián keresztül hivatkoznak egy másik osztály példányaira kompozíció egyik osztály példányai fizikailag (értékként) tartalmazzák egy másik osztály példányait öröklődés egyik osztály (leszármazott) örökli a másik osztály (ős) tagjait 2014 Bánsághi Anna 16 of 31
OSZTÁLYDIAGRAM - ŰRTELESZKÓP 2014 Bánsághi Anna 17 of 31
2. UTAZÁSI IRODA PÉLDA Szimuláljuk egy utazási iroda repülőjáratokra történő jegyeladásait. A repülőtér meghirdeti járatait a férőhelyekkel és a szabad helyekkel. Minden járat kibocsátja a maga jegyeit. Az utazási irodák rendelhetnek a repülőtértől tetszőleges számú jegyet a járatokra, amely sikeres, ha van annyi jegy, és sikertelen, ha nincs legalább annyi jegy. A vásárlók jegyet vehetnek valamely utazási irodánál valamely járatra, mely sikeres, hogyha az adott utazási irodánál ott a jegy. 2014 Bánsághi Anna 18 of 31
főnevek igék A FELADAT ELEMZÉSE repülőtér, járat (férőhely, szabad hely), jegy, utazási iroda, vásárló meghirdet, kibocsát, rendel, vesz repülőtér meghirdet járatokat járat kibocsát jegyeket utazási iroda rendel jegyeket repülőtértől, járatra vásárló vesz jegyet utazási irodánál járatra 2014 Bánsághi Anna 19 of 31
OBJEKTUMDIAGRAM 2014 Bánsághi Anna 20 of 31
KOMMUNIKÁCIÓS DIAGRAM 2014 Bánsághi Anna 21 of 31
SZEKVENCIA DIAGRAM 2014 Bánsághi Anna 22 of 31
OSZTÁLYDIAGRAM 2014 Bánsághi Anna 23 of 31
REPÜLŐTÉR OSZTÁLY 2014 Bánsághi Anna 24 of 31
JÁRAT OSZTÁLY 2014 Bánsághi Anna 25 of 31
JEGY OSZTÁLY 2014 Bánsághi Anna 26 of 31
UTAZÁSI IRODA OSZTÁLY 2014 Bánsághi Anna 27 of 31
VÁSÁRLÓ OSZTÁLY 2014 Bánsághi Anna 28 of 31
MÁSODIK BEADANDÓ FELADATCSOPORT C# Fundamentals for Absolute Beginners channel9.msdn.com/series/c-fundamentals-for-absolute-beginners Mod 11: alprogramok Mod 13: karakterláncok Mod 14: dátumok Mod 15: osztályok I. Mod 16: osztályok II. Mod 18: névterek Mod 19: láthatóság Mod 20: sorozatok, switch Mod 22: iterált típusok 2014 Bánsághi Anna 29 of 31
KIKÖTŐ Kint lesz a honlapon 2014 Bánsághi Anna 30 of 31
BEADÁS FORMAI KÖVETELMÉNYEI Hallgató_Neve_2.zip mod_11.cs mod_13.cs mod_14.cs mod_15.cs mod_16.cs mod_18.cs mod_19.cs mod_20.cs mod_22.cs kikoto nevű könyvtár 2014 Bánsághi Anna 31 of 31