2021. február 21., vasárnap

Programtervezési módszerek


Frontális feladatmegoldás

A feladatot egy egységként kezeli, egyszerre akarja megoldani minden előzetes
felmérés, részekre bontás, átgondolás nélkül. A kész programnak nincs szerkezete,
áttekinthetetlen, módosítani, javítani, fejleszteni szinte lehetetlen, nincs
dokumentációja, használata bizonytalan, teljes anarchia. Kis programoknál
használható jól.

Felülről lefelé (top-down) programozás

Legfontosabb megvalósítási elve a lépésenkénti finomítás elve: a feladat megoldását
el ször csak átfogóan végezzük el. Ezután az egészet rész-feladatokra bontjuk, és a
továbbiakban ezeket a részfeladatokat oldjuk meg. Így az egyes részeket egymástól
függetlenül (de illesztve egymáshoz) írhatjuk, tesztelhetjük, javíthatjuk. Az egyes
részeket tovább kell finomítani, amíg elemi részfeladatokig nem jutunk.

Lépések:

- bemenő adatok meghatározása
- szükséges műveletek elvégzése
- eredmények megjelenítése, kiírása, rögzítése

Alulról felfelé (bottom-up) programozás

Nagy előrelátás, gyakorlat szükséges hozzá. Először a legelemibb részeket és ezek
algoritmusát készítjük el, utána ezeknek a segítségével bonyolultabb részfeladatokat oldunk meg.

Párhuzamos finomítás elve

A finomítást az adott szint minden részfeladatára végezzük el: finomítjuk az adatokat,
az egyes részfeladatokat, meghatározzuk az adatok kapcsolatait, és ezeket rögzítjük
is.

Döntések elhalasztásának elve

Egyszerre csak kevés dologról, de azokról következetesen döntünk. A felbontás után
keletkez részek lehet leg egyenl súlyúak legyenek! Azokat a döntéseket, amelyek
az adott szinten nagyon bonyolultnak látszanak, próbáljuk kés bbre halasztani,
elképzelhet , hogy kés bb egyszer en megoldhatók lesznek.

Vissza az sokhoz elv

Ha zsákutcába jutottunk, nem elegend az adott szint újbóli végiggondolása, vissza
kell lépnünk az el z szintre, és azt végiggondolnunk, stb.

Nyílt rendszer felépítés

Általánosan fogalmazzuk meg a feladatot, általános algoritmust és programot
készítsünk, így az szélesebb körben, hosszú ideig alkalmazható lesz. A konkrét
feladat megfogalmazását kell általánosítani, az adatait pedig paraméterként kezelni.

Döntések kimondásának (dokumentálásának) elve

A kimondott, de nem leírt döntések rengeteg bajt okozhatnak. Általában arról
feledkezünk meg, hogy egy adat nem lehet nulla. Az algoritmus készítésénél ez még
nyilvánvaló, de ha nem mondjuk ki, nem rögzítjük, akkor a kódolásnál már el is
felejtjük ezt ellen rizni!

Adatok elszigetelésének elve

Az egyes programrészekhez tartozó adatokat ki kell jelölni, és szigorúan el kell
különíteni más programrészekt l. Beszélhetünk globális adatokról, melyekhez a
program összes részegysége hozzáférhet, módosíthat; illetve lokális (helyi)
adatokról, amelyeket nem minden programrész módosíthat, érhet el. A bemen
adatokat input adatoknak, a kimeneti adatokat output adatoknak nevezzük.

Moduláris programozás

A modul önálló, névvel rendelkez , önmagában értelmezhet programegység.
Önállóan tervezhet , kódolható, tesztelhet . A programot nagyobb egységekre,
modulokra bontjuk, a kész program a modulok összeillesztéséb l jön létre. Ezáltal
áttekinthet vé válik a program. Meg kell határozni, hogy az adott modul milyen
módon tart kapcsolatot a többi modullal, milyen bemen és kimen adatai vannak.
(eljárások, függvények, unitok).
A modulok fajtái
- adatmodulok
- eljárásmodulok
- vezérl modulok
- I/O modulok

Strukturált programozás

Felülr l lefelé elv. Bármilyen algoritmus felépíthet elágazásokból, ciklusokból és
részlépések egymásutánjából (szekvenciákból).

A strukturált programozás lényege

- Felülr l lefelé történ lépésenkénti problémamegoldás.
- Minden szinten csak a közvetlenül odatartozó döntések folyamata.
- Kevés, de jól meghatározott vezérlési és adatszerkezeti elemek használata.
- Tiltott a feltételes vagy feltétel nélküli vezérlésátadás (GOTO).

A strukturált programozás elveinek meghatározása

- A feladat meghatározását modellsorozattal végezzük.
- A modell olyan program, amely a célprogram m ködését egy magasabb
intelligenciájú " absztrakt " gépen szimulálja.
- Az utolsó változat utasításai egybeesnek egy létez gép vagy nyelv
utasításkészletével. A modell elemei hierarchikus viszonyban állnak egymással.
- Alapelv a lépésenkénti finomítás elve, amely az egyes absztrakciós szintek
kialakítására ad módszert.
- A megoldandó feladatokat több, kevésbé összetett részfeladatra bontjuk, de a
rész-feladatok megfelel illesztése adja az összprogramot; egyes részei
általánosak, de jól körülhatárolt, önálló feladatokat oldanak meg.

Objektumorientált programozás

Az objektumorientált megközelítés az objektumok mint programegységek
bevezetésével megszünteti a program kódjának és adatainak szétválasztását.

Objektumok használatával egyszer szerkezet , jól kézben tartható programok
készíthet k. Az objektumorientált programozás középpontjában az egymással
kapcsolatban álló programegységek hierarchiájának megtervezése áll.

Az objektumosztályok felépítése

Az adatokat és az adatokon végrehajtható m veleteket egyenrangúan, zárt
egységben kezeljük. Ezeket az egységeket objektumoknak nevezzük, mely nem
más, mint az adatok és az adatokat kezel alprogramok (metódusok)
egységbezárása. Az objektum felhasználói típusként (class, osztály) jelenik meg,
mellyel változókat, objektumpéldányokat (instance) hozhatunk létre. Maga az
osztály nem más, mint egy ún. sobjektum, mely az adatmez iben nem kötelez en
tartalmaz adatokat, de az adattípus definíciókat már igen.

Az objektumok lehetnek önálló (nem származtatott) és statikus helyfoglalású
objektumok is, a class típus példányai azonban dinamikusan jönnek létre és minden
új típusnak van el dje. Az örökl dés az jelenti, hogy már meglév osztályból
kiindulva újabb osztályokat építhetünk fel, amelyek öröklik a felhasznált osztály
minden tulajdonságait. Az objektum tulajdonságait és metódusait is lehet örökíteni.

Minden osztály adatmez ket, metódusokat és jellemzőket tartalmaz.

Az adatmezők olyan adatelemek, amelyek az osztály minden objektumpéldányában
megtalálhatóak. A metódusok az objektumon elvégzend m veleteket definiáló
eljárások és függvények. A konstruktor egy olyan metódus, mely segítségével
megadhatjuk az objektum létrehozásával és inicializálásával kapcsolatos
m veleteket. A destruktor egy olyan metódus, mellyel az objektum
megszüntetésével kapcsolatos m veleteket gy jthetjük egy csoportba. Meghívásakor
a destruktor felszabadítja az objektumpéldány számára dinamikusan lefoglalt
memóriaterületet. Azokat a metódusokat, amelyek az objektumpéldány helyett
magán az osztályon fejtik ki hatásukat osztálymetódusnak nevezzük.

Az objektumorientáltság három főismérve

- Egységbezárás (encapsulation)

- Azt takarja, hogy az adatstruktúrákat és az adott struktúrájú adatokat kezel
függvényeket (metódusokat) egy egységként kezelve, az alapelemeket
elzárjuk a világ el l. Az így kapott egységek az objektumok.

- Öröklődés (inheritance)

- Azt jelenti, hogy az adott meglév osztályokból levezetett újabb osztályok
öröklik a definiálásukhoz használt alaposztályok már létez adatstruktúráit és
metódusait.

- Többrétűség (polimorfizmus)

- Azt értjük ezalatt, hogy egy örökölt metódus az adott objektumpéldányban
felüldefiniálódik.

Az adatrejtés elve az objektumorientált programozásban

Az objektum adatmez i és metódusai alaphelyzetben korlátozás nélkül elérhet ek.
Az objektum adatmez it csak metódusok felhasználásával érjük el. Kulcsszavak (pl.
public és private) segítségével kijelölhetjük az objektum bels és kívülr l is elérhet
részeit. A védetten deklarált része az objektumnak bels elérés a külvilág számára.
A publikált részben elhelyezked adatmez khöz és jellemz khöz futási idej típusinformációkat kapcsol a rendszer. Ezzel a megoldással ismeretlen típusú osztály
adatmez i és jellemz i is elérhet k.

Objektumok közti kapcsolat

- semmi kapcsolat nincs a két objektum között.
- Első lehetőség vagyis az egyik objektumtípus leszármazottja a másik
objektumtípusnak, tehát örökli annak tulajdonságait és metódusait, illetve ezeket
b vítheti is.
- Második lehetőség vagyis a két objektum között birtokos viszony van.

A polimorfizmus megvalósítása

A metódusok átdefiniálása a virtuális metódusok segítségével történik Ez valójában
azt jelenti, hogy azonos hivatkozás esetén más-más m velet (metódus) kerül
végrehajtásra. A program futása közben d l el, hogy végül is melyik metódust kell
aktivizálni. Ezt a jelenséget kés i kötésnek (late binding) nevezzük.

https://infoc.eet.bme.hu/jegyzet/c_jegyzet.pdf
dtk.tankonyvtar.hu › tamop425 › Simon_A_progr_alapjaiPDF


Nincsenek megjegyzések:

Megjegyzés küldése