A programkészítés lépései

Egyszerű esetben lehet úgy is programot írni, hogy egy-két mondatos feladat megfogalmazás után azonnal a számítógép elé ülünk, majd a feladatnak megfelelően begépeljük a szükséges utasításokat. Jobb esetben elindítjuk a programot, és ha hibát találunk, javítunk, majd valamilyen formában tároljuk.

Ez mindaddig megy is, amíg egyszerűbb feladatról van szó, és csak saját magunknak dolgozunk, de ha bonyolult, összetett feladatról van szó, akkor egy idő után megakadunk. Ha a program végre futni is fog és abban esetleg valamilyen változtatásra van szükség, akkor viszont vége, nincs tovább, újra kell írni.

Ebben a részben olyan ismereteket fogunk tanulni, amelyek segítenek az ilyen buktatók kikerülésén és hatékonyan segítik a számítógépes munkánkat.

A helyes programkészítés lépései:

1. a feladat megfogalmazása
2. a feladat modellezése
3. az algoritmus meghatározása
4. a szükséges hardver és szoftver környezet megállapítása
5. az algoritmus kódolása
6. a program tesztelése, hibakeresése, javítása
7. a hatékonyság növelése, optimalizálás
8. a dokumentációk elkészítése
9. a működő program karbantartása, felügyelete

1. A feladat megfogalmazása

A feladat megfogalmazása a megoldás első lépése, amelynek során egyértelműen rögzíteni kell (lehetőleg írásban) az elérendő célt a lehetséges pontossággal, a figyelembe vehető feltételekkel, különböző korlátok megadásával. Itt lehet elkövetni az első hibákat. Ha ugyanis a megfogalmazás nem világos, nem egyértelmű, akkor lehet, hogy a kész program nem egészen úgy és azt tudja, amit a feladat kitűzője gondolt.

Feladat: Írassuk ki azon tanulók nevét, akik 4-esnél jobb tanulmányi eredményt értek el!

Felmerülő kérdések:

  • Hol tároljuk a neveket és a tanulmányi eredményeket, a program elején kell beolvasni, vagy esetleg állományban, vagy valahol máshol tároljuk?
  • Maximum hány tanuló lehet?
  • Hova kell kiírni (képernyő, nyomtató) és hogyan írjuk ki, egymás mellé, egymás alá, egy oldalra egyet, vagy többet?
  • Rendezett-e a névsor a tanulmányi eredmény szerint, vagy sem?

Ezeket a kérdéseket mindenképpen tisztázni kell, hogy a programot el tudjuk készíteni.

2. A feladat modellezése

Annak ellenére, hogy a számítógép felhasználásával megoldott feladatok nagy része nem matematikai problémaként fogalmazódik meg, az eredmény előállításához legtöbbször matematikai és logikai eljárások sorozatos alkalmazására van szükség. A megfogalmazott feladatokhoz ezért általában matematikai modellt kell keresni.

Ezek a modellek – mint az egyéb modellek – a valóság többé-kevésbé hű másai, esetünkben matematikai eszközökkel megvalósított másolatok.

A modell alkotásának van egy olyan előnye is, hogy a különbözőnek látszó problémák ugyanazzal a módszerrel megoldhatók. Így előfordulhat, hogy már meglévő eljárásokat használhatunk fel, nem kell újra munkát befektetni.

3. Az algoritmus meghatározása

Az algoritmus egy feladat megoldására szolgáló egyértelmûen elõírt módon és sorrendben végrehajtandó véges tevékenységsorozat, mely véges idõ alatt befejezõdik. A tevékenység matematikai mûvelettõl kezdve tetszõleges számítási, gyártási vagy technológiai mûvelet lehet.

Az algoritmusokkal szemben támasztott követelmények

  • Lépésekből áll. Végrehajtása lépésenként történik (folyamat).
  • Minden lépésnek egyértelmûen végrehajthatónak kell lennie.
  • Részletezés, dekompozíció.
  • A végrehajtás tárgya az adat.
  • A végrehajtandó instrukciónak valamilyen célja van.
  • Vannak bemenõ adatai, melyeket felhasznál.
  • Legalább egy kimenõ adatot produkálnia kell.
  • Véges számú lépésben megoldhatónak kell lennie.
  • Legyen hatékony és elronthatatlan!
  • Legyen az algoritmus felhasználóbarát!

Az algoritmus meghatározása, a megoldási folyamatnak az eredmény előállításáig vezető logikai felépítése igen fontos lépése a problémamegoldásnak.

Az algoritmusoknak feltétlenül rendelkezniük kell néhány alapvető tulajdonsággal. Ezek:

Általánosság

A megadott algoritmus nem csak a szóban forgó speciális feladat esetén vezessen a probléma megoldására, hanem a hasonló jellegű feladatok széles körére szolgáltasson helyes eredményt.

Teljesség

A választott algoritmus a feladatkör minden lehetséges megoldását szolgáltassa. Ehhez az szükséges, hogy a bemenő adatok minden szóba jöhető értékére (értelmezési tartomány) felkészült legyen az algoritmus. A teljesség és az általánosság követelménye egymásnak ellentmondó ezért célszerű a két tulajdonságnak a megoldás szempontjából optimális kielégítését kitűzni.

Végesség

Az eredmény véges számú lépésben elérhető legyen.

Egyértelműség

Azonos körülmények között (ugyanolyan bemenő adatokkal) az eljárást megismételve azonos eredményeket kapjunk.

Értelmezettség

Legyen pontosan körülhatárolt az a bemenő adathalmaz, amelyre az algoritmus megoldást szolgáltat.

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

Hardver környezet: meghatározza, hogy milyen típusú számítógép, minimálisan milyen részegységekből (pl. memória, háttértár kapacitás) épüljön fel, esetleg milyen speciális kiegészítőkre van szükség a program futtatásához.

Szoftver környezet: az adott hardveren milyen egyéb programok futtatását igényli. A legfontosabb, hogy milyen operációs rendszer (és milyen verziójú) szükséges a futtatáshoz.

5. Az algoritmus kódolása

Kódolás: az algoritmus alapján a kiválasztott programozási nyelv szimbólumainak felhasználásával a program elkészítése. A programozási nyelvet célszerűen az adott feladathoz illeszkedően ´illik´ kiválasztani. Ma már az a gyakoribb, hogy olyan programnyelven készül el a program, amelyet ismer a fejlesztő. Ez nem mindig a legoptimálisabb megoldáshoz vezet. Minden programozási nyelvnek megvannak a sajátosságai, amelyek bizonyos mértékig behatárolják, hogy hol és milyen feladatokat célszerű az adott nyelven megvalósítani.

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

Ez a fázis a programtermék elkészítése során talán a legtöbb figyelmet igényli. Ugyanis ha a programozó nem járja végig az összes lehetséges végrehajtási utat, amit a programfutás során el lehet képzelni, akkor az esetleges hiba csak a program használata során derül ki. Ez viszont adatvesztéshez, akár anyagi kárhoz is vezethet. Először meg kell vizsgálni, hogy a program az elvárt funkcióknak eleget tesz-e. Ez a tesztelés folyamata.

Ha ennek során hibajelzést kapunk, akkor azt meg kell keresnünk. Ez a hibakeresés.

Ha megtaláltuk a hibát, akkor azt javítanunk kell, ez a hibajavítás.

Ezután ismételten meg kell győződnünk a program működésének helyességéről, s mindaddig folytatni az előbbiekben leírtakat, míg tökéletesen nem fut a programunk.

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

A programozási tételek, algoritmusok csupán a program előkészítésének lehetőségét biztosítják, a program eredményessége mindig a programozótól függ. A hatékonyságot befolyásolja a végrehajtási idő, a program és adatainak helyfoglalása, valamint a bonyolultsága.

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

Kétféle dokumentáció létezik, egyik a felhasználó számára készül, míg a másik a programozónak.

8.1. Felhasználói dokumentáció

Ez a felhasználó számára készül. Önálló, a kész programmal együtt átadandó szöveg, mely megad minden a program használatához szükséges információt.

Tartalmazza:

  • a feladat megfogalmazását
  • a programnyelv meghatározását
  • a futtatáshoz szükséges géptípust, konfigurációt – hardver feltételek
  • a program installálását, betöltését, indítását
  • a program használatát, kezelését
  • az esetleges hibajelzéseket és annak javítási lehetőségeit
  • egy tipikus futtatás teljes leírását
  • a program fejlesztési lehetőségét, annak feltételeit

8.2. Fejlesztői dokumentáció

A programozóknak szól és a program fejlesztésével párhuzamosan készül. Részei:

  • a feladat megfogalmazása, pontosítása, általánosítása
  • az algoritmus részletes leírása
  • hardver és szoftver feltételek
  • változók meghatározása
  • az eljárások hierarchiáját (szerkezetét) megadó táblázat
  • az eljárások nevei és feladatai
  • a program fejlesztési lehetőségei, feltételei
  • a program teljes listája, valamint egy háttértáron őrzött példánya

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

A felhasználónak éreznie kell, hogy nem hagyták magára a mély vízben az új programmal az első számítógépén. Tudnia kell, hogy ha gondja, problémája van, mindig van valaki, aki segít. Ezt túlzásba sem szabad vinni, mindig az igényekhez kell alkalmazkodni.