top-down vs bottom-up-metodenAlgoritmerna utformas med hjälp av två metoder, top-down- och bottom-up-metoden. I top-down-metoden delas den komplexa modulen upp i undermoduler. Å andra sidan börjar bottom-up-metoden med elementära moduler och kombinerar dem sedan ytterligare. Det främsta syftet med en algoritm är att hantera de data som ingår i datastrukturen. Med andra ord används en algoritm för att utföra operationerna på de data som finns i datastrukturerna.

En komplicerad algoritm delas upp i små delar som kallas moduler, och processen för uppdelning kallas modularisering. Modularisering minskar avsevärt komplikationerna vid utformningen av en algoritm och gör dess process enklare att utforma och genomföra. Modulär programmering är en teknik för att utforma och skriva ett program i form av funktioner där varje funktion är distinkt från varandra och fungerar självständigt. Innehållet i funktionerna är sammanhängande på ett sätt och det finns en låg koppling mellan modulerna.

Innehåll: Uppifrån och ner-strategi Vs nedifrån och ner-up Approach

    1. Samtalsdiagram
    2. Definition
    3. Nyckelskillnader
    4. Slutsats

Samtalsdiagram

Basis för jämförelse Top-down Approach Bottom-up Approach
Basic Bredar upp det stora problemet i mindre delproblem. Lösar det grundläggande problemet på låg nivå och integrerar dem i ett större problem.
Process Undermoduler analyseras ensamt. Undersöker vilka data som ska kapslas in och innebär begreppet informationsgömma.
Kommunikation Inte nödvändigt i den uppifrån-och-nedgående metoden. Behövs en viss mängd kommunikation.
Redundans Innehåller överflödig information. Redundans kan elimineras.
Programmeringsspråk Struktur-/procedurorienterade programmeringsspråk (t.ex. C) följer en uppifrån-och-ned-strategi. Objektorienterade programmeringsspråk (som C++, Java osv.) följer bottom-up-metoden.
Huvudsakligen används de i Moduldokumentation, skapande av testfall, implementering av kod och felsökning. Testning

Definition av top-down-metoden

Top-down-metoden delar i princip upp ett komplext problem eller en algoritm i flera mindre delar (moduler). Dessa moduler delas upp ytterligare tills den resulterande modulen är det grundläggande programmet som i huvudsak kan förstås och som inte kan delas upp ytterligare. Efter att ha uppnått en viss nivå av modularitet upphör nedbrytningen av moduler. Top-down-metoden är en stegvis process för att bryta ner den stora programmodulen i enklare och mindre moduler för att organisera och koda programmet på ett effektivt sätt. Kontrollflödet i detta tillvägagångssätt är alltid i nedåtgående riktning. Top-down-metoden genomförs i programmeringsspråket ”C” med hjälp av funktioner.

Det innebär att top-down-metoden börjar med en abstrakt utformning och att denna utformning sedan sekventiellt förfinas för att skapa mer konkreta nivåer tills det inte finns något behov av ytterligare förfining.

Definition av bottom-up-metoden

Bottom-up-metoden fungerar på precis motsatt sätt som top-down-metoden. Den omfattar inledningsvis utformning av de mest grundläggande delarna som sedan kombineras till en modul på högre nivå. Denna integrering av delmoduler och moduler i modulen på högre nivå utförs upprepade gånger tills den nödvändiga kompletta algoritmen erhålls.

Bottom-up-metoden fungerar med abstraktionslager. Den primära tillämpningen av bottom-up-metoden är testning, eftersom varje grundläggande modul först testas innan den slås samman med den större modulen. Testningen sker med hjälp av vissa funktioner på låg nivå.

Nyckelskillnader mellan top-down- och bottom-up-metoden

  1. Top-down-metoden dekomponerar den stora uppgiften i mindre deluppgifter medan bottom-up-metoden först väljer att lösa de olika fundamentala delarna av uppgiften direkt för att sedan kombinera dessa delar till ett helt program.
  2. Varje delmodul bearbetas separat i en top-down-metod. I motsats till detta implementerar bottom-up metoden konceptet för att dölja information genom att undersöka de data som ska kapslas in.
  3. De olika modulerna i top-down metoden kräver inte mycket kommunikation. Tvärtom behöver bottom-up-metoden interaktion mellan de separata grundläggande modulerna för att senare kombinera dem.
  4. Top-down-metoden kan ge redundans medan bottom-up-metoden inte innehåller redundant information.
  5. De procedurella programmeringsspråken som Fortran, COBOL och C följer en top-down-metod. Objektorienterade programmeringsspråk som C++, Java, C#, Perl och Python följer däremot en bottom-up-metod.
  6. Bottom-up-metoden används tidigare vid testning. Omvänt används top-down-metoden vid moduldokumentation, skapande av testfall, felsökning etcetera.

Slutsats

Top-down-metoden och bottom-up-metoden är algoritmdesignmetoderna där top-down är en konventionell metod som dekomponerar systemet från högnivåspecifikation till lågnivåspecifikation. Å andra sidan är bottom-up-metoden effektivare och fungerar på ett omvänt sätt, där de primitiva komponenterna utformas först och sedan övergår till den högre nivån.

Top-down-metoden betonar isoleringen av delmoduler (innebär låg koppling mellan modulerna), medan den ignorerar identifieringen av kommunikation och begreppet återanvändbarhet. I bottom-up-metoden är det döljande av information och återanvändbarhet som är de viktigaste faktorerna.