top-down vs bottom-up megközelítésAz algoritmusokat két megközelítéssel tervezik, a top-down és bottom-up megközelítéssel. A top-down megközelítésben az összetett modult részmodulokra osztják. Másrészt az alulról felfelé irányuló megközelítés az elemi modulokból indul ki, majd azokat tovább kombinálja. Az algoritmus előzetes célja az adatszerkezetben szereplő adatok működtetése. Más szóval, egy algoritmus arra szolgál, hogy az adatstruktúrákban lévő adatokon műveleteket hajtson végre.

Egy bonyolult algoritmust moduloknak nevezett kis részekre bontunk, és a felosztás folyamatát modularizálásnak nevezzük. A modularizálás jelentősen csökkenti az algoritmus tervezésének bonyolultságát, és könnyebben tervezhetővé és megvalósíthatóvá teszi a folyamatot. A moduláris programozás a program tervezésének és írásának technikája a függvények formájában, ahol az egyes függvények egymástól elkülönülnek és egymástól függetlenül működnek. A függvények tartalma összetartozó módon, és a modulok között alacsony a csatolás.

Tartalom: Top-down megközelítés Vs Bottom-up Approach

    1. Összehasonlító táblázat
    2. Definíció
    3. Főbb különbségek
    4. Következtetés

Összehasonlító táblázat

Összehasonlítási alap Top-down Approach Bottom-up Approach
Basic A hatalmas problémát kisebb részproblémákra bontja. Megoldja az alapvető alacsony szintű problémát, és integrálja őket egy nagyobb problémába.
Folyamat A részproblémákat magányosan elemzi. Vizsgálja, hogy milyen adatokat kell kapszulázni, és magában foglalja az információ elrejtésének fogalmát.
Kommunikáció A felülről lefelé megközelítésben nem szükséges. Meghatározott mennyiségű kommunikációt igényel.
Redundancia Tartalmazza a redundáns információt. A redundancia kiküszöbölhető.
Programozási nyelvek A struktúra/procedúra orientált programozási nyelvek (pl. C) a felülről lefelé irányuló megközelítést követik. Objektorientált programozási nyelvek (mint a C++, Java, stb.) az alulról felfelé irányuló megközelítést követik.
Főleg Modulok dokumentálása, tesztesetek készítése, kód implementálása és hibakeresés. Tesztelés

A felülről lefelé megközelítés definíciója

A felülről lefelé megközelítés alapvetően egy komplex problémát vagy algoritmust több kisebb részre (modulokra) oszt fel. Ezeket a modulokat tovább bontják, amíg az így kapott modul az alapvetően értendő és tovább nem bontható alapvető program. A modularitás egy bizonyos szintjének elérése után a modulok bontása megszűnik. A felülről lefelé irányuló megközelítés a nagy programmodul egyszerűbb és kisebb modulokra való fokozatos felbontásának folyamata a program hatékony szervezése és kódolása érdekében. A vezérlés áramlása ebben a megközelítésben mindig lefelé halad. A felülről lefelé irányuló megközelítés a “C” programozási nyelvben függvények segítségével valósul meg.

A felülről lefelé irányuló módszer tehát absztrakt tervezéssel kezdődik, majd ezt a tervezést egymás után finomítják, hogy egyre konkrétabb szinteket hozzanak létre, amíg nincs szükség további finomításra.

A Bottom-up megközelítés meghatározása

A bottom-up megközelítés a felülről lefelé irányuló megközelítéssel éppen ellentétes módon működik. Kezdetben a legalapvetőbb részek tervezését foglalja magában, amelyeket aztán a magasabb szintű modul létrehozásához kombinálnak. Ezt a részmodulok és modulok integrálását a magasabb szintű modulba addig ismételgetik, amíg a kívánt teljes algoritmust el nem érik.

A bottom-up megközelítés az absztrakciós rétegekkel működik. Az alulról felfelé megközelítés elsődleges alkalmazása a tesztelés, mivel minden egyes alapvető modult először tesztelünk, mielőtt beolvasztanánk a nagyobb modulba. A tesztelés bizonyos alacsony szintű függvények segítségével történik.

Főbb különbségek a felülről lefelé és az alulról felfelé megközelítés között

  1. A felülről lefelé megközelítés a nagy feladatot kisebb részfeladatokra bontja, míg az alulról felfelé megközelítés először a feladat különböző alapvető részeit választja közvetlenül, majd ezeket a részeket egyesíti egy teljes programmá.
  2. A felülről lefelé megközelítésben minden részmodul külön-külön kerül feldolgozásra. Ezzel szemben az alulról felfelé irányuló megközelítés a kapszulázandó adatok vizsgálatával valósítja meg az információ elrejtésének koncepcióját.
  3. A felülről lefelé irányuló megközelítésben a különböző modulok nem igényelnek sok kommunikációt. Ezzel szemben az alulról felfelé irányuló megközelítésnek szüksége van a különálló alapmodulok közötti interakcióra, hogy később kombinálni lehessen őket.
  4. A felülről lefelé irányuló megközelítés redundanciát eredményezhet, míg az alulról felfelé irányuló megközelítés nem tartalmaz redundáns információt.
  5. A procedurális programozási nyelvek, például a Fortran, a COBOL és a C a felülről lefelé irányuló megközelítést követi. Ezzel szemben az objektumorientált programozási nyelvek, mint a C++, Java, C#, Perl, Python az alulról felfelé irányuló megközelítést követik.
  6. A tesztelésben előszeretettel alkalmazzák az alulról felfelé irányuló megközelítést. Ezzel szemben a felülről lefelé megközelítést a modulok dokumentálásában, tesztesetek készítésében, hibakeresésben stb. használják.

Következtetés

A felülről lefelé és az alulról felfelé megközelítés az algoritmus tervezési módszerek, ahol a felülről lefelé hagyományos megközelítés, amely a rendszert magas szintű specifikációtól alacsony szintű specifikációig bontja. Másrészt az alulról felfelé megközelítés hatékonyabb, és fordított módon működik, ahol először a primitív komponenseket tervezik meg, majd haladnak tovább a magasabb szintre.

A felülről lefelé megközelítés a részmodulok izolációjára helyezi a hangsúlyt (ez a modulok közötti alacsony csatolást jelenti), miközben figyelmen kívül hagyja a kommunikáció és az újrafelhasználhatóság koncepciójának azonosítását. Míg az alulról felfelé irányuló megközelítésben az információ elrejtése és az újrafelhasználhatóság a kiemelkedő tényezők.