Strukturált programozás
A strukturált programozás jelenti valamennyi ma használatos programtervezési módszer alapját Széles körben elfogadott az a nézet, hogy a strukturált programozás a programfejlesztés egyetlen lehetséges módja Strukturált programozás
Alapelve: a programok összesen háromféle építőelemből állnak össze (Dijkstra): –szekvenciák (utasítássorok) –döntési szerkezetek (elágazások v. szelekciók) –iterációk (ismétlődő részek v. ciklusok) A goto utasítás használata kerülendő A strukturált programozás gyakran a felülről lefelé történő elvonatkoztatást, tervezést is jelenti Több szint, egymásba ágyazás. –Absztrakció –Lokális adatok
Építőelemek Szekvencia Szelekció Iteráció Minden építőelemnek csak egy belépési, illetve kilépési pontja van egy sem tartalmaz háromnál több alapelemet a belépési pont az algoritmuselemek elején, a kilépési pont a végén található
Strukturált programozási nyelvek Az 1970-es évektől, amikor a strukturált programozás népszerű technikává vált, olyan új programozási nyelvek születtek, melyek támogatták, hangsúlyozták a módszer alkalmazását. A legismertebbek ezek közül: Pascal, Ada
A feladat funkcionális felbontása
Műveletek - fokozatos finomítás Ez a tervezési módszer a megírandó program által végrehajtott műveletekre összpontosít. Első lépés: a megtervezni kívánt program feladatának megfogalmazása Majd egyszerűen (magyarul) leírjuk azt a műveletsort, amit a programnak végre kell majd hajtania Ezután a műveleteket fokozatosan finomítjuk, míg el nem érjük a kellő részletezettséget Ez általában akkor következik be, amikor a műveletek már a használni kívánt programnyelv elemeivel is leírhatók A műveletsor egyes lépéseit tekinthetjük egy-egy eljárásnak, az elemi lépéseket pedig utasításoknak.
Példa - kávéfőző robot A feladat első leírása csinálj egy csésze kávét Leírás egyszerűbb műveletekkel forralj vizet vegyél elő egy csészét tegyél kávét a csészébe önts rá vizet adj hozzá tejet adj hozzá cukrot ízlés szerint A fenti lista minden egyes eleméről pontosabban leírjuk, hogy mit is jelent A finomítást a kellő részletezettségig elvégezzük
Álkód (pszeudokód) Azt a nyelvet, amit a probléma leírására használunk álkódnak (pszeudokódnak) vagy programtervezési nyelvnek (Program Design Language, PDL) hívjuk. A végeredmény értelmes magyar mondatok sorozata, melyek valamennyien egy-egy igével kezdődnek Tartalmazhat valódi programozásból átvett szerkezeteket is (pl if…then…else… vagy while )
Például a „forralj vizet” eljárás felbontása elemibb utasításokra gyújts be a teáskanna alá while a víz nem forr do fütyöréssz egy dallamot endwhile kapcsold le a fűtést a kanna alatt Az „adj hozzá cukrot ízlés szerint” eljárás részletezése például a következő lehet if kell bele cukor then tegyél cukrot a csészébe keverd meg endif A funkcionális felbontás módszere
A módszer elemzése, értékelése Ahhoz, hogy a tervezés bármely szintjén megértsük a rendszer működését, nem kell pontosan ismernünk az alacsonyabb szintek működését. Tudnunk kell, hogy az alacsonyabb szintek mit csinálnak, de azt nem, hogy hogyan. Két út: –szintről-szintre történő finomítás (breadth first) –egy ágnak a lehető legnagyobb részletességgel való kifejtése (depth first) A pszeudokód minden részletét a strukturált programozás szabályainak betartásával írunk le. A módszer erős akaratot igényel.
Az adatok csak a másodhegedűs szerepét játsszák Rugalmasság: több terv is alkotható egy problémára A funkcionális felbontás módszerének Dijkstra és Wirth nevéhez fűződik Az 1960-as években a strukturált programo- zással párhuzamosan fejlődött Felülről lefelé építkező tervezési módszer Gyakran nevezik lépésenkénti finomításnak is Nem vált kereskedelmi termékké, az egyete- meken született, kevésbé kidolgozott, mint más eljárások
A funkcionális felbontás mint tervezési módszer elsősorban a program által végzett műveletekre összpontosít, így olyan területeken alkalmazható elsősorban, ahol ezek a műveletek egyértelműek, és központi szerepet töltenek be. Pl: numerikus problémák, soros folyamatok irányítása. Használható a program alacsony szintű finomszerkezetének és egészen magas szintű, átfogó szerkezetének kialakítására. A funkcionális felbontás támaszkodik a tervező fantáziájára és szakmai képességeire. Tág teret ad a kreativitásnak (ez gyengeség is) Nem szisztematikus módszer, nincsenek benne jól meg- határozott tervezési lépések. A módszert az „érdeklődőknek”, a programozást élvezőknek találták ki.
Összefoglalva A funkcionális felbontás egy, a strukturált programozás elveire támaszkodó általános célú tervezési módszer, mely több különböző logikai szerkezet kialakítását teszi lehetővé, ezzel teremt néhány kérdést: –Honnan vesszük az ötleteket? –Hogyan választunk a különböző lehetséges tervek közül? –Honnan fogjuk tudni, hogy a legjobb, az igényeknek leginkább megfelelő tervet állítottuk elő? Sokan azt állítják, hogy a funkcionális felbontás nem nevezhető „komoly” tervezési módszernek.