Programkészítési elvek
Programkészítési elvek A bonyolult programok könnyebb megoldhatósága érdekében dolgozták ki ezeket Stratégiai elv Taktikai elvek Technológiai elvek Technikai elvek
Stratégiai elv „Oszd meg és uralkodj” elv alapján a program részekre osztása részek egymástól független megoldása Részfeladatokra bontás jelentése: Pontosan kijelölni: milyen adatokat kezel az adott részfeladat milyen adatokat állít elő miként kell ezeket az adatokat egymáshoz rendelni
Stratégiai elv Lépésenkénti finomítás először átfogó feladatmegoldás néhány részfeladatra bontás részletekkel nem törődve az egyes részfeladatokat is további részekre osztjuk amíg el nem érjük azt az utasítás szintet, amit a gép el tud végezni piramis elv
Stratégiai elv Két azonos szinten megadott részfeladat esetén ügyelni kell a sorrendre Finomítás = az adott lépésben létrejött, egymástól függetlenül kezelhető tevékenységek még elemibbekre bontása A részekre bontás módszerét moduláris programozásnak is nevezik
Stratégiai elv Top-down módszer (felülről lefelé): problémaanalizáláson, részekre osztáson alapul (dekomponálás) Bottom-up módszer (alulról felfelé): szintetizáláson alapul, nagy gyakorlatot igényel alulról, az elemi lépésektől indulva jutunk a kitűzött feladat megoldásáig A két módszert általában ötvözik pl.: a top-down tervezés közben felhasználunk már előre elkészített modulokat
Taktikai elvek Párhuzamos finomítás elve egy adott szint minden részfeladatát finomítjuk (nem haladunk előre egy könnyűnek tűnő ágon) Döntések elhalasztásának elve célszerű a gép illetve a programozási nyelv konkrét sajátosságait kihasználó döntéseket minél későbbre halasztani „Vissza az ősökhöz” elv ha zsákutcába kerülünk, vissza kell lépni az előző szintre (ős), és újragondolni a felosztást
Taktikai elvek Adatok elszigetelésének elve az egyes programegységekben alkalmazott adatokat el kell szigetelni más programegységektől egy programegység csak kész, már feldolgozott adatokat adhat át egy másiknak adatok csoportosítása a programegységben betöltött szerepük szerint: közös (globális), ezen belül bemeneti (input) és kimeneti (output), illetve csak a programegységhez tartozó (lokális)
Taktikai elvek Párhuzamos ágak függetlenségének elve egy szinten lévő eljárások egymást nem hívhatják, egymás változóit sem használhatják Szintenkénti teljes kifejtés elve a szint leírásának tartalmaznia kell az alatta lévő szint eljárásainak specifikációját
Taktikai elvek Döntések kimondásának elve ha döntést hoztunk, azt rögzítsük (dokumentáció), ne programozzunk hallgatólagos döntések alapján A nyílt rendszerű felépítés elve ne csak egy feladatra, hanem a feladatot tartalmazó problémakörre készítsünk megoldást feladatáltalánosítás elvének is nevezik
Technológiai elvek Az algoritmus írására, ennek szabályaira vonatkoznak átvezetés a technikai (kóddal kapcsolatos) elvekhez Kevés, de egyértelmű szabály a fő programeszközök (vezérlési szerkezetek) jól elkülöníthetőek legyenek Világos tagolás csak a szervesen összetartozó utasítások kerüljenek egy sorba
Technológiai elvek „Beszédes leírás” (indentálás) az algoritmus szintekre tagolása tükröződjön a leírás formájában áttekinthetőség növelése Összetett struktúrák zárójelezése egyértelműen jelöljük az elejét és a végét (pl.: ciklusnál, elágazásnál) „Beszédes” azonosítók olyan konstans/változó/típus/eljárás/függvény nevek adása, melyek utalnak a funkcióikra nem feltétlenül előnyös a hosszú név
Technikai elvek A programkód minőségét biztosítják nemcsak helyes (logikailag), hanem jó is legyen a program (használható) Barátságosság, udvariasság mindenről tájékoztat, nem hagyja a felhasználót bizonytalanságban (elején tájékoztató a működésről) a futás közben megjelenő kérdések BÁRKI számára érthetőek a válaszok a lehető legegyszerűbben megadhatóak
Technikai elvek Biztonságosság „bolondbiztos” program: a felhasználói hibalehetőségekre fel kell készíteni a programot emellett a felhasználónak a javításra/helyesbítésre is biztosítani kell a lehetőséget Jól olvasható program a technikai elvek nagy része (tagolás, beszédes azonosítók, összetett utasítások zárójelezése) modulok, azaz kisebb egységek (eljárások, függvények) magyarázatok (kommentek)
Technikai elvek Jól dokumentált program nagy méretű program esetében a jól olvashatóság elve nem megvalósítható maradéktalanul Rögzíteni kell a program fontos vonásait az algoritmus felépítését változókat és szerepüket (értéktartomány, hatáskör) kódolásnál követett szabályok A program használatának mikéntjét is le kell írni Az esetleges, előre látható fejlesztések megemlítése
Esztétikai-ergonómiai elvek Az udvariasság és bolondbiztosság finomítása Használatot befolyásoló tényezők (emberközelség) Megjelenített információk külalakjának (formájának) fontossága eredmények kiíratása tájékoztató szövegek felhasználóval való párbeszéd módja
Esztétikai-ergonómiai elvek Lapkezelési technika a kiírandó szövegek logikai egységekre osztva jól elkülönüljenek egyszerre egy képernyőnyi információ jelenjen meg egy sor ne legyen szélesebb a képernyőnél hosszabb szöveg esetén lapozás biztosítása lehetőség a nyomtatásra (+lapszámozás, fejléc, lábléc) szöveg fontosabb elemeinek kiemelése
Esztétikai-ergonómiai elvek Menütechnika a felhasználóval való párbeszéd biztosítás kényelmes formában a választási lehetőségek hierarchikusan is felépülhetnek (főmenü, almenük) a főmenüben célszerű egy program befejezése (kilépés) pont az almenüben célszerű egy „vissza az előző menühöz” pont
Esztétikai-ergonómiai elvek Ikontechnika kis grafikus ábrák szemléletesebbek lehetnek a szöveges megjelenítésnél a túl sok és/vagy túl kicsi ikon áttekinthetetlenné teheti a programot Értelmezési tartomány kijelzése beolvasáskor jelezzük az értéktartományt és a mértékegységet (rossz adatbevitel megelőzése)
Esztétikai-ergonómiai elvek Fontos adatok kiemelése a könnyebb megértés mellett a program állapotának, meghatározó paramétereinek visszajelzésére is időigényes feladatvégzés során üzenet a felhasználónak, hogy hol tart a program Tördelés a megjelenő szövegben a sorok/szavak tördelése a helyesírási szabályoknak megfelelően gördülékeny fogalmazás, szép elhelyezés
Esztétikai-ergonómiai elvek Következetesség beolvasási és kiírási szokásoknál (azonos válaszadási lehetőségek) azonos jellegű kérdések/eredmények a lapok azonos helyein jelenjenek meg Hibajelzés írjuk ki a hiba okát, adjunk instrukciót a javításra ne legyen se túl rövid, se túl hosszú legyen visszaállítható a hiba előtti képernyő a hibát akkor jelezzük, amikor bekövetkezett ha a kérdés szövegéből egyértelmű a hiba, elég a hangjelzés és a kérdés ismétlése
Esztétikai-ergonómiai elvek Naplózás a fontos események automatikusan íródjanak ki egy fájlba Makrók, funkcióbillentyűk gyors eléréshez bizonyos funkciókhoz rendeljünk billentyűkombinációt Segítség bárhonnan/futás közben bármikor elérhető legyen (pl.: funkcióbillentyűvel)
Esztétikai-ergonómiai elvek Ablaktechnika az ablakok a képernyő elkülönített részein jelenjenek meg ablak = keret + tartalom kiírásakor a képernyőn az alatta lévő részt eltakarja, levételkor újra megjelenik a takart rész használható: segítségszöveg megjelenítésére, hibajelzésre, menük kezelésére, programállapot kijelzésére Vége
Források: Gregorics Tibor, Heizlerné Bakonyi Viktória, Horváth Győző, Menyhárt László, Pap Gábor Sándorné, Papp-Varga Zsuzsanna, Szlávi Péter, Zsakó László: Programozási alapismeretek (progalap.elte.hu/downloads/seged/eTananyag/lecke24_lap1.html#hiv1) Petrik tananyagtár: Programkészítés lépései, programozási elvek (www.petrik.hu/files/Tananyagtar/KRAJNYAK_ATTILA/02_Ism%c3%a9tl%c3%a9s_A lgoritmusok/(A)%20Programk%c3%a9sz%c3%adt%c3%a9s%20l%c3%a9p%c3%a9sei, %20programoz%c3%a1si%20elvek.pdf) Dr. Iszály György Barna: Programozás módszertana (http://zeus.nye.hu/~gyiszaly/targyak/progmod/progmod.pdf)