Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
KiadtaAlexandra Borosné Megváltozta több, mint 10 éve
1
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.
2
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.
3
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.
4
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
5
A számítógép részei
6
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.
7
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
8
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:
9
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
10
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 ; }
11
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
12
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 Tárgykód vagy
13
Program szerkesztése Szerkesztő program 1. Tárgykód Szerkesztési hibák
1. Tárgykód Error Szerkesztési hibák Szerkesztő program 2. Tárgykód Futtatható program vagy
14
Program futása Futó program Adatok Adatok Futási hibák Átlag: 6 10 6 2
… Futási hibák vagy
15
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)
16
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.
17
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
18
Bájtkód futtatása interpreterrel
00971CDF 0000F3F1 Bájtkód (App.class) Memória a … … 7 35 00971CDF 0000F3F1
19
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
20
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
21
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
22
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)
23
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)
24
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
25
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
26
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
27
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.
28
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ó
29
Típus Minden változónak van egy jól meghatározott típusa!
Gyakori típusok: number (szám). Például: 45, 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”
30
[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"
31
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
32
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
33
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
34
if legTanulo.szulDatum != (1900,01,01)
out: "Legfiatalabb lány:" kiir(legTanuló) else out: "Nincs lány" end if end legfiatalabbLány
35
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
36
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
37
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
38
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ő)
39
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
40
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
41
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
42
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
43
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
44
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
45
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
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.