FalusiVakáció csoport
FalusiVakáció csoport

Programozásról


Programozás lépései

Miután felmerül az igény egy programozási feladat megvalósítására, érdemes az alábbi lépéseken végig menni:[1] Több programtervezési módszer is ismeretes, a Jackson-féle tervezési módszer a 70-es években fejlesztették ki, az objektum-orientált programtervezési módszert a 90-es években. [2]

1. A feladat megfogalmazása

Először felmerül egy probléma, amelyet meg szükséges oldani. Ez után el kell dönteni, hogy azt programkészítéssel, vagy más eszközzel érdemes megoldani. Amennyiben a döntés a program írására esett, ez után azt szükséges tisztázni, hogy mi lesz a program feladata, milyen jellegű problémák megoldására lehet használni majd a programot, mi lesz a program hasznossága.

2. A feladat modellezése

A modellezés alatt általában egy folyamat leképezését értjük, ami a rendelkezésre álló eszközökkel mind hardver mind szoftver szinten megvalósítható. Ebben a fázisban elég nagyvonalakban megtervezni a megoldási (rész)folyamatokat.

3. Az algoritmus meghatározása

Itt már konkretizálni szükséges a megoldási folyamatot, az egy általános feladatot részfeladatokra kell bontani, majd azokhoz konkrét utasításokat kell rendelni, hogy minél közelebb kerüljünk a programozási utasítások megvalósításához. A program működési mechanizmusa a következő: valamely inputból (bemenő adat(ok)ból) meghatározott lépéseket követően visszaadja az outputot (kimenő adat(sorozat)ot). A programíráskor általános és ésszerű követelmény az, hogy egy program(részlet) a lehető legegyszerűbben, legérthetőbben végezze el egy probléma megoldását, hogy ha a későbbiekben hasonló programot írnánk (vagy ha engedélyezzük másnak a program továbbfejlesztését), akkor ezt a program(részletet) újra fel tudjuk használni a lehető legkisebb módosítással.

4. A szükséges hardver és szoftver környezet megállapítása

A program futása közben bizonyos memóriaterületet használ, ezért fontos, hogy mekkora memóriával (Random Access Memory - RAM) rendelkezik a számítógép. A program úgy látja, mintha ő uralná a teljes memóriát, mivel az operációs rendszer a virtuális memóriakezelés segítségével úgy tudja ütemezni a memóriahasználatot, hogy az a lehető legoptimálisabb legyen. Szükségesek-e kiegészítő eszközök, pl: játékkonzol a videójátékoknál. A programozás fejlődésének korábbi szakaszában (körülbelül a 70-es és a 80-as évekre visszatekintve) még jobban hangsúlyos volt a rendelkezésre álló memória, napjainkban a technika gyors fejlődésének köszönhetően másodlagos szemponttá vált a memória kérdése. Az operációs rendszer fajtája és verziószáma szintén meghatározó tényező lehet a program futtathatóságának vizsgálatánál.

5. Az algoritmus kódolása

Ennél a fázisnál jelenik meg egy konkrét programozási nyelv használata. A konkrét programozási nyelvet megelőzheti az ún. pszeudokód írása, amely struktúrájában hasonlít egy konkrét programozási nyelvre, de mégsem az, egyfajta átmenetként tekinthető az utasítások mondatszerű leírása és a konkrét programozási nyelv között.

6. A program tesztelése, hibakeresése, javítása

Ha kész a program, akkor még nem vehető azonnal használatba, hanem szükséges a tesztelés előtte különböző bemenetekkel, hogy kiderüljön, hogy minden „valószínűtlen” bemenetre is úgy reagál-e a program, ahogy szeretnénk. A program tesztelése programírás közben is lehetséges, de a programírás befejeztével mindenképpen szükséges foglalkozni vele. A hibakeresésre akkor kerül sor, ha a program láthatóan nem úgy „viselkedik”, ahogyan szeretnénk, ennek jele lehet a kijelzett hibaüzenet, vagy egyszerűen a program mozdulatlansága, amikor nem „csinál semmit”. Nem biztos, hogy a probléma ott van, ahol a hiba jelentkezett, ezért az egész forráskódot érdemes átvizsgálni, és ha megtaláltuk, akkor nyilván javítani szükséges, majd újra a tesztelés következik. A tesztelést akkor szabad befejezni, ha már minden lehetséges bemenetet kipróbáltunk, és nem kaptunk hibaüzenetet. A tesztelésre ugyanúgy különböző tesztelési módszerek állnak rendelkezésre, mint a programtervezésre, programozásra. Ezek a módszerek különböző tesztelési szinteket is meghatároznak. Érdekes kérdés, hogy azt akarjuk-e megmutatni, hogy jó-e a program, vagy azt, hogy nincs benne hiba. Ez a kettő merőben mást jelent.

A program tesztelése összetett volta miatt (hasonlóan a programozáshoz) módszereket hoztak létre. A tesztelés tesztadatokkal végzendő, melyek meghatározásánál egyik szempont, hogy a logikát nélkülöző, „irreális” értékekkel is tesztelik a program viselkedését. A tesztelés során szükséges meggyőződni arról, hogy a program eleget tesz-e a kitűzött célnak, illetve található-e benne hiba. Két szinten valósul meg: az egység szintjén, amikor a modulokat egyedileg vizsgálják, illetve az integrációs szinten, ahol a modulokat együtt, egységként kezelik.[3]

7. A hatékonyság növelése, optimalizálás

Időről-időre érdemes áttekinteni a kész programot, mivel a programnyelvek is fejlődnek, változnak, lehet, hogy egy algoritmust áttekinthetőbb programszerkezettel lehetséges megvalósítani.

8. A dokumentációk elkészítése

Program írást megelőzően már érdemes dokumentációt készíteni a forráskódhoz egyrészt azért, hogy a későbbiekben mi is tudjuk, hogy egy-egy programrésszel mi volt a célunk, ez magunknak segítség. A dokumentáció felosztható programtervezési dokumentációra, illetve kódolási tervre. [4]A dokumentációt elhelyezhetjük a forráskódban, vagy külön fájlban. Amennyiben a későbbiekben más foglalkozik a programmal, akkor mindenképpen szükséges a teljes megértéshez. Emellett a felhasználóknak (ha releváns) is szükséges a programhasználathoz útmutatást adni.

9. A működő program karbantartása, felügyelete

A szoftver életciklusába a karbantartási, felügyeleti tevékenységek is beletartoznak. A felhasználói visszajelzések segíthetnek a program színvonalassá tételében.

 

[1] Programkészítés lépései [online] Letöltés időpontja: 2021. 03. 20.

Hozzáférés (URL): http://users.atw.hu/info-eotvos/?page_id=324

[2] Dr. Gubán Miklós, Péteri Kristóf: Középfokú számítástechnikai ismeretek p. 245. In: Az algoritmus ábrázolási eszközei

[3] Dr. Gubán Miklós, Péteri Kristóf: Középfokú számítástechnikai ismeretek p. 294. In: Programok tesztelése

[4] Dr. Gubán Miklós, Péteri Kristóf: Középfokú számítástechnikai ismeretek p. 238. In: Programozási alapismeretek


Szeretnél egy ilyen weblapot teljesen ingyen?
Ez a weboldal a Nanoweb honlapszerkesztővel készült.
© Minden jog fenntartva.