En kompliceret algoritme er opdelt i små dele kaldet moduler, og splittringsprocessen er kendt som modularisering . Modularisering reducerer betydeligt komplikationerne ved at designe en algoritme og gøre processen mere nemmere at designe og implementere. Modulær programmering er teknikken til at designe og skrive et program i form af de funktioner, hvor hver funktion er forskellig fra hverandre og virker uafhængigt. Indholdet i funktionerne er sammenhængende på en måde, og der findes en lav kobling mellem modulerne.
Sammenligningstabel
Grundlag for sammenligning | Top-down Approach | Bottom-up Approach |
---|---|---|
Grundlæggende | Bryder det massive problem i mindre underproblemer. | Løser det grundlæggende lavniveauproblem og integrerer dem i en større. |
Behandle | Undermodulerne analyseres solitært. | Undersøg hvilke data der skal indkapsles, og indebærer begrebet information, der gemmer sig. |
Meddelelse | Ikke nødvendig i top-down tilgangen. | Har brug for en bestemt mængde kommunikation. |
Redundans | Indeholde overflødige oplysninger. | Redundans kan fjernes. |
Programmeringssprog | Struktur / procedureorienteret programmeringssprog (dvs. C) følger top-down-tilgangen. | Objektorienterede programmeringssprog (som C ++, Java osv.) Følger bottom-up tilgangen. |
Bruges hovedsagelig i | Modul dokumentation, oprettelse af test case, kode implementering og debugging. | Test |
Definition af Top-down Approach
Top-down- fremgangsmåden deler i grunden et komplekst problem eller algoritme i flere mindre dele (moduler). Disse moduler nedbrydes yderligere, indtil det resulterende modul er det grundlæggende program i det væsentlige forstås og kan ikke yderligere nedbrydes. Efter at have opnået en vis grad af modularitet, er nedbrydning af moduler ophørt. Top-down-fremgangsmåden er den trinvise proces med at bryde det store programmodul i enklere og mindre moduler for 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 "C" programmeringssprog ved at bruge funktioner.
Således begynder top-down-metoden med abstrakt design og derefter successivt bliver dette design raffineret for at skabe mere konkrete niveauer, indtil der ikke er behov for yderligere raffinement.
Definition af bottom-up metode
Den bottom-up tilgang fungerer på lige modsat måde til top-down tilgangen. Indledningsvis omfatter den udformningen af de mest grundlæggende dele, som derefter kombineres til at lave modulet på højere niveau. Denne integration af submoduler og moduler i modulet på højere niveau udføres gentagne gange, indtil den krævede komplette algoritme er opnået.
Bottom-up tilgangen fungerer med abstraktionslag. Den primære anvendelse af bottom-up-fremgangsmåden er testning, da hvert grundlæggende modul først testes, før det fusioneres til det større. Afprøvningen udføres ved hjælp af visse lavniveaufunktioner.
Nøgleforskelle mellem top-down og bottom-up tilgang
- Top-down-fremgangsmåden nedbryder den store opgave i mindre undergrupper, mens bottom-up-tilgang først vælger at løse de forskellige grundlæggende dele af opgaven direkte og derefter kombinere disse dele i et helt program.
- Hver submodule behandles separat i en top-down-tilgang. I modsætning hertil implementerer bottom-up-tilgang begrebet information, der gemmer sig ved at undersøge de data, der skal indkapsles.
- De forskellige moduler i top-down-tilgang kræver ikke meget kommunikation. Tværtimod kræver bottom-up tilgangen samspillet mellem de separate grundlæggende moduler for at kombinere dem senere.
- Top-down-tilgang kan producere redundans, mens bottom-up-tilgang ikke indeholder overflødige oplysninger.
- De processuelle programmeringssprog som Fortran, COBOL og C følger en top-down-tilgang. I modsætning hertil holder objektorienterede programmeringssprog som C ++, Java, C #, Perl, Python bottom-up tilgangen.
- Bottom-up tilgang er tidligere brugt til testning. Omvendt benyttes top-down-tilgangen i moduldokumentation, oprettelse af testcase, fejlfinding osv.
Konklusion
Top-down tilgang og bottom-up tilgang er algoritme design metoder, hvor top-down er en konventionel tilgang, der nedbryder systemet fra high-level specifikation til lavniveau specifikation. På den anden side er bottom-up tilgangen mere effektiv og arbejder på en omvendt måde, hvor de primitive komponenter er designet først og derefter videre til det højere niveau.
Top-down-fremgangsmåden lægger vægt på isolering af submodulerne (betyder den lave kobling mellem modulerne), mens man ignorerer identifikationen af kommunikations- og genbrugskoncept. Mens der er bottom-up-tilgang, er informationens skjul og genanvendelse de fremtrædende faktorer.