Programozási alapismeretek 9. előadás

Slides:



Advertisements
Hasonló előadás
T ESZTELÉS. C ÉLJA Minél több hibát találjunk meg! Ahhoz, hogy az összes hibát fölfedezzük, kézenfekvőnek tűnik a programot az összes lehetséges bemenő.
Advertisements

H IBAKERESÉS, HIBAJAVÍTÁS. H IBAJELENSÉGEK Szintaktikai hiba:  Csak értelmezés esetén fordul elő, hiszen a fordítóprogramok korábban, még a fordítási.
„Esélyteremtés és értékalakulás” Konferencia Megyeháza Kaposvár, 2009
Összefoglalás Hardver,szoftver,perifériák Memóriák fajtái
Weblap szerkesztés HTML oldal felépítése Nyitó tag Záró tag Nyitó tag Záró tag oldalfej tözs.
Hatékonyságvizsgálat, dokumentálás
Erőállóképesség mérése Találjanak teszteket az irodalomban
Rendszerfejlesztés gyakorlat - © Fülöp Lajos
Humánkineziológia szak
Programozási alapismeretek
A webes tesztelés jövője
Mérés és adatgyűjtés laboratóriumi gyakorlat Virtuális méréstechnika levelező Mingesz Róbert 5. Óra MA-DAQ – Műszer vezérlése November 26.
Programozási alapismeretek 5. előadás. ELTE Szlávi - Zsakó: Programozási alapismeretek 5.2/  Programozási tételek.
Programozási alapismeretek 6. előadás. ELTE Szlávi-Zsakó: Programozási alapismeretek 6.2/  Rekordok/struktúrá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.
Készítette: Szabó Zénó
Rekurzió (Horváth Gyula és Szlávi Péter előadásai felhasználásával)
Algoritmizálás, adatmodellezés tanítása 4. 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,
Programozási ismeretek oktatása: kód vagy algoritmus
Programozási alapismeretek 4. előadás. ELTE Szlávi-Zsakó: Programozási alapismeretek 4.2/  A szöveg A szöveg.
Programozási alapismeretek 7. előadás. ELTE Szlávi-Zsakó: Programozási alapismeretek 7. előadás2/  Sorozatszámítás.
Programozási alapismeretek 3. előadás
Programozási alapismeretek 13. előadás. ELTE Érdekességek - kombinatorika  Az iskola bejáratánál N lépcsőfok van. Egyszerre maximum K fokot tudunk lépni,
Programozási alapismeretek
Programozási alapismeretek 1. előadás
Programozási alapismeretek 10. előadás
Programozási alapismeretek 5. előadás. ELTE 2/  Programozási tételek – a lényeglényeg  Sorozatszámítás Sorozatszámítás.
Programozási alapismeretek 8. előadás. ELTE 2/  További programozási tételek További programozási tételek 
Programozási alapismeretek 11. előadás. ELTE Horváth-Papné-Szlávi-Zsakó: Programozási alapismeretek 11.2/ Tartalom.
Programozási alapismeretek 9. előadás. ELTE Horváth-Papné-Szlávi-Zsakó: Programozási alapismeretek 9. előadás2/
Programozási alapismeretek 12. előadás. ELTE  Tapasztalatok a rendezésről Tapasztalatok a rendezésről  Keresés rendezett sorozatban Keresés rendezett.
Mérés és adatgyűjtés Kincses Zoltán, Mingesz Róbert, Vadai Gergely 10. Óra MA-DAQ – Műszer vezérlése November 12., 15. v
Virtuális méréstechnika MA-DAQ műszer vezérlése 1 Mingesz Róbert V
ELTE Szlávi - Zsakó: Programozási alapismeretek 5.1/ Keresés Specifikáció:  Bemenet: N:Egész, X:Tömb[1..N:Valami]
ELTE Szlávi-Zsakó: Programozási alapismeretek 8.1/ Kiválogatás Specifikáció:  Bemenet: N:Egész, X:Tömb[1..N:Valami]
ELTE Szlávi-Zsakó: Programozási alapismeretek 10.1/ Összegzés mátrixra Feladat: Egy mátrix elemeinek összege.
ELTE Szlávi - Zsakó: Programozási alapismeretek 5.1/ Sorozatszámítás Specifikáció (a végleges) :  Bemenet:
ELTE Szlávi-Zsakó: Programozási alapismeretek Szlávi-Zsakó: Programozási alapismeretek 3. 1/
6. Előadás Merevítő rendszerek típusok, szerepük a tervezésben
szakmérnök hallgatók számára
A problémamegoldás lépései
ELTE Adatokkal kapcsolatos fogalmak  Konstans: az az adat, amely a műveletvégzés során nem változtat(hat)ja meg értékét, mindvégig ugyanabban az „állapotban”
ALGORITMUSOK.
3.2. A program készítés folyamata Adatelemzés, adatszerkezetek felépítése Típus, változó, konstans fogalma, szerepe, deklarációja.
Programozási nyelvek.
20).7-es szint Rákóczi 2. sz. barlang előtt
Programozási alapismeretek 11. előadás. ELTE Szlávi-Zsakó: Programozási alapismeretek 11.2/ Tartalom  Rendezési.
Objektum orientált programozás
Mérés és adatgyűjtés laboratóriumi gyakorlat - levelező Sub-VI és grafikonok 1 Mingesz Róbert V
Algoritmizálás, adatmodellezés tanítása 8. előadás.
Algoritmizálás, adatmodellezés tanítása 2. előadás.
Programozás, programtervezés
Összeállította: Sashalmi Tibor
Programozási alapismeretek * A Zh-írás módszertana.
Programozási alapismeretek 8. előadás. ELTE Szlávi-Zsakó: Programozási alapismeretek 8.2/  További programozási.
Algoritmizálás, adatmodellezés
Programozási alapismeretek 10. előadás. ELTE Szlávi-Zsakó: Programozási alapismeretek 10.2/  Kiválogatás + összegzés.
Programozási alapismeretek 11. előadás
Algoritmizálás, adatmodellezés tanítása 6. előadás.
Programozás III ÖTLETEK A FELADATMEGOLDÁSHOZ. A HF-EK APROPÓJÁN Néhány javaslat: 1. Jó lenne, ha a feladatmegoldás előtt átnéznék az előadás-anyagokat.
A programozás módszertana. Monolitikus programozás Egyszerű feladatok - egyszerű programok Egy program – egy programozó Nincs belső struktúra, lineáris.
Adatstruktúrák Algoritmusok Objektumok
Programozási nyelvek típusossága.
Programkészítési elvek
Compiler illetve interpreter nyelvek
Technológiai folyamatok optimalizálása
Bevezetés a programozásba Algoritmikus gondolkodás
Informatikai gyakorlatok 11. évfolyam
Előadás másolata:

Programozási alapismeretek 9. előadás 2009/2010 Programozási alapismeretek 9. előadás Szlávi-Zsakó: Programozási alapismeretek 9. előadás

Programozási alapismeretek Tartalom 2009/2010 Tesztelés – elvek + módszerek Futtatás adatfájllal – C++ Hibakeresés Hibajavítás Dokumentálás + szövegszerkesztési minimum Programkészítési elvek 2017.04.04. Szlávi-Zsakó: Programozási alapismeretek 9. előadás Szlávi-Zsakó: Programozási alapismeretek 9. előadás

Programozási alapismeretek 2009/2010 Tesztelés Tesztelési fogalmak, elvek: 1. Teszteset = bemenet + kimenet 2. Ideális próba: minden hibát kimutat Megbízható próba: nagy valószínűséggel min-den hibát kimutat 3. Jó teszteset: nagy valószínűséggel felfedetlen hibát mutat ki 4. Rossz a meg nem ismételhető teszteset 5. Érvényes és érvénytelen adatokra is kell 6. Minden teszteset maximális kihasználása 7. Csak más tudja jól tesztelni a programot A „hiba” helyett jobb lenne „problémát” mondani, mivel a tesztelés nemcsak a hibakeresés, hanem a hatékonyságvizsgálat eszköze is. 2017.04.04. Szlávi-Zsakó: Programozási alapismeretek 9. előadás Szlávi-Zsakó: Programozási alapismeretek 9. előadás

Programozási alapismeretek 2009/2010 Tesztelés Tesztelési módszerek: Statikus tesztelés: a programszöveget vizs-gáljuk, a program futtatása nélkül. Dinamikus tesztelés: a programot futtatjuk különböző bemenetekkel és a kapott eredményeket vizsgáljuk. A tesztelés eredménye: hibajelenséget találtunk; nem találtunk –még– hibát. 2017.04.04. Szlávi-Zsakó: Programozási alapismeretek 9. előadás Szlávi-Zsakó: Programozási alapismeretek 9. előadás

Programozási alapismeretek 2009/2010 Statikus tesztelés Kódellenőrzés: algoritmus-kód megfeleltetés algoritmus+kód elmagyarázása másnak Szintaktikus ellenőrzés: fordítóprogram vagy értelmező esetén futtatással Szemantikus ellenőrzés, ellentmondás-keresés: inicializálatlan változó, érték nélküli fv. felhasználatlan érték ( i=1;for(i=2;… ) vagy változó önmagának értékadás ( i=1*i+0 ) „Rafináltan inicializálatlan vagy ki’tudja’hol&hogyan inicializált” változó: int n; int fv() { for (int n=0;n<9;++n)  lokális n … n … ;  lokális n } return n;  globális n Szintaktikusan hibás C++-ban: return;  … error: return-statement with no value, in function returning 'int'| … de ez csak figyelmeztetést vált ki: } … warning: control reaches end of non-void function| 2017.04.04. Szlávi-Zsakó: Programozási alapismeretek 9. előadás Szlávi-Zsakó: Programozási alapismeretek 9. előadás

Programozási alapismeretek 2009/2010 Statikus tesztelés Szemantikus ellenőrzés, ellentmondás-keresés (folytatás): azonosan igaz elágazás-feltétel ( i>1 || i<100 ) végtelen számlálós ciklus (i=1..100 ciklusmagban i=1 tán az i+=1 helyett) végtelen feltételes ciklus (i<N feltételű ciklusban sem i, sem N nem vagy „szin-kronban” változik) konstans értékű, változókat tartalmazó kifejezés ( y=tan(x)–sin(x)/cos(x) ) Nyilvánvalóan végtelen ciklus: int n; int fv() { for (int n=0;n<9;++n) …; --n;sajnos nem okoz fordítási hibaüzenetet } return n; 2017.04.04. Szlávi-Zsakó: Programozási alapismeretek 9. előadás Szlávi-Zsakó: Programozási alapismeretek 9. előadás

Programozási alapismeretek 2009/2010 Dinamikus tesztelés Tesztelési módszerek: Fekete doboz módszerek (nincs kimerítő beme-net – nem lehet minden lehetséges bemenet-re kipróbálni): a teszteseteket a program spe-cifikációja alapján választjuk. Fehér doboz módszerek (nincs kimerítő út – nem lehet minden végrehajtási sorrendre kipróbálni): a teszteseteket a program struk-túrája alapján választjuk. 2017.04.04. Szlávi-Zsakó: Programozási alapismeretek 9. előadás Szlávi-Zsakó: Programozási alapismeretek 9. előadás

Dinamikus tesztelés: fekete doboz módszerek Programozási alapismeretek 2009/2010 Dinamikus tesztelés: fekete doboz módszerek Ekvivalencia-osztályok módszere: a bemeneteket (vagy a kimeneteket) soroljuk olyan osztályokba, amelyekre a program vár-hatóan egyformán működik; ezután osztá-lyonként egy tesztesetet válasszunk! Határeset elemzés módszere: az ek-vivalencia-osztályok határáról válasszunk tesztesetet! 2017.04.04. Szlávi-Zsakó: Programozási alapismeretek 9. előadás Szlávi-Zsakó: Programozási alapismeretek 9. előadás

Dinamikus tesztelés: fekete doboz módszerek Programozási alapismeretek 2009/2010 Dinamikus tesztelés: fekete doboz módszerek Feladat: Egy N természetes szám valódi (1-től és önmagától különböző) osztója… Ekvivalencia osztályok (bemenet alapján): N prímszám N-nek egyetlen valódi osztója van N-nek több, különböző valódi osztója is van N páros N nem természetes szám Érvényes adatokra Az „N páros” nem valódi osztály, hiszen az előző osztályoknak része… Mégis lehet értelme vizsgálni, ha az a feltevésünk, h. a 2-vel való oszthatóságot külön vizsgálja (a „2 az egyetlen páros prím” állítás miatt) Pl. Érvényes bemenet: 2 (prím) / 6 (nem prím) 4 = 2*2 (egyetlen, kettős osztó) 6 = 2*3 (de ez már volt, tehát ez nem új teszteset) 8 = 2*4 (a 6 is páros, tehát nincs újdonsága) Érvénytelen bemenet: -2 és/vagy 3.14 és/vagy kettő Érvénytelen adatokra 2017.04.04. Szlávi-Zsakó: Programozási alapismeretek 9. előadás Szlávi-Zsakó: Programozási alapismeretek 9. előadás

Dinamikus tesztelés: fehér doboz módszerek Programozási alapismeretek 2009/2010 Dinamikus tesztelés: fehér doboz módszerek Kipróbálási stratégiák: utasítás lefedés: minden utasítást legalább egy-szer hajtsunk végre! feltétel lefedés: minden feltétel legyen legalább egyszer igaz, illetve hamis! részfeltétel lefedés: minden részfeltétel legyen legalább egyszer igaz, illetve hamis! Tesztadat-generálás: automatikus tesztbemenet-előállítás Ezekhez továbbiakat talál itt: http://people.inf.elte.hu/szlavi/PrM1felev/Pdf/PrTea7.pdf 1.3.2. fejezetében 2017.04.04. Szlávi-Zsakó: Programozási alapismeretek 9. előadás Szlávi-Zsakó: Programozási alapismeretek 9. előadás

Speciális tesztelések Programozási alapismeretek 2009/2010 Speciális tesztelések Funkcióteszt: tud minden funkciót? Stressz-teszt: gyorsan jönnek a feldol-gozandók, ... Volumen-teszt: sok adat sem zavarja Biztonsági teszt: ellenőrzések vannak? Hatékonysági teszt 2017.04.04. Szlávi-Zsakó: Programozási alapismeretek 9. előadás Szlávi-Zsakó: Programozási alapismeretek 9. előadás

Programozási alapismeretek 2009/2010 Futtatás adatfájllal (C++) Elv: A standard input/output átirányítható fájlba. Ekkor a program fájlt használ az inputhoz és az outputhoz. Következmény: szerkezetileg a kon-zol inputtal/outputtal megegyező kell legyen / lesz a megfelelő fájl. „Technika”: A lefordított kód mögé kell paraméterként írni a megfelelő fájlok nevét. prog.exe <inputfájl >outputfájl Nyereség: Kényelmes és adminisztrálható tesztelés. Figyelem! Ha van outputfájl, akkor a kérdés szövege is abban „jelenik meg”. prog.exe >>outputfájl outputfájlhoz írás! 2017.04.04. Szlávi-Zsakó: Programozási alapismeretek 9. előadás Szlávi-Zsakó: Programozási alapismeretek 9. előadás

Programozási alapismeretek 2009/2010 Futtatás adatfájllal (C++) Demo: Készítsen néhány bemeneti adatot tartalmazó fájlt (a konzol inputnak megfelelő szerkezetben) Futtassa ezekkel az előbb elmondottak szerint: prog.exe <1.be >1.ki prog.exe <2.be >2.ki … Ellenőrizze a kimeneti fájlok tartalmát: olyan-e, amilyennek várta-e Megjegyzés: tovább egyszerűsítheti a tesztelést, ha egy batch állománnyal automatizálja a 2.-t! Valahogy így: próba… A használt –nem túl intelligens– batch-fájl: @echo Konzolos proba... a parameterek legyenek: P=(1,1); Q=(2,2) @echo Jegyezze meg az eredmenyt! irany.exe @echo ----------------------------------------------------------------------------- @echo Ugyanez fajlbol jon... hasonlitsa az elobbihoz! irany.exe <1_1_2_2.be >1_1_2_2.ki @echo a kimeneti fajl tartalma: type 1_1_2_2.ki pause cls irany.exe <1_1_2_1.be >1_1_2_1.ki type 1_1_2_1.ki irany.exe <1_1_1_2.be >1_1_1_2.ki type 1_1_1_2.ki Kód jegyzet- ként 2017.04.04. Szlávi-Zsakó: Programozási alapismeretek 9. előadás Szlávi-Zsakó: Programozási alapismeretek 9. előadás

Programozási alapismeretek 2009/2010 Hibakeresés Hibajelenségek a tesztelés során… hibás az eredmény, futási hiba keletkezett, nincs eredmény, részleges eredményt kaptunk, olyat is kiír, amit nem vártunk, túl sokat (sokszor) ír, nem áll le a program, … 2017.04.04. Szlávi-Zsakó: Programozási alapismeretek 9. előadás Szlávi-Zsakó: Programozási alapismeretek 9. előadás

Programozási alapismeretek 2009/2010 Hibakeresés Célja: a felfedett hibajelenség okának megtalálása. Elvek: Eszközök használata előtt alapos végiggondolás. Egy megtalált hiba a program más részeiben is okozhat hibát. A hibák száma, súlyossága a program méretével nemlineárisan (annál gyorsabban!) nő. Egyformán fontos, hogy miért nem csinálja a prog-ram, amit várunk, illetve, hogy miért csinál olyat, amit nem várunk. Csak akkor javítani, ha megtaláltuk a hibát. 2017.04.04. Szlávi-Zsakó: Programozási alapismeretek 9. előadás Szlávi-Zsakó: Programozási alapismeretek 9. előadás

Programozási alapismeretek 2009/2010 Hibakeresés Hibakeresési eszközök: Memória-, változó-kiírás (feltételes fordítás) Nyomkövetés (hibától visszafelé is) Adat-nyomkövetés Állapot-nyomkövetés (pl. paraméterekre vonat-kozó előfeltételek, ciklus-invariánsok) Töréspont elhelyezése Lépésenkénti végrehajtás A hiba helyének és okának kijelzése Speciális ellenőrzések (pl. indexhatár) Adat-nyomkövetés: egy kijelölt változó értékváltozásának a jelzése (a kódban is). Állapot-nyomkövetés: a program adott pontjaihoz rendelt állítások nem teljesülésekor jelzés. A feltételes fordításhoz –többek közt– rövid és jó leírás: http://hu.wikipedia.org/wiki/C_el%C5%91ford%C3%ADt%C3%B3 2017.04.04. Szlávi-Zsakó: Programozási alapismeretek 9. előadás Szlávi-Zsakó: Programozási alapismeretek 9. előadás

Hibakeresési módszerek Programozási alapismeretek 2009/2010 Hibakeresési módszerek Célja: A bemenetnek mely része, amire hibásan működik a program? Hol található a programban a hibát okozó utasítás? Módszerfajták: 1. Indukciós módszer (hibásak körének bővítése) 2. Dedukciós módszer (hibásak körének szűkítése) 3. Hibakeresés hibától visszafelé 4. Teszteléssel segített hibakeresés (olyan teszteset kell, amely az ismert hiba helyét fedi fel) hibásak nem hibásak 2017.04.04. Szlávi-Zsakó: Programozási alapismeretek 9. előadás Szlávi-Zsakó: Programozási alapismeretek 9. előadás

Hibakeresési módszerek Példa az indukciós módszerre: Programozási alapismeretek 2009/2010 Hibakeresési módszerek Példa az indukciós módszerre: hibásak Feladat: 1 és 99 közötti N szám kiírása betűkkel Tesztesetek: N=8  jó, N=17  jó, N=30  hibás Próbáljunk a hibásakból általánosítani: tegyük fel, hogy minden 30-cal kezdődőre rossz! Ha beláttuk (teszteléssel), akkor próbáljuk tovább általánosítani, pl. tegyük fel, hogy minden 30 felettire rossz! Ha nem tudjuk tovább általánosítani, akkor tudjuk mit kell keresni a hibás programban. Ha nem ment az általánosítás, próbáljuk más-képp: hibás-e minden 0-ra végződő számra! … 2017.04.04. Szlávi-Zsakó: Programozási alapismeretek 9. előadás Szlávi-Zsakó: Programozási alapismeretek 9. előadás

Hibakeresési módszerek Példa a dedukciós módszerre: Programozási alapismeretek 2009/2010 Hibakeresési módszerek Példa a dedukciós módszerre: nem hibásak Feladat: 1 és 99 közötti N szám kiírása betűkkel Tesztesetek: N=8  jó, N=17  jó, N=30  hibás Tegyük fel, hogy minden nem jóra hibás! Próbáljunk a hibás esetek alapján szűkíteni: tegyük fel, hogy a 20-nál kisebbekre jó! Ha beláttuk (teszteléssel), akkor szűkítsünk tovább, jó-e minden 40-nél többre? Ha nem szűkíthető tovább, akkor megtalál-tuk, mit kell keresni a hibás programunkban. Ha nem, szűkítsünk másképp: tegyük fel, hogy jó minden nem 0-ra végződő számra! … „Minden nem jóra hibás”: amire teszteltük és hibás, és amire még nem teszteltük arra is tegyük föl, h. hibás… 2017.04.04. Szlávi-Zsakó: Programozási alapismeretek 9. előadás Szlávi-Zsakó: Programozási alapismeretek 9. előadás

Programozási alapismeretek 2009/2010 Hibajavítás Célja: a megtalált hiba kijavítása. Elvek: A hiba kijavítása a program más részében hibát okozhat (rosszul javítunk, illetve korábban elfedett más hibát). A hibát kell javítani és nem a tüneteit. Javítás után a tesztelés megismételendő! A jó javítás valószínűsége a program méretével fordítva arányos. A hibajavítás a tervezési fázisba is visszanyúlhat (a módszertan célja: lehetőleg ne nyúljon vissza). 2017.04.04. Szlávi-Zsakó: Programozási alapismeretek 9. előadás Szlávi-Zsakó: Programozási alapismeretek 9. előadás

Programozási alapismeretek 2009/2010 Dokumentációk Fajtái: Felhasználói dokumentáció Fejlesztői dokumentáció Programismertető … 2017.04.04. Szlávi-Zsakó: Programozási alapismeretek 9. előadás Szlávi-Zsakó: Programozási alapismeretek 9. előadás

Felhasználói dokumentáció Programozási alapismeretek 2009/2010 Felhasználói dokumentáció Tartalma: feladat (összefoglaló és részletes is) környezetleírás használat leírása (telepítés, kérdések + lehet-séges válaszok,...) bemenő adatok, eredmények, szolgáltatások mintaalkalmazások – példafutások hibaüzenetek és a hibák lehetséges okai 2017.04.04. Szlávi-Zsakó: Programozási alapismeretek 9. előadás Szlávi-Zsakó: Programozási alapismeretek 9. előadás

Fejlesztői dokumentáció Programozási alapismeretek 2009/2010 Fejlesztői dokumentáció Tartalma: specifikáció, követelményanalízis környezetleírás Adatleírás (feladatparaméterek reprezentálá-sa) algoritmusok leírása, döntések, más alternatí-vák, érvek, magyarázatok kód, implementációs szabványok, döntések tesztesetek hatékonysági mérések fejlesztési lehetőségek 2017.04.04. Szlávi-Zsakó: Programozási alapismeretek 9. előadás Szlávi-Zsakó: Programozási alapismeretek 9. előadás

Szövegszerkesztési isme-retek a dokumentációhoz Programozási alapismeretek 2009/2010 Szövegszerkesztési isme-retek a dokumentációhoz Karakterformázás (szöveg, program) Bekezdésformázás Tabulátorok Képbeillesztés Oldalformázás Táblázatok (struktogram, tesztek) Egyenletszerkesztő 2017.04.04. Szlávi-Zsakó: Programozási alapismeretek 9. előadás Szlávi-Zsakó: Programozási alapismeretek 9. előadás

Programkészítési elvek Programozási alapismeretek 2009/2010 Programkészítési elvek Stratégiai elv: a problémamegoldás logikája – a lépésenkénti finomítás. Taktikai elvek: az algoritmuskészítés gondolati elvei a felülről lefelé kifej-téshez. Technológiai elvek: algoritmus és kód módszertani kívánalmai. Technikai elvek: kódolási technika. Esztétikai, ergonómiai elvek: ember-közelség. 2017.04.04. Szlávi-Zsakó: Programozási alapismeretek 9. előadás Szlávi-Zsakó: Programozási alapismeretek 9. előadás

Stratégiai elv: lépésenkénti finomítás Programozási alapismeretek 2009/2010 Stratégiai elv: lépésenkénti finomítás Felülről–lefelé (top–down) = probléma–dekomponálás, –analizálás. Alulról–felfelé (bottom–up) = probléma–szintézis. Nem alternatívák! Nem alternatívák! 2017.04.04. Szlávi-Zsakó: Programozási alapismeretek 9. előadás Szlávi-Zsakó: Programozási alapismeretek 9. előadás

Programozási alapismeretek 2009/2010 Taktikai elvek Párhuzamos finomítás Döntések elhalasztása Döntések nyilvántartása Vissza az ősökhöz Nyílt rendszer felépítés (általánosítás) Párhuzamos ágak függetlensége Szintenkénti teljes kifejtés Adatok elszigetelése A „Döntések elhalasztása” elv példái: „a program felépítése legyen = beolvasás + transzformáció + kiírás” (a C++ lehetőségeit figyelembe véve) a tömbdeklarációt a méret ismertté válásáig „halogatni”… (Azért tudjunk róla, h. nem jó a majdani kódolási részletkérédéseket az algoritmizálásba belekeverni!) 2017.04.04. Szlávi-Zsakó: Programozási alapismeretek 9. előadás Szlávi-Zsakó: Programozási alapismeretek 9. előadás

Programozási alapismeretek 2009/2010 Technológiai elvek Struktúrák zárójelezése Bekezdéses struktúrák Kevés algoritmusleíró szabály Értelmes sorokra tördelés Beszédes azonosítók, kifejező névkon-venciók (pl. Hungarian Notation) 2017.04.04. Szlávi-Zsakó: Programozási alapismeretek 9. előadás Szlávi-Zsakó: Programozási alapismeretek 9. előadás

Programozási alapismeretek 2009/2010 Technikai elvek Barátságosság Biztonságosság Jól olvashatóság 2017.04.04. Szlávi-Zsakó: Programozási alapismeretek 9. előadás Szlávi-Zsakó: Programozási alapismeretek 9. előadás

Esztétikai/ergonómiai elvek Programozási alapismeretek 2009/2010 Esztétikai/ergonómiai elvek Lapokra tagolás, kiemelés, elkülönítés Menütechnika Ikontechnika, választás egérrel Következetesség (beolvasás, kiírás, ...) Hibafigyelés, hibajelzés, javíthatóság Súgó, tájékoztató Ablakkezelés Értelmezési tartomány kijelzése Naplózás 2017.04.04. Szlávi-Zsakó: Programozási alapismeretek 9. előadás Szlávi-Zsakó: Programozási alapismeretek 9. előadás

Programozási alapismeretek 2009/2010 Programozási alapismeretek 9. előadás vége Szlávi-Zsakó: Programozási alapismeretek 9. előadás