A szoftverfejlesztés


Egy adott problémának számítógép segítségével való megoldása egy hosszú és bonyolult munkafolyamat végeredménye. A program elkészítésének munkafolyamatát a felmerülő problémától a késztermékig programfejlesztésnek nevezzük. Nagy feladat esetén, amikor több programból álló rendszerről van szó, rendszerfejlesztésről beszélünk. A szoftver fejlesztése alapvetően négy részből áll: elemzés, tervezés, kódolás és tesztelés (l. az ábrát). Az első kettő a probléma megoldását célozza, míg az utóbbi kettő a megoldást implementálja (megvalósítja), azaz lefordítja a számítógép nyelvére.



AZ ELEMZÉS

Az elemzés során felmérjük a helyzetet: mire van szükség, mik a lehetőségek. A probléma megoldásának ebben a szakaszában a szóban forgó problémát minden szempontból egyértelműen definiálni kell, ezzel a problémamegoldás többi fázisát időben lényegesen lecsökkenthetjük és hibamentesebbé tehetjük. Ehhez az szükséges, hogy a feladat megfogalmazása legyen teljes, érthető, egyértelmű, pontos, tömör, szemléletes, előrelátó, jól felépített és tagolt.
A fejlesztés e szakaszában tisztázni kell többek között, hogy milyen adatokat vár a program, és milyen adatokat kell annak produkálnia. A beviteli (input) adatokkal kapcsolatban a következő kérdések merülhetnek fel:

A kiviteli (output) adatoknál többek között a következőket kell megállapítani: Az elemzés fázisának dokumentuma kisebb feladatok esetén a feladatspecifikáció, vagyis a feladat pontos megfogalmazása. Nagyobb rendszerek esetén rendszertervet kell készíteni.


A TERVEZÉS

A programtervezés feladata, hogy az analízis során összegyűjtött információkat és adatokat alapul véve logikailag véglegesen kialakítsa az adatstruktúrákat és az adatokon manipuláló algoritmusokat. A program tervezése komoly, kreatív tevékenység, mely nagy szakértelmet igényel.
Hogy milyen tervezési módszert választ az ember, az a következő dolgoktól függhet:

A programtervezés alapja a részekre bontás. A feladatot bonyolultságától függően részekre kell szedni. A törekvés az hogy a részek minél függetlenebbek legyenek egymástól, hiszen így a program sokkal áttekinthetőbb, a hibakeresés, karbantartás, továbbfejlesztés sokkal könnyebb, egyértelműbb.
A programtervezési módszerek állandóan változnak. Hosszú ideig a moduláris programozás volt a jellemző. Lényege, hogy a programot felülről lefelé funkcionálisan egyre kisebb lépésekre (modulokra, eljárásokra) bontjuk. A moduláris programozást a Jackson-féle programtervezési módszer váltotta fel, amely szintén felülről lefelé bontja a programot, de itt a programszerkezet felépítését az adatok szerkezete határozza meg.
Napjainkban az objektum-orientált programtervezés hódít, segítségével kisebb energia-befektetéssel sokkal biztonságosabban tudjuk megtervezni a programjainkat. A módszer lényege az, hogy az egyes objektumok adataikkal és funkcióikkal együtt a program többi részétől függetlenek, és teljes mértékben felelősek a rájuk bízott feladatért.
A tervezési szakasz dokumentációja a programterv. A program megtervezésével a probléma lényegileg meg van oldva, már csak a kódolás van hátra a megvalósításhoz.


A KÓDOLÁS

Ha a terv elkészült, akkor jöhet annak implementálása (kivitelezése). Az implementáció első szakasza a programterv kódolása egy adott programnyelven, vagyis a forrásprogram elkészítése. Ez a szakasz eléggé mechanikus, hiszen az előzőekben a feladat logikai megoldása elkészült. A programnyelv, amelyen kódolunk, lehet bármilyen (mi a Turbo Pascal-t fogjuk használni). A kódolási szakasz dokumentációja a forrásnyelvi lista.
Egy forrásnyelvi lista akkor jó, ha pontosan a programterv alapján készül, áttekinthető, olvasható, tömör és egyértelmű megjegyzésekkel van megtűzdelve.
A forrásprogram begépelésével természetesen még nem vagyunk készen, hiszen bármilyen gondosan is terveztünk és bármilyen jól gépelünk, az még tele lehet hibával. Szintaktikai hibának nevezzük azt a hibát, amelyet a fordítóprogram nem tud értelmezni. Ennek oka lehet gépelési hiba, vagy az, hogy nem ismerjük eléggé a programnyelvet. A szintaktikai hibák kiszűrése után a futtatható program tesztelése következik.


A TESZTELÉS

Próbafuttatáskor még sok hibát észlelünk, ez természetes. Azonban minél alaposabbak voltak az előző fázisok, annál nagyobb a valószínűsége, hogy a program úgy fog működni, ahogy elképzeltük. A program futásakor még sokféle hiba derülhet ki. A program leállhat például futási hibával, de kiderülhet az is, hogy a program rosszul működik. A kisebbik baj, ha a hiba forrása például egy-egy utasítás helytelen használata. A kellemetlenebb a logikai, az ún. szemantikai hiba. Ilyen esetben a probléma mélyen gyökerezhet, még az is elképzelhető, hogy a hibát a probléma elemzési fázisától kezdve hurcoljuk. A tesztelés folyamán különböző próbaadatokkal futtatjuk a programot, amelyeket úgy kell összeállítani, hogy minden lehetséges értéket felvegyenek.
A program tesztelésekor a következőkre kell figyelni:

A tesztelési fázis dokumentációja a kész program és a tesztadatok listája.


DOKUMENTÁLÁS

Minden fázisnak megvan a maga „terméke”, dokumentációja. A program fejlesztésének befejeztével a teljes dokumentációt (vagyis mind a négy fázis dokumentációját) meg kell őrizni. Csak a teljes dokumentáció birtokában lehet később a programon változtatásokat eszközölni. A program fejlesztését végigkísérő dokumentációk összességét fejlesztői dokumentációnak nevezzük.

A fejlesztői dokumentáció részei:

A felhasználói dokumentáció részei:

Egy szintet vissza, vagy vissza a főmenübe.