Algoritmerne er designet ved hjælp af to tilgange, som er top-down og bottom-up tilgang. I top-down-tilgangen opdeles det komplekse modul i undermoduler. På den anden side begynder bottom-up-tilgangen med elementære moduler og kombinerer dem derefter yderligere. En algoritme har først og fremmest til formål at behandle de data, der er indeholdt i datastrukturen. Med andre ord bruges en algoritme til at udføre operationerne på dataene inde i datastrukturerne.
En kompliceret algoritme opdeles i små dele kaldet moduler, og processen med opdeling kaldes modularisering. Modularisering reducerer i væsentlig grad komplikationerne i forbindelse med udformningen af en algoritme og gør dens proces lettere at designe og implementere. Modulær programmering er en teknik til at designe og skrive et program i form af funktioner, hvor hver funktion er forskellig fra hinanden og fungerer uafhængigt af hinanden. Indholdet i funktionerne er sammenhængende på en måde, og der eksisterer en lav kobling mellem modulerne.
Indhold: Top-down Approach Vs Bottom-up Approach
-
- Sammenligningsdiagram
- Definition
- Nøgleforskelle
- Konklusion
Sammenligningsdiagram
Basis for sammenligning | Top-down Approach | Bottom-up Approach |
---|---|---|
Basic | Breaks the massive problem into smaller subproblems. | Løser det grundlæggende problem på lavt niveau og integrerer dem i et større problem. |
Proces | Undermoduler analyseres solitært. | Undersøger, hvilke data der skal indkapsles, og indebærer begrebet informationsskjulning. |
Kommunikation | Ikke nødvendigt i top-down-tilgangen. | Bedrager en bestemt mængde kommunikation. |
Redundans | Indholder redundante oplysninger. | Redundans kan elimineres. |
Programmeringssprog | Struktur-/procedurorienterede programmeringssprog (dvs. C) følger top-down-tilgangen. | Objektorienterede programmeringssprog (som C++, Java osv.) følger bottom-up-tilgangen. |
Hovedsageligt anvendt i | Moduledokumentation, oprettelse af testcases, implementering af kode og fejlfinding. | Testning |
Definition af top-down-tilgang
Den top-down-tilgang opdeler grundlæggende et komplekst problem eller en algoritme i flere mindre dele (moduler). Disse moduler nedbrydes yderligere, indtil det resulterende modul er det grundlæggende program, der i det væsentlige skal forstås, og som ikke kan nedbrydes yderligere. Når der er opnået et vist niveau af modularitet, ophører nedbrydningen af moduler. Top-down-metoden er den trinvise proces, hvor et stort programmodul opdeles i enklere og mindre moduler med henblik på at organisere og kode programmet på en effektiv måde. Kontrolstrømmen i denne tilgang er altid i nedadgående retning. Top-down-tilgangen er implementeret i programmeringssproget “C” ved hjælp af funktioner.
Sådan begynder top-down-metoden med et abstrakt design, hvorefter dette design sekventielt forfines for at skabe mere konkrete niveauer, indtil der ikke er behov for yderligere forfining.
Definition af bottom-up-tilgang
Bottom-up-tilgangen fungerer på lige modsat vis af top-down-tilgangen. I første omgang omfatter den udformning af de mest grundlæggende dele, som derefter kombineres til et modul på højere niveau. Denne integration af undermoduler og moduler i modulet på højere niveau udføres gentagne gange, indtil den ønskede komplette algoritme er opnået.
Bottom-up-tilgangen fungerer med abstraktionslag. Den primære anvendelse af bottom-up-tilgangen er testning, da hvert grundlæggende modul først testes, inden det føjes til det større modul. Testningen udføres ved hjælp af visse lavniveaufunktioner.
Nøgleforskelle mellem top-down- og bottom-up-tilgangen
- Top-down-tilgangen dekomponerer den store opgave i mindre delopgaver, mens bottom-up-tilgangen først vælger at løse de forskellige grundlæggende dele af opgaven direkte og derefter kombinerer disse dele til et helt program.
- Hvert delmodul behandles separat i en top-down-tilgang. I modsætning hertil implementerer bottom-up-tilgangen begrebet informationsskjul ved at undersøge de data, der skal indkapsles.
- De forskellige moduler i top-down-tilgangen kræver ikke meget kommunikation. Derimod har bottom-up-tilgangen brug for interaktion mellem de separate grundlæggende moduler for senere at kombinere dem.
- Top-down-tilgangen kan producere redundans, mens bottom-up-tilgangen ikke omfatter redundante oplysninger.
- De processuelle programmeringssprog som Fortran, COBOL og C følger en top-down-tilgang. I modsætning hertil følger objektorienterede programmeringssprog som C++, Java, C#, Perl og Python bottom-up-tilgangen.
- Bottom-up-tilgangen er tidligere blevet anvendt i testning. Omvendt anvendes top-down-tilgangen til moduldokumentation, oprettelse af testtilfælde, fejlfinding osv.
Konklusion
Top-down-tilgangen og bottom-up-tilgangen er algoritmedesignmetoderne, hvor top-down er en konventionel tilgang, som dekomponerer systemet fra specifikation på højt niveau til specifikation på lavt niveau. På den anden side er bottom-up-metoden mere effektiv og fungerer på en omvendt måde, hvor de primitive komponenter designes først og derefter videreføres til det højere niveau.
Top-down-metoden lægger vægt på isolering af undermoduler (hvilket betyder lav kobling mellem modulerne), mens den ignorerer identifikationen af kommunikation og genanvendelighedskonceptet. I bottom-up-metoden er informationsskabelse og genanvendelighed de fremtrædende faktorer.
Skriv et svar