Java Angster Erzsébet: OO tervezés és programozás, Java I. kötet alapján Készítette: Andor Gergely és Angster Erzsébet Ellenőrizte: Dr. Szelezsán János.

Slides:



Advertisements
Hasonló előadás

Advertisements

„Esélyteremtés és értékalakulás” Konferencia Megyeháza Kaposvár, 2009
Programozási feladatok
Összefoglalás Hardver,szoftver,perifériák Memóriák fajtái
Algoritmusok.
Hatékonyságvizsgálat, dokumentálás
Erőállóképesség mérése Találjanak teszteket az irodalomban
Rendszerfejlesztés.
Az integrált áramkörök (IC-k) tervezése
Humánkineziológia szak
Algoritmus és programozás
3. A programozás eszközei, programozás-technikai alapismeretek
Koordináta transzformációk
Budapesti Műszaki és Gazdaságtudományi Egyetem Elektronikus Eszközök Tanszéke A programozás alapjai 1. (VIEEA100) 9. előadás.
Programozás alapjai A programozás azt a folyamatot jelenti, melynek során a feladatot a számítógép számára érthető formában írjuk le. C++, Delphi, Java,
JavaScript.
Programozás alapjai.
OBJEKTUMORIENTÁLT PROGRAM
Bevezetés a Java programozásba
Mérés és adatgyűjtés laboratóriumi gyakorlat Karakterisztikák mérése 1 Makan Gergely, Mingesz Róbert, Nagy Tamás V
Követelmények Bevezetés a Javába Első java program írása Dokumentációk
Algoritmizálás Göncziné Kapros Katalin humaninformatika.ektf.hu.
Java programozási nyelv 2. rész – Vezérlő szerkezetek
Algoritmusok Tusnádi István
Fordítóprogramok FORD01 Programozó matematikus III. évf. Miskolci Egyetem 1 Fordítóprogramok 1 Programozó matematikus szak 2003/2004-es tanév II. félév.
Szerkezeti elemek teherbírásvizsgálata összetett terhelés esetén:
ISZAM III.évf. részére Bunkóczi László
WEB MES (webes gyártásirányító rendszer) Kiss Miklós (G-5S8)
DRAGON BALL GT dbzgtlink féle változat! Illesztett, ráégetett, sárga felirattal! Japan és Angol Navigáláshoz használd a bal oldali léptető elemeket ! Verzio.
PHP I. Alapok. Mi a PHP? PHP Hypertext Preprocessor Szkriptnyelv –Egyszerű, gyors fejlesztés –Nincs fordítás (csak értelmező) Alkalmazási lehetőségek:
Programozás Az adatokról C# -ban.
szakmérnök hallgatók számára
Programtesztelés. Hibák keletkezésének okai nem egyértelmű vagy hiányos kommunikáció fejlesztés közben maga a szoftver bonyolultsága programozói (kódolási)
Programozási nyelvek, Pascal
1.4. Fordítás, szerkesztés, az objektumkönyvtár használata.
Programozási nyelvek.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
Csurik Magda Országos Tisztifőorvosi Hivatal
A klinikai transzfúziós tevékenység Ápolás szakmai ellenőrzése
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 1. gyakorlat.
QualcoDuna interkalibráció Talaj- és levegövizsgálati körmérések évi értékelése (2007.) Dr. Biliczkiné Gaál Piroska VITUKI Kht. Minőségbiztosítási és Ellenőrzési.
Programozás. Programozási nyelvek: Gépi nyelv A számítástechnika őskorában egyedüli lehetőség volt a gép bitsorozattal való programozása. Minden processzor.
Algoritmusok.
A szoftver, szoftvertípusok
Objektum orientált programozás
Virtuális Méréstechnika Sub-VI és grafikonok 1 Makan Gergely, Vadai Gergely v
Mérés és adatgyűjtés laboratóriumi gyakorlat - levelező Sub-VI és grafikonok 1 Mingesz Róbert V
Adamkó Attila UML2 Adamkó Attila
A Visual Basic nyelvi elemei
Szoftver születik Eötvös Konferencia Köllő Hanna.
Programozás, programtervezés
Algoritmizálás, adatmodellezés
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 1. gyakorlat.
Gyurkó György. Az OO programozás és tervezés története 1960-as évek: SIMULA (véletlen folyamatokat szimuláló programok írása) az OO nyelvek őse 1970-es.
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 1. gyakorlat.
Adatszerkezetek és algoritmusok 2008/ Algoritmus Az algoritmus szó eredete a középkori arab matematikáig nyúlik vissza, egy a i.sz. IX. században.
kialakulása, fejlődése, generációk
Programok készítése és futtatása. Integrált fejlesztői környezet (IDE) tartalmaz:  szövegszerkesztőt a program forráskódjának szerkesztésére,  fordítóprogramot.
Adatstruktúrák Algoritmusok Objektumok
Programozási nyelvek Programozási alapismeretek
Algoritmusok Tusnádi István
Programozási alapok.
Compiler illetve interpreter nyelvek
Algoritmizálás.
Beépített függvények használata programozáskor
Bevezetés a programozásba Algoritmikus gondolkodás
Számítógépes algoritmusok
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
Algoritmus készítés.
Előadás másolata:

Java Angster Erzsébet: OO tervezés és programozás, Java I. kötet alapján Készítette: Andor Gergely és Angster Erzsébet Ellenőrizte: Dr. Szelezsán János Jóváhagyta: Lengyel Zsuzsánna Köszöntő Szeretettel köszöntöm Önt, kedves hallgató ott a képernyő túloldalán. Angster Erzsébet vagyok, a Programozás tantárgy vezető tanára. Azzal az elhatározással ültem ide erre az oldalra, hogy segítsek Önnek, sőt megpróbáljak kedvet csinálni tanulmányaihoz, apró programjai elkészítéséhez. Önnek tisztában kell lennie azzal, hogy ez a tárgy nem a magolós tárgyak közé tartozik, a tananyag elsajátításához hónapokra van szükség. E tárgy tanulása során kialakul majd egyfajta gondolkodás, melyhez feltétlenül gyakorlási és érési időre van szükség. Hogy mennyi időre, az természetesen az egyéntől is függ. Van, aki most lát életében először programot, van, aki már komolyabb rutinra tett szert. Van, aki lassabban, de alaposabban tanul, mások gyorsabban, de felületesebben. Én a kettő közül feltétlenül az előbbit választanám. (Itt jön be az első kép) A tananyag mintegy 20 fejezetből áll, úgy, ahogy a tankönyvben is. Minden fejezet elején látni fogja, hogy pontosan hol tart az anyagban. Ajánlatos az egyes fejezetek végén egy kicsit elidőzni, a tankönyv kérdéseire válaszolni, valamint néhány feladatot megoldani.

I. Bevezetés a programozásba II. Objektumorientált paradigma Java I. Bevezetés a programozásba II. Objektumorientált paradigma III. Java környezet IV. Java programozási alapok V. Osztályok használata, készítése VI. Konténerek Köszöntő Szeretettel köszöntöm Önt, kedves hallgató ott a képernyő túloldalán. Angster Erzsébet vagyok, a Programozás tantárgy vezető tanára. Azzal az elhatározással ültem ide erre az oldalra, hogy segítsek Önnek, sőt megpróbáljak kedvet csinálni tanulmányaihoz, apró programjai elkészítéséhez. Önnek tisztában kell lennie azzal, hogy ez a tárgy nem a magolós tárgyak közé tartozik, a tananyag elsajátításához hónapokra van szükség. E tárgy tanulása során kialakul majd egyfajta gondolkodás, melyhez feltétlenül gyakorlási és érési időre van szükség. Hogy mennyi időre, az természetesen az egyéntől is függ. Van, aki most lát életében először programot, van, aki már komolyabb rutinra tett szert. Van, aki lassabban, de alaposabban tanul, mások gyorsabban, de felületesebben. Én a kettő közül feltétlenül az előbbit választanám. (Itt jön be az első kép) A tananyag mintegy 20 fejezetből áll, úgy, ahogy a tankönyvben is. Minden fejezet elején látni fogja, hogy pontosan hol tart az anyagban. Ajánlatos az egyes fejezetek végén egy kicsit elidőzni, a tankönyv kérdéseire válaszolni, valamint néhány feladatot megoldani.

I. Bevezetés a programozásba 1. A számítógép és a szoftver 2. Adat, algoritmus 3. A szoftver fejlesztése Köszöntő Szeretettel köszöntöm Önt, kedves hallgató ott a képernyő túloldalán. Angster Erzsébet vagyok, a Programozás tantárgy vezető tanára. Azzal az elhatározással ültem ide erre az oldalra, hogy segítsek Önnek, sőt megpróbáljak kedvet csinálni tanulmányaihoz, apró programjai elkészítéséhez. Önnek tisztában kell lennie azzal, hogy ez a tárgy nem a magolós tárgyak közé tartozik, a tananyag elsajátításához hónapokra van szükség. E tárgy tanulása során kialakul majd egyfajta gondolkodás, melyhez feltétlenül gyakorlási és érési időre van szükség. Hogy mennyi időre, az természetesen az egyéntől is függ. Van, aki most lát életében először programot, van, aki már komolyabb rutinra tett szert. Van, aki lassabban, de alaposabban tanul, mások gyorsabban, de felületesebben. Én a kettő közül feltétlenül az előbbit választanám. (Itt jön be az első kép) A tananyag mintegy 20 fejezetből áll, úgy, ahogy a tankönyvben is. Minden fejezet elején látni fogja, hogy pontosan hol tart az anyagban. Ajánlatos az egyes fejezetek végén egy kicsit elidőzni, a tankönyv kérdéseire válaszolni, valamint néhány feladatot megoldani.

I. Bevezetés a programozásba 1. A számítógép és a szoftver 1. Objektum, adat, program 2. Programozási nyelv 3. A program szerkesztése, fordítása, futtatása 4. A szoftverek osztályozása 5. Szoftverkrízis 6. A szoftver minőségének jellemzői 7. Moduláris programozás 8. Módszertanok

A számítógép részei

Objektum A valós világban előforduló dolog, melynek vannak adatai (tulajdonságai) és van viselkedésmódja. Program Számítógép számára érthető instrukciók sorozata, mely az adatok megfelelő számításaival és mozgatásaival egy feladat megoldását célozza. Szoftver Egy számítógépes rendszer meg nem fogható, nem fizikai összetevői.

A programozó és a számítógép közötti kommunikációs nyelv Programozási nyelv Emberi nyelv Programozási nyelv { int a = 7 ; a = a * 5 ; } Forráskód Gépi nyelv 00971CDF 0000F3F1 Gépi kód „Szorozd meg a 7-et 5-tel!” A programozó és a számítógép közötti kommunikációs nyelv

Gépi kód (natív kód, tárgykód) LDA $05 ADC $20 $05 HLT Assembly nyelv Mnemonik LDA ADC Gépi kód (natív kód, tárgykód) $02 $05 $10 $20 $05 $01 $02 $05 Töltsd az akkumulátorba az 5-öt $10 $20 Add össze és tedd az akkumulátorba a $20 címen levő értéket és az 5-öt! $01 Állj meg! Utasításkód: Paraméterek:

A $20 címen levő byte-ot szorozzuk meg 5-tel! Adatok Memória: $00 $23 $07 $03 $0E $07 $02 $15 $07 $01 $1C $07 $00 $23 $07 $04 $07 $05 $07 $00 $07 $05 $07 $00 $05 $07 $05 $00 Akkumulátor: A program belépési pontja: $22

Alacsony szintű nyelv (Assembly nyelv) (Mnemonikok, címek) Magas szintű nyelv (Java) (Változók, magas szintű utasítások) JMP BELEP A: BYTE 7 I: BYTE 0 BELEP: LDA 5 STA I LDA 0 UJRA: ADD A DEC I JNZ UJRA STA A HLT { int a = 7 ; a = a * 5 ; }

Programozás fordító-szerkesztő környezetben A programkészítés folyamata Programozás fordító-szerkesztő környezetben Forrásprogram (forráskód) megírása Fordítás Szerkesztés Futtatás

Program fordítása Fordító program Fordítási hibák Forrásprogram Error 109:Variable Error 133:Too much Fordítási hibák Var A: Byte ; Begin ... A:= A*5 ; ... End. Forrásprogram Fordító program 00011101 11001110 00001111 01010101 00111000 11111111 ... Tárgykód vagy

Program szerkesztése Szerkesztő program 1. Tárgykód Szerkesztési hibák 00011101 11001110 00001111 01010101 00111000 11111111 ... 1. Tárgykód Error 500... Szerkesztési hibák Szerkesztő program 11001110 00001111 01011101 00111000 00011101 10110111 ... 2. Tárgykód 00011101 11001110 00001111 01010101 00111000 11111111 ... Futtatható program vagy

Program futása Futó program Adatok Adatok Futási hibák Átlag: 6 10 6 2 00011101 11001110 00001111 01010101 00111000 11111111 … Futási hibák vagy

Programozás Java környezetben Forrásprogram (forráskód) megírása Forráskód lefordítása bájtkódra (javac.exe) JVM (Java Virtual Machine, java.exe) Modulok összeszerkesztése (linker) Bájtkód értelmezése, fordítása, futtatása lépésenként (interpreter)

Bájtkód A magas szintű forráskód és a gépi kód közötti gépfüggetlen közbenső kód. Fordító (Compiler) Egy program, mely a teljes forrásprogramot gépi kódra, illetve közbenső bájtkódra alakítja. Értelmező (Interpreter) Egy program, mely a forrásprogramot vagy a bájtkódot utasításonként értelmezi, fordítja le, és hajtja végre.

Java program fordítása … int a = 7 ; a = a * 5 ; … Forráskód (App.java) javac.exe Fordítóprogram App.java : 7 : Class int not found Fordítási hibák 00971CDF 0000F3F1 Bájtkód (App.class) vagy

Bájtkód futtatása interpreterrel 00971CDF 0000F3F1 Bájtkód (App.class) Memória a … … ... 7 35 00971CDF 0000F3F1

Szoftverkrízis (1968) Igények, követelmények egyre nagyobbak szabványosítás felhasználóbarátság elronthatatlanság gyors elkészítés karbantarthatóság minél alacsonyabb költségek A programok, programrendszerek egyre bonyolultabbak, áttekinthetetlenek

Paradigmaváltás: strukturált  OO A programot olyan egységekre kell bontani, melyek egymástól minél kevésbé függenek áttekinthetőek karbantarthatóak Adat Művelet Modul1 Modul2 Paradigmaváltás: strukturált  OO

A minőségi szoftver jellemzői Helyesség Hibatűrés Karbantarthatóság, bővíthetőség Újrafelhasználhatóság Kompatibilitás Felhasználóbarátság Hordozhatóság Hatékonyság Ellenőrizhetőség Integritás (sérthetetlenség) Szabványosság

Moduláris programozás Irányelvek: Oszd meg és uralkodj! Adatok (információ) elrejtése Döntések elhalasztása Döntések kimondása Tervezési irányzatok (modulokra bontás irányai): Felülről lefelé tervezés (top-down) Alulról felfelé tervezés (bottom-up)

Módszertan Programfejlesztési (szoftverfejlesztési) módszertan Hogyan készítsük el a szoftvert? Adatok (objektumok) és algoritmusok meghatározása Modulokra bontás; modulok elkészítése és összerakása Például: strukturált, objektumorientált (Egységesített Eljárás, Unified Process)

Módszertan (folyt.) Grafikus jelölésrendszer (modellező nyelv) Például: UML (Unified Modeling Language, Egységesített Modellező Nyelv) CASE eszköz Például: Rational Rose

I. Bevezetés a programozásba 2. Adat, algoritmus 1. Az algoritmus fogalma 2. Változó, típus 3. Tevékenységdiagram 4. Pszeudokód 5. Az algoritmus tulajdonságai

Algoritmus Algoritmus: Utasításoknak olyan sorozata, amely egy feladat megoldásához vezet Program: Egy számítógép által érthető algoritmus Vezérlőszerkezetek: szekvencia szelekció (elágazás) iteráció (ciklus) feltétel nélküli ugrás Strukturált algoritmus alapelemei

Feladatspecifikáció Hannibál tanár úr azt kapja feladatul: határozza meg a legfiatalabb lánytanulót az osztályában. Meg kell adnia a kérdéses lány nevét és születési dátumát.

Változó Névvel azonosított memóriaterület, melynek változhat az értéke Például: aktTanuló Szív Zsazsa true 1976 02 01 év:number név:String lány:boolean nap:number hó:number szülDátum:Date aktTanuló:Tanuló

Típus Minden változónak van egy jól meghatározott típusa! Gyakori típusok: number (szám). Például: 45, -1.2 . boolean (logikai), értéke true vagy false. String (szöveg). Például: “Szív Zsazsa”. Date (dátum), összetett típus, 3 számból áll: év, hó, nap. Például (1976,02,01). Értékadás (=) Például: aktTanuló.név = “Szív Zsazsa”

[legTanulo.szülDatum != (1900,01,01)] Tevékenységdiagram legTanulo.szülDatum = (1900,01,01) Adatok: aktTanuló: Tanuló legTanuló: Tanuló in: aktTanuló [sikerült] [else] [aktTanuló.lány & aktTanuló.szülDátum > legTanuló.szülDátum] Ha ő lány és fiatalabb, akkor megjegyezzük [else] legTanuló = aktTanuló in: aktTanuló [legTanulo.szülDatum != (1900,01,01)] [else] out: legTanuló.név, legTanuló.szülDátum out: "Nincs lány"

Pszeudokód Adatok eljárás kiir(tanulo: Tanuló) aktTanuló: Tanuló legTanuló: Tanuló Algoritmus kiir(tanulo: Tanuló) out: tanuló.név, tanuló.szülDátum.év, tanuló.szülDátum.hó, tanuló.szülDátum.nap end kiir eljárás

későbbi(dátum1:Date, dátum2:Date): boolean ok : boolean = false if (dátum1.év>dátum2.év) ok = true else if (dátum1.év==dátum2.év) & (dátum1.hó>dátum2.hó) else if (dátum1.év==dátum2.év) & (dátum1.hó==dátum2.hó) & (dátum1.nap>dátum2.nap) end if return ok end későbbi függvény

legfiatalabbLány() legTanuló.szülDátum = (1900,01,01) in: aktTanuló while sikerült if (aktTanuló.lány & későbbi(aktTanuló.szülDátum, legTanuló.szülDátum)) legTanulo = aktTanulo end if in: aktTanulo end while fő algoritmus

if legTanulo.szulDatum != (1900,01,01) out: "Legfiatalabb lány:" kiir(legTanuló) else out: "Nincs lány" end if end legfiatalabbLány

Az algoritmus tulajdonságai Lépésekből (elemi tevékenységekből, utasításokból) áll Minden lépés egyértelműen végrehajtható Hivatkozhatunk benne összetett lépésekre is A végrehajtandó utasításoknak valamilyen célja van Véges számú lépésből áll Adatokon manipulál általában vannak bemenő (input) adatai legalább egy kimenő (output) adatot eredményez

I. Bevezetés a programozásba 3. A szoftver fejlesztése 1. A szoftverfejlesztés alkotómunka 2. Az Egységesített Eljárás 3. Követelményfeltárás 4. Analízis 5. Tervezés 6. Implementálás (kódolás) 7. Tesztelés 8. Dokumentálás

A szoftver fejlesztése UML (Unified Modeling Language, Egységesített Modellező Nyelv): Grafikus jelölésrendszer a szoftver különböző nézeteinek modellezésére Egységesített Eljárás (Unified Process): Módszertan a fejlesztés módjára vonatkozóan Java: Magas szintű programnyelv programjaink implementálásához

Egységesített Eljárás OMT + Booch + OOSE módszerek egységesítése Fogalmak felhasználó, megrendelő, szoftverfejlesztő aktor: aki vagy ami a rendszert használja használati eset: a használatnak egy értelmes, kerek egysége Főbb jellemzői Használatieset-vezérelt Architektúra központú Iteratív és inkrementális (növekvő)

A szoftver élete A szoftver élete fejlesztési ciklusokból áll Minden fejlesztési ciklus végén a szoftverfejlesztő átad a megrendelőnek egy szoftver verziót Fejlesztési ciklus Fejlesztési ciklus … Idő A kész verzió átadása

Fejlesztési ciklus Munkafázisok Iterációk Követelményfeltárás Analízis . # 1 2 n + m Követelményfeltárás Főbb munkafolyamatok Analízis Tervezés Implementáció Teszt Munkafázisok Felmérés Kidolgozás Konstrukció Átadás Előkészítő Iterációk Egy iteráció a kidolgozás fázisban

Munkafázisok Felmérés (Inception) feladat elképzelése, feltérképezése Kidolgozás (Elaboration) rendszer architektúrájának kialakítása Konstrukció (Construction) főleg tervezés és kódolás eredménye: a rendszer béta verziója Átadás (Transition) a felhasználó kipróbálja a rendszert, jelzi a feljesztőnek a hibákat és a további igényeket

Főbb munkafolyamatok Követelményfeltárás követelmények összegyűjtése dokumentációja: követelményspecifikáció (feladatspecifikáció) Analízis megoldhatóság, erőforrásigény feltérképezése a feladat elemzése, pontosítása irányvonalak, nagyvonalú tervek megadása megoldási eszközök, módszerek kiválasztása dokumentációja: szakterületi objektummodell és a használati esetek

Főbb munkafolyamatok (folyt.) Tervezés a feladat lényegi megoldása dokumentációja: programterv Implementálás kódolás a programterv alapján dokumentációja: forráskód Tesztelés a program működésének ellenőrzése tudatosan összeállított tesztadatokkal dokumentációja: kész program és a tesztadatok

Tesztelés Tesztelési módszerek éles tesztelés (futtatás) szárazteszt (fejben futtatás) Hibafajták szintaktikai (formai) hiba: forráskódrészlet, melyet a fordító nem tud értelmezni szemantikai (logikai, tartalmi) hiba: a program nem logikusan vagy nem a leírás szerint működik

Dokumentálás Fejlesztői dokumentáció fejlesztőknek szól a fejlesztés szakaszainak eredményeit tartalmazza Felhasználói dokumentáció felhasználóknak szól útmutató a szoftver használatához