A programozás módszertana
Monolitikus programozás Egyszerű feladatok - egyszerű programok Egy program – egy programozó Nincs belső struktúra, lineáris felépítés, egy-egy elágazás vagy ciklus. Bonyolultab feladatok esetén nem alkalmazható.
A kezdő programozó módszere Vágjunk bele, amúgy kurucosan! Első sortól az utolsóig: a frontális támadás módszere. Összetett feladatokhoz is úgy viszonyul, mint az egyszerűekhez. Nagy vonalakban átgondolt, de teljes mélységében át nem látott adatszerkezet, megoldási módszer. Eredmény: menet közben állandóan „pofozgatni” kell.
A kezdő programozó módszere Kis programok esetén – amíg teljes mélységig átlátható – eredményre vezethet, nagyobb feladatoknál már nem, és a javítás is problémás.
Moduláris programozás A bonyolultabb feladatot addig bontjuk egyszerűbb részfeladatokra, amíg azok átláthatókká nem válnak. Lehetővé teszi a csoportmunkát – az egyed modulokat mások készíthetik. Fontos a modulok kapcsolatainak megtervezése: Interfész: a részek közti együttműködési felület.
Moduláris programozás Top-down dekompozíció ● Nagyobb, egymástól viszonylag független részek ● A részek csak jól definiált interfészeken kommunikálnak, más kapcsolat nincs. ● A részfeladatok további részekre oszthatók. ● Kódolás: – Bejelentkező menü – Legfontosabb modulok. A többinek először csak az interfésze. – Ezeken is egyenletesen haladjunk végig, nehogy kimaradjon egy! Bottom-up kompozíció ● Rovid programoknál hatásos. ● Alulról felfelé építkezés: – Előbb az elemi építőkövek készülnek el, utána a magasabb szintű struktúrák, végül a teljes program. ● Nagyobb rendszerek esetén nem célravezető.
Moduláris programozás Vegyes módszer A program vázát Top-Down módszerrel tervezik, és finomítják, a sebesség- vagy memóriakritikus részeket Bottom-Up módszerrel.
További programozási elvek ● Párhuzamos finomítás elve ● Visszatérés az ősökhöz: ha egy megoldás nem vezet célra, olyan pontra térünk vissza, ahonnan lényeges változtatást tudunk kezdeni a megelőző állapothoz képest ● A döntések elhalasztásának elve: összetett feladat esetén egy időben csak egy probléma megoldásával foglalkozzunk!
További programozási elvek ● Döntések nyilvántartásának elve: ha fejlesztés közben egy ponton a program többi részére is kihatással levő döntést hozunk (pl. adat értelmezési tartományának szűkítése), azt azon a ponton dokumentáljuk, és minden helyen, ahol hivatkozás van rá, a döntést figyelembe kell venni (pl. ha egy adatbevitelnél csak pozitív adatok jöhetnek szóba, ott helyben kell az ellenőrzést elvégezni).
További programozási elvek ● Az adatok elszigetelésének elve ● A program futása közben egyes adatok a teljes programra tartoznak, ezek globálisak, mások csak egy-egy részfeladatra, ezek lokálisak. A ciklusváltozók, a megszámlálásokban használt, és egyéb hasonló szerepű változók munkaváltozók, azonos elnevezésük legyen mindenhol és lokálisak.
További programozási elvek ● Nyílt architektúra elve Egy programozási feladatot igyekezzünk minél általánosabban megfogalmazni, ez a későbbi módisítást, karbantartást megkönnyíti. ● A döntés elrejtésének elve Mindig csak olyan finomítást hozzunk, amelynek a kihatása minél kisebb területre korlátozódik, lokális. Ha változtatni kell valamit a programban, akkor annak minél kisebb kihatása legyen.
Taktikai elvek ● Bekezdéses struktúrák használata Tagoljuk a programszöveget optikailag a tabulátor használatával! A struktúra azonos szintjén levők azonos oszlopban kezdődjenek. ● Barátságos programok írása A program mondjon el magáról mindent, ami a sikeres kezeléshez kell. Adatbevitelnél megfelelő tájékoztató szöveg legyn a képernyőn. ● Megjegyzések használata a forráskódban ● Menütechnika ● Bolondbiztosság (ha 6-8 éves gyerek se fekteti kétvállra, akkor jó)
A moduláris programozás előnyei ● Részprogramok könnyen áttekinthetők ● Könnyebben megírható ● Könnyebben tesztelhető ● Több modul írható egy időben (párhuzamos problémamegoldás) ● Könnyebben javítható ● A modulok szabványosíthatók ● Modulkönyvtárakban tárolhatók ● Újrafelhasználhatók