Een ingewikkeld algoritme wordt opgesplitst in kleine delen die modules worden genoemd en het proces van splitsen staat bekend als modularisering . Modularisering vermindert de complicaties van het ontwerpen van een algoritme aanzienlijk en maakt het proces eenvoudiger te ontwerpen en implementeren. Modulair programmeren is de techniek van het ontwerpen en schrijven van een programma in de vorm van de functies waarbij elke functie verschillend is van elkaar en onafhankelijk werkt. De inhoud van de functies is samenhangend en er bestaat een lage koppeling tussen de modules.
Vergelijkingstabel
Basis voor vergelijking | Top-down benadering | Bottom-up benadering |
---|---|---|
basis- | Onderbreekt het enorme probleem in kleinere deelproblemen. | Lost het fundamentele probleem op laag niveau op en integreert ze in een groter probleem. |
Werkwijze | Submodules worden solitair geanalyseerd. | Onderzoek welke gegevens ingekapseld moeten worden, en impliceer het verbergen van het concept van informatie. |
Communicatie | Niet vereist bij de top-downbenadering. | Heeft een specifieke hoeveelheid communicatie nodig. |
overtolligheid | Bevat overtollige informatie. | Redundantie kan worden geëlimineerd. |
Programmeertalen | Structuur / procedureel georiënteerde programmeertalen (dwz C) volgen de top-down benadering. | Objectgeoriënteerde programmeertalen (zoals C ++, Java, enz.) Volgen de bottom-upbenadering. |
Voornamelijk gebruikt in | Module documentatie, het maken van testcases, code-implementatie en debugging. | testen |
Definitie van top-down benadering
De top-down benadering verdeelt in principe een complex probleem of algoritme in meerdere kleinere delen (modules). Deze modules worden verder afgebroken totdat de resulterende module het fundamentele programma is dat in essentie begrepen wordt en niet verder ontbonden kan worden. Nadat een bepaald niveau van modulariteit is bereikt, wordt de decompositie van modules gestopt. De top-down benadering is het stapsgewijze proces van het verbreken van de grote programmamodule in eenvoudigere en kleinere modules om het programma op een efficiënte manier te organiseren en te coderen. De stroom van controle in deze benadering is altijd in neerwaartse richting. De top-down benadering wordt geïmplementeerd in de "C" programmeertaal door middel van functies.
Daarom begint de top-downmethode met een abstract ontwerp en vervolgens wordt dit ontwerp verfijnd om meer concrete niveaus te creëren totdat er geen aanvullende verfijning nodig is.
Definitie van bottom-up benadering
De bottom-up benadering werkt precies omgekeerd als de top-down benadering. In eerste instantie omvat het het ontwerpen van de meest fundamentele onderdelen die vervolgens worden gecombineerd om de hoger niveau-module te maken. Deze integratie van submodules en modules in de hoger niveau-module wordt herhaald uitgevoerd totdat het vereiste volledige algoritme is verkregen.
Bottom-up benadering functioneert met lagen van abstractie. De primaire toepassing van de bottom-upbenadering is het testen als elke fundamentele module eerst wordt getest voordat deze wordt samengevoegd met de grotere. Het testen wordt uitgevoerd met behulp van de bepaalde functies op laag niveau.
Belangrijkste verschillen tussen top-down en bottom-upbenadering
- Top-down benadering ontbindt de grote taak in kleinere subtaken, terwijl bottom-up benadering eerst kiest om de verschillende fundamentele delen van de taak direct op te lossen en dan die delen samen te voegen tot een heel programma.
- Elke submodule wordt afzonderlijk verwerkt in een top-down benadering. Tegenover, implementeert bottom-up benadering het concept van de informatie die verstopt zit door de in te kapselen gegevens te onderzoeken.
- De verschillende modules in top-down benadering vereisen niet veel communicatie. Integendeel, de bottom-upbenadering heeft interactie nodig tussen de afzonderlijke fundamentele modules om ze later te combineren.
- Top-downbenadering kan redundantie opleveren, terwijl bottom-up benadering geen overbodige informatie bevat.
- De procedurele programmeertalen zoals Fortran, COBOL en C volgen een top-down benadering. Object-georiënteerde programmeertalen zoals C ++, Java, C #, Perl, Python houden zich daarentegen aan de bottom-up benadering.
- Bottom-up benadering wordt eerder gebruikt bij het testen. Omgekeerd wordt de top-downbenadering gebruikt in module documentatie, het maken van testcases, debuggen, enzovoort.
Conclusie
De top-down benadering en bottom-up benadering zijn de algoritme ontwerpmethoden waarbij top-down een conventionele benadering is die het systeem van een hoog niveau naar een laag niveau specificeert. Aan de andere kant is de bottom-up benadering efficiënter en werkt op een omgekeerde manier waar de primitieve componenten eerst worden ontworpen en vervolgens naar het hogere niveau worden voortgezet.
De top-down benadering benadrukt de isolatie van de submodules (betekent de lage koppeling tussen de modules) terwijl de identificatie van het communicatie- en herbruikbaarheidsconcept wordt genegeerd. Bij de bottom-up benadering zijn informatie verbergen en hergebruik de belangrijkste factoren.